Claude SEO follows Anthropic’s Agent Skills standard with a modular, three-layer architecture. The directive layer (SKILL.md frontmatter) describes capability and activation keywords. The orchestration layer (theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/AgricIDaniel/claude-seo/llms.txt
Use this file to discover all available pages before exploring further.
seo/ orchestrator) handles industry detection, parallel subagent dispatch, and synthesis. The execution layer consists of 25 sub-skills and 18 specialist agents that each perform focused analysis before handing results back to the orchestrator for scoring and action-plan generation.
Directory Structure
Skills are auto-discovered from any directory matchingskills/seo-*/ and agents from any file matching agents/seo-*.md. Adding a new skill or agent is as simple as creating the file in the correct location — no registration step is required.
The Three Layers
Layer 1 — Directive (SKILL.md Frontmatter)
Every skill is a Markdown file with YAML frontmatter. The frontmatter tells Claude Code when to activate the skill, what arguments to expect, and metadata like version and license. The orchestrator’s frontmatter covers the full activation surface so a single/seo invocation routes correctly to any sub-skill.
Layer 2 — Orchestration (skills/seo/SKILL.md)
The orchestrator is the brain of the system. It runs industry detection from homepage signals, decides which agents to spawn, dispatches them in parallel (up to 15 simultaneously), collects their results, and synthesizes findings through the 10-principle framework before emitting the prioritized action plan.
Industry detection signals:
| Type | Signals |
|---|---|
| SaaS | Pricing page, /features, /integrations, /docs, “free trial”, “sign up” |
| Local Service | Phone number, address, service area, “serving [city]”, Google Maps embed |
| E-commerce | /products, /collections, /cart, “add to cart”, product schema |
| Publisher | /blog, /articles, /topics, article schema, author pages, publication dates |
| Agency | /case-studies, /portfolio, /industries, “our work”, client logos |
Layer 3 — Execution (Specialist Skills + Agents)
Each specialist skill and agent performs focused work: one reads schema, another measures Core Web Vitals, another checks NAP consistency for local businesses. Agents declare their own tool access in YAML frontmatter and run with isolated context so parallel execution is safe.Audit Execution Flow
User invokes /seo audit
The orchestrator receives the URL and loads the main
skills/seo/SKILL.md. No reference files are loaded at startup — they are pulled on demand to keep context lean.Industry detection
The orchestrator fetches the homepage and matches signals against five industry templates (SaaS, local, ecommerce, publisher, agency). Ambiguous detections present the top two candidates and ask the user to confirm.
Core agent dispatch
Seven agents always spawn in parallel:
seo-technical, seo-content, seo-schema, seo-sitemap, seo-performance, seo-visual, and seo-geo.Conditional agent dispatch
Additional agents spawn based on detected signals:
seo-google when Google API credentials exist, seo-local when a local business is detected, seo-maps when local + DataForSEO MCP is available, seo-backlinks when Moz/Bing API keys or Common Crawl metrics are available, seo-cluster when content-strategy signals appear, seo-ecommerce when e-commerce is detected, and seo-drift when a baseline snapshot exists for the URL. seo-sxo is always included in full audits.Result aggregation
The orchestrator collects all agent outputs and walks the 10-principle PERCEIVE → ANALYZE → VALIDATE → ACT framework before bucketing findings into Critical / High / Medium / Low.
Parallel Dispatch Diagram
Reference Files
Theskills/seo/references/ directory holds 12 on-demand knowledge files. The orchestrator does not load all of them at startup — each is pulled only when a skill genuinely needs it. This keeps the working context small and avoids token bloat.
| File | Purpose |
|---|---|
cwv-thresholds.md | Current Core Web Vitals thresholds and INP measurement details |
schema-types.md | All supported Schema.org types with deprecation status |
eeat-framework.md | E-E-A-T evaluation criteria (Sept 2025 QRG update) |
quality-gates.md | Content length minimums, uniqueness thresholds by page type |
local-seo-signals.md | Local ranking factors, review benchmarks, citation tiers, GBP status |
local-schema-types.md | LocalBusiness subtypes and industry-specific citation sources |
maps-geo-grid.md | Geo-grid methodology and rank-tracking parameters |
maps-gbp-checklist.md | GBP completeness checklist |
maps-api-endpoints.md | Maps API endpoint reference |
maps-free-apis.md | Free maps data sources |
thinking-framework.md | Full 10-principle methodology with per-principle SEO mappings |
scoring-weights.md | Health score category weights and priority thresholds |
Scripts Directory
Thescripts/ directory holds over 50 tracked Python execution scripts. The most architecturally significant are:
render_page.py— shared headless renderer backed by Playwright Chromium. All fetching subagents call it with--mode autoso SPA sites (React, Next.js, Vue, Nuxt, Svelte, Astro islands) are audited correctly. Content extraction uses trafilatura; publication dates use htmldate.url_safety.py— canonical SSRF and DNS-rebinding protection module. Every script that accepts a user URL routes through it before making any network call.fetch_page.py— raw page fetcher with user-agent rotation, used when rendering is not needed.parse_html.py— extracts SEO-relevant elements (title, meta, headings, canonical, hreflang, schema blocks) from HTML.google_auth.py— manages the 4-tier Google credential system (API key → OAuth/SA → GA4 → Ads).
SEO Health Score Weights
Extensions
Extensions are opt-in add-ons that install MCP servers and their corresponding skill/agent mirrors into the plugin directory. They ship self-contained inextensions/<name>/ with their own install.sh / install.ps1 and uninstall.sh / uninstall.ps1.
| Extension | Package (pinned) | What it adds |
|---|---|---|
| DataForSEO | dataforseo-mcp-server@2.8.10 | Live SERP data, keyword research, backlinks, on-page analysis, AI visibility, LLM mention tracking |
| Banana Image Gen | @ycse/nanobanana-mcp@1.1.1 | AI image generation for SEO assets via Gemini (OG images, hero images, product photos, infographics) |
| Firecrawl | firecrawl-mcp@3.11.0 | Full-site crawling and URL discovery for audits |
| Ahrefs | @ahrefs/mcp | Official Ahrefs backlink and organic data |
| SE Ranking | — | AI Share-of-Voice across ChatGPT / Gemini / Perplexity / AI Overviews / AI Mode |
| Profound | — | Time-series LLM citation tracker |
| Bing Webmaster | — | Bing Webmaster Tools plus IndexNow unified |
| Unlighthouse | — | MIT multi-page Lighthouse runner |
Extending Claude SEO
Adding a Custom Sub-Skill
- Create
skills/seo-newskill/SKILL.mdwith YAML frontmatter (name,description). - Write the skill instructions in Markdown below the frontmatter.
- Update
skills/seo/SKILL.mdto route the new command (add a row to the Quick Reference table and an entry to the Orchestration Logic). - Optionally add a reference file to
skills/seo-newskill/references/for static data loaded on-demand.
Adding a Custom Subagent
- Create
agents/seo-newagent.mdwith YAML frontmatter (name,description,tools: Read, Bash, Write, Glob, Grep). - Write the agent instructions.
- Reference the agent from the relevant skill’s spawn list.
File Naming Conventions
| Type | Pattern | Example |
|---|---|---|
| Skill | seo-{name}/SKILL.md | seo-audit/SKILL.md |
| Agent | seo-{name}.md | seo-technical.md |
| Reference | {topic}.md | cwv-thresholds.md |
| Script | {action}_{target}.py | fetch_page.py |
| Template | {industry}.md | saas.md |
