SEO — Deterministic SEO Analysis Engine
Every numeric score comes from the Python engine (98 atomic checks, traceable
formulas). NEVER invent a numeric score — run the engine; prose is for
recommendations only.
Engine Execution
# Full audit (use ${CLAUDE_PLUGIN_ROOT}/.venv/bin/python if a venv exists)
cd "${CLAUDE_PLUGIN_ROOT}" && python3 -m engine.cli audit <URL> --compare --output report.md
# Real CWV / GSC data (both optional)
cd "${CLAUDE_PLUGIN_ROOT}" && PAGESPEED_API_KEY="$KEY" python3 -m engine.cli audit <URL> --gsc-credentials /path/to/sa.json
# Audit history / CI gating
cd "${CLAUDE_PLUGIN_ROOT}" && python3 -m engine.cli history <URL>
cd "${CLAUDE_PLUGIN_ROOT}" && python3 -m engine.cli audit <URL> --compare --fail-on-regression
Deps: beautifulsoup4, requests, lxml (core); aiohttp, google-api
packages (optional). Engine degrades gracefully if optional deps are missing.
Routing
Load the matching reference on demand — do NOT load all at startup. Each row:
Read ${CLAUDE_PLUGIN_ROOT}/skills/seo/references/<topic>.md, then act.
| Topic / user intent |
Reference |
Engine command |
| Full site audit, "audit my site" |
audit.md |
engine.cli audit <url> --compare |
| Single-page analysis |
page.md |
engine.cli audit <url> --max-pages 1 |
| Generate/apply fixes |
fix.md |
run audit first, then auto-fixer |
| Internal links, PageRank, orphans |
linkgraph.md |
crawl, then engine/link_graph.py |
| History, regressions, CI/CD |
monitor.md |
engine.cli history <url> |
| Technical SEO, robots.txt, security |
technical.md |
— |
| Content quality, E-E-A-T |
content.md |
— |
| Schema / structured data |
schema.md |
— |
| Sitemaps (analyze/generate) |
sitemap.md |
— |
| Image optimization |
images.md |
— |
| GEO, AI Overviews, llms.txt |
geo.md |
— |
| SEO strategy / planning |
plan.md |
templates in references/plan-assets/ |
| Programmatic SEO at scale |
programmatic.md |
— |
| Comparison / alternatives pages |
competitor-pages.md |
— |
| Hreflang / international |
hreflang.md |
— |
| Server log analysis |
logfile.md |
— |
Shared single-source-of-truth references (cite, never restate):
quality-gates.md, cwv-thresholds.md, schema-types.md,
eeat-framework.md, ai-crawlers.md.
Subagents (7)
For parallel full-site analysis, dispatch via Task: seo-technical,
seo-content, seo-schema, seo-sitemap, seo-performance, seo-visual,
seo-linkgraph (defined in ${CLAUDE_PLUGIN_ROOT}/agents/).
Scoring Weights (computed by engine)
Technical 25%, Content 25%, On-Page 20%, Schema 10%, CWV 10%, Images 5%,
AI Search 5%.
1---2name: seo3description: Deterministic SEO analysis via Python engine (98 checks, crawler, real CWV, link graph, auto-fixes, regression history). Triggers on: SEO audit, schema markup, Core Web Vitals, E-E-A-T, hreflang, GEO/AI Overviews, sitemap, llms.txt.4---56# SEO — Deterministic SEO Analysis Engine78Every numeric score comes from the Python engine (98 atomic checks, traceable9formulas). **NEVER invent a numeric score** — run the engine; prose is for10recommendations only.1112## Engine Execution1314```bash15# Full audit (use ${CLAUDE_PLUGIN_ROOT}/.venv/bin/python if a venv exists)16cd "${CLAUDE_PLUGIN_ROOT}" && python3 -m engine.cli audit <URL> --compare --output report.md1718# Real CWV / GSC data (both optional)19cd "${CLAUDE_PLUGIN_ROOT}" && PAGESPEED_API_KEY="$KEY" python3 -m engine.cli audit <URL> --gsc-credentials /path/to/sa.json2021# Audit history / CI gating22cd "${CLAUDE_PLUGIN_ROOT}" && python3 -m engine.cli history <URL>23cd "${CLAUDE_PLUGIN_ROOT}" && python3 -m engine.cli audit <URL> --compare --fail-on-regression24```2526Deps: `beautifulsoup4`, `requests`, `lxml` (core); `aiohttp`, google-api27packages (optional). Engine degrades gracefully if optional deps are missing.2829## Routing3031Load the matching reference on demand — do NOT load all at startup. Each row:32Read `${CLAUDE_PLUGIN_ROOT}/skills/seo/references/<topic>.md`, then act.3334| Topic / user intent | Reference | Engine command |35|---------------------|-----------|----------------|36| Full site audit, "audit my site" | `audit.md` | `engine.cli audit <url> --compare` |37| Single-page analysis | `page.md` | `engine.cli audit <url> --max-pages 1` |38| Generate/apply fixes | `fix.md` | run audit first, then auto-fixer |39| Internal links, PageRank, orphans | `linkgraph.md` | crawl, then `engine/link_graph.py` |40| History, regressions, CI/CD | `monitor.md` | `engine.cli history <url>` |41| Technical SEO, robots.txt, security | `technical.md` | — |42| Content quality, E-E-A-T | `content.md` | — |43| Schema / structured data | `schema.md` | — |44| Sitemaps (analyze/generate) | `sitemap.md` | — |45| Image optimization | `images.md` | — |46| GEO, AI Overviews, llms.txt | `geo.md` | — |47| SEO strategy / planning | `plan.md` | templates in `references/plan-assets/` |48| Programmatic SEO at scale | `programmatic.md` | — |49| Comparison / alternatives pages | `competitor-pages.md` | — |50| Hreflang / international | `hreflang.md` | — |51| Server log analysis | `logfile.md` | — |5253Shared single-source-of-truth references (cite, never restate):54`quality-gates.md`, `cwv-thresholds.md`, `schema-types.md`,55`eeat-framework.md`, `ai-crawlers.md`.5657## Subagents (7)5859For parallel full-site analysis, dispatch via Task: `seo-technical`,60`seo-content`, `seo-schema`, `seo-sitemap`, `seo-performance`, `seo-visual`,61`seo-linkgraph` (defined in `${CLAUDE_PLUGIN_ROOT}/agents/`).6263## Scoring Weights (computed by engine)6465Technical 25%, Content 25%, On-Page 20%, Schema 10%, CWV 10%, Images 5%,66AI Search 5%.