# Seo

> Use when adding metadata, creating sitemaps, generating robots.txt, implementing structured data (JSON-LD), optimizing for search engines, building OG images, creating llms.txt for AI search engines, or fixing SEO issues in Next.js applications. Covers Google's official guidance, GEO (Generative Engine Optimization), Core Web Vitals, and common SEO myths.

- **Type:** Skill
- **Install:** `agentstack add skill-leahycc-claude-skills-seo`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [LeahyCC](https://agentstack.voostack.com/s/leahycc)
- **Installs:** 0
- **Category:** [Search](https://agentstack.voostack.com/c/search)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [LeahyCC](https://github.com/LeahyCC)
- **Source:** https://github.com/LeahyCC/claude-skills/tree/main/skills/seo
- **Website:** https://skills.sh/LeahyCC/claude-skills/wcag-accessibility

## Install

```sh
agentstack add skill-leahycc-claude-skills-seo
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# SEO — Search & AI Engine Optimization

Production-ready SEO patterns for Next.js applications. Covers traditional SEO (Google), GEO (AI search engines), and implementation with actual code — not just recommendations.

**This skill generates code, not audits.** Every pattern includes production-ready Next.js App Router examples you can use directly.

## Architecture Overview

```
[Metadata]
    ├── Static metadata (layout.tsx / page.tsx exports)
    ├── Dynamic metadata (generateMetadata with data fetching)
    ├── File-based (favicon.ico, opengraph-image.tsx, robots.ts, sitemap.ts)
    └── Title templates (%s | Site Name)
              ↓
[Structured Data]
    ├── JSON-LD via 
    ├── Schema.org types (Article, Product, Organization, BreadcrumbList)
    └── Rich results eligibility (FAQ, HowTo, Review, Video)
              ↓
[Crawlability]
    ├── robots.ts (Google + AI crawler control)
    ├── sitemap.ts (dynamic, with images and i18n)
    ├── Canonical URLs (alternates.canonical)
    └── Internal linking
              ↓
[Performance (Ranking Factor)]
    ├── LCP — next/image priority, Server Components
    ├── INP — useTransition, code splitting
    └── CLS — next/font, image dimensions
              ↓
[AI Visibility (GEO)]
    ├── llms.txt generation
    ├── Content structure for citation
    ├── AI crawler user-agent management
    └── Entity optimization
```

## Quick Reference

| Need to...                                   | See                                                        |
| -------------------------------------------- | ---------------------------------------------------------- |
| Add metadata to pages and layouts            | [Metadata](./resources/metadata.md)                        |
| Create sitemap.xml and robots.txt            | [Crawlability](./resources/crawlability.md)                |
| Add JSON-LD structured data                  | [Structured Data](./resources/structured-data.md)          |
| Generate dynamic OG images                   | [OG Images](./resources/og-images.md)                      |
| Optimize for AI search (ChatGPT, Perplexity) | [GEO](./resources/geo.md)                                  |
| Fix Core Web Vitals for SEO ranking          | [Performance](./resources/performance.md)                  |
| Avoid common SEO mistakes                    | [Anti-Myths](#seo-anti-myths-googles-actual-guidance)      |

## Decision Matrix

### "What metadata does this page need?"

| Page Type | Title | Description | OG Image | Canonical | Structured Data |
|-----------|-------|-------------|----------|-----------|-----------------|
| Home page | Static | Yes | Yes (branded) | Yes | Organization, WebSite, SearchAction |
| Listing/product page | Dynamic (from data) | Dynamic | Dynamic (from image) | Yes | Product, BreadcrumbList |
| Blog post | Dynamic | Dynamic | Dynamic (generated) | Yes | Article, BreadcrumbList |
| Category/search | Dynamic (with filters) | Dynamic | Optional | Yes (without query params) | BreadcrumbList, ItemList |
| Auth pages (login) | Static | Optional | No | noindex | None |
| Legal (privacy, terms) | Static | Yes | No | Yes | None |
| Dashboard/app pages | Static | Optional | No | noindex | None |

### "Should this page be indexed?"

```
Is the page valuable to search users?
├── YES (content, product, article)
│   ├── Is there a canonical version? → Set alternates.canonical
│   ├── Is it paginated? → Set rel prev/next or canonical to page 1
│   └── Index it (default — no robots directive needed)
└── NO (auth, dashboard, admin, API, staging)
    └── Set robots: { index: false, follow: false }
        └── Also consider: noindex via robots.ts rules
```

## SEO Anti-Myths (Google's Actual Guidance)

These are widely believed but **wrong** according to Google's official documentation:

| Myth | Reality | Source |
|------|---------|--------|
| "Add meta keywords" | Google has ignored `` since 2009 | [Google Webmaster Blog](https://developers.google.com/search/blog/2009/09/google-does-not-use-keywords-meta-tag) |
| "E-E-A-T is a ranking factor" | E-E-A-T is a quality rater guideline, not an algorithm signal | [Google Quality Rater Guidelines](https://developers.google.com/search/docs/fundamentals/creating-helpful-content) |
| "Content must be X words long" | No minimum or maximum. Write what's useful. | [Google SEO Starter Guide](https://developers.google.com/search/docs/fundamentals/seo-starter-guide) |
| "Heading order affects rankings" | Heading hierarchy helps accessibility, not rankings | Google Search Central (multiple confirmations) |
| "Duplicate content is a penalty" | No spam penalty. Google picks a canonical. Bad UX, not a ranking hit. | [Google Search Central](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls) |
| "Domain keywords boost ranking" | Minimal if any impact | Google (multiple confirmations) |
| "Subdomain vs subdirectory matters" | Google can handle either. Choose for architecture, not SEO. | [John Mueller, Google](https://www.youtube.com/watch?v=uJGDyAN9g-g) |
| "More backlinks = higher ranking" | Quality and relevance matter, not quantity | [Google Link Spam Update](https://developers.google.com/search/docs/essentials/spam-policies) |
| "FID is a Core Web Vital" | **INP replaced FID** in March 2024 | [web.dev](https://web.dev/articles/inp) |

## What Google Actually Cares About

1. **Unique, descriptive title tags** per page
2. **Concise meta descriptions** that summarize page content
3. **Canonical URLs** to consolidate duplicate content
4. **Structured data** (JSON-LD) for rich results eligibility
5. **Mobile-friendly design** (responsive, touch-friendly)
6. **Core Web Vitals** — LCP ` (via metadata export or generateMetadata)
- [ ] Every page has a meta description
- [ ] Root layout sets `metadataBase` for URL resolution
- [ ] Root layout uses title template: `{ template: '%s | Site Name', default: '...' }`
- [ ] `app/sitemap.ts` exists and covers all public routes
- [ ] `app/robots.ts` exists with rules for Googlebot and AI crawlers
- [ ] Product/article pages have JSON-LD structured data
- [ ] Dynamic pages use `generateMetadata` with data memoization (`cache()`)
- [ ] Images use `next/image` with proper `alt` text
- [ ] Fonts use `next/font` (prevents CLS)
- [ ] Auth/dashboard pages have `robots: { index: false }`
- [ ] Canonical URLs set for pages accessible at multiple URLs
- [ ] No `` tag (Google ignores it)
- [ ] OG images exist for shareable pages (social + messaging previews)

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [LeahyCC](https://github.com/LeahyCC)
- **Source:** [LeahyCC/claude-skills](https://github.com/LeahyCC/claude-skills)
- **License:** MIT
- **Homepage:** https://skills.sh/LeahyCC/claude-skills/wcag-accessibility

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-leahycc-claude-skills-seo
- Seller: https://agentstack.voostack.com/s/leahycc
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
