AgentSkillsCN

seo

结合 Core Web Vitals 跟踪,进行 SEO 与性能审计

SKILL.md
--- frontmatter
name: seo
description: SEO and performance audits with Core Web Vitals tracking

SEO & Performance

Specialized agent for search engine optimization and web performance.

Configuration

PlaceholderDescriptionExample
{{TARGET_AUDIENCE}}Your target audience"Small business owners in the US"
{{FRAMEWORK}}Your web framework"Next.js 15", "Nuxt 3", "Astro"

Context

  • Target audience: {{TARGET_AUDIENCE}}
  • Framework: {{FRAMEWORK}}
  • SEO goal: Organic visibility for professional keywords
  • Performance goal: Green Core Web Vitals

When to Invoke

  • Before releasing a new page
  • For periodic audits
  • After significant changes
  • To verify Core Web Vitals

Actions

1. Identify Scope

Ask the user:

  • Specific page: route/URL
  • Entire site: full audit
  • Focus: SEO, Performance, or both

2. Execute Audit

SEO Audit

Verify the criteria in the checklist below.

Performance Audit

bash
# Lighthouse CLI (if available)
npx lighthouse https://url --output json --output-path ./report.json

# Or manual verification of criteria

3. Report

code
## SEO & Performance Audit

**URL**: [url or page]
**Date**: [date]

### SEO Score

| Category | Status | Notes |
|----------|--------|-------|
| Meta Tags | PASS | Title and description present |
| Headings | WARN | Missing H1 |
| Structured Data | FAIL | Not present |
| ...

### Performance Score

| Metric | Value | Target | Status |
|--------|-------|--------|--------|
| LCP | 2.1s | <2.5s | PASS |
| FID | 95ms | <100ms | PASS |
| CLS | 0.15 | <0.1 | WARN |
| TTFB | 0.8s | <0.8s | PASS |

### Issues

#### [High] SEO -- Missing H1
**Page**: /academy
**Problem**: The page has no H1 tag
**Proposed fix**: Add H1 with primary keyword

#### [Medium] Performance -- High CLS
**Page**: /
**Problem**: Layout shift caused by hero image without dimensions
**Proposed fix**: Add width/height or aspect-ratio

4. Propose Fixes

Propose changes and wait for confirmation before applying them.


SEO Checklist

Meta Tags

  • <title> present, unique, 50-60 characters
  • <title> includes primary keyword at the beginning
  • <meta name="description"> present, 150-160 characters
  • <meta name="description"> includes call to action
  • <meta name="robots"> appropriate (index/noindex)
  • Canonical URL defined
  • Open Graph tags present (og:title, og:description, og:image)
  • Twitter Card tags present

Headings

  • One <h1> per page
  • H1 includes primary keyword
  • Correct heading hierarchy (H1 -> H2 -> H3, no skipping)
  • Descriptive headings

Content

  • Unique content (no duplicates)
  • Primary keyword in the first paragraph
  • Natural keyword density (1-2%)
  • Sufficient content (>300 words for informational pages)
  • Alt text for all informational images
  • Relevant internal links
  • Authoritative external links (if appropriate)

Technical SEO

  • Clean and descriptive URLs
  • Sitemap.xml present and up to date
  • Robots.txt correct
  • HTTPS enabled
  • 301 redirects for changed URLs
  • No broken links (404)
  • Hreflang for multilingual (if applicable)

Structured Data

  • Schema.org Organization for homepage
  • Schema.org BreadcrumbList for navigation
  • Schema.org Article for blog/content
  • Schema.org FAQPage for FAQ
  • Schema.org Event for events
  • JSON-LD format (preferred)
  • Validated with Rich Results Test

Mobile

  • Viewport meta tag present
  • Responsive design
  • Adequate touch targets (44x44px)
  • Readable font size (16px min)
  • No content wider than viewport

Performance Checklist

Core Web Vitals

MetricDescriptionTarget
LCPLargest Contentful Paint< 2.5s
FIDFirst Input Delay< 100ms
CLSCumulative Layout Shift< 0.1
TTFBTime to First Byte< 0.8s
FCPFirst Contentful Paint< 1.8s

Images

  • Modern format (WebP, AVIF)
  • Appropriate dimensions (no 4000px images for thumbnails)
  • Lazy loading for below-the-fold images
  • Width/height or aspect-ratio defined (prevents CLS)
<!-- CUSTOMIZE: Add framework-specific image optimization (e.g., next/image, nuxt/image) -->

JavaScript

  • Reasonable bundle size (<200KB gzipped ideal)
  • Code splitting implemented
  • No blocking scripts in <head>
  • Tree shaking working
  • Dynamic imports for heavy components

CSS

  • Critical CSS inlined (if necessary)
  • No unused CSS
  • CSS purging active (Tailwind, PurgeCSS, etc.)

Caching

  • Appropriate cache headers
  • Long cache for static assets
  • API responses cached where possible

Server

  • Compression enabled (gzip/brotli)
  • CDN for static assets
<!-- CUSTOMIZE: Add framework-specific server optimizations --> <!-- Examples: Server Components (Next.js), Edge rendering (Vercel/Cloudflare), ISR -->

Keyword Targets

<!-- CUSTOMIZE: Replace with your project's keyword strategy -->
PagePrimary KeywordSecondary Keywords
Homepage{{REPLACE}}{{REPLACE}}
.........