File: README.md
Claude SEO: SEO Skill for Claude Code
Claude SEO is an open-source SEO analysis plugin for Claude Code. It runs 25 sub-skills and 18 specialist agents in parallel across technical SEO, content quality (E-E-A-T), Schema.org markup, AI search optimization (GEO), local SEO, e-commerce, and international SEO. Every audit produces a prioritized action plan with testable recommendations grounded in primary-source guidance from Google.
Two versions of this skill.
- ๐ Public open-source โ
AgriciDaniel/claude-seo: MIT, public releases, no membership. Use this if you want stable + downloadable.- ๐ Community private mirror โ
AI-Marketing-Hub/claude-seo: early access to upcoming features and direct collaboration with the AI Marketing Hub Pro community. Requires membership.
Why Claude SEO
- AI-search first. Aligned with Google's AI Optimization Guide. Question-based citability scoring, primary-source evidence on llms.txt, IPTC
TrainedAlgorithmicMediafor AI-generated product images, agent-friendly page checks per web.dev. - Parallel execution. Full site audits spawn up to 15 specialist agents simultaneously. Site-level audits complete in minutes rather than hours.
- Falsifiable, not promotional. Every recommendation carries the first-principle observation it rests on, its dependency relationships, an explicit "how would we know this failed?" check, and a leading indicator. See Methodology.
Real results
Google Search Console for a site started 23 March 2026 and run on this workflow: total clicks and impressions across its first three months, through 12 June 2026.
Using Codex instead of Claude Code? Use Codex SEO, the Codex-first port with TOML agents, plugin packaging, deterministic runners, and the same SEO workflow surface.
Who this is for
- SEO agencies running 5+ client sites. Replace quarterly deep audits with weekly automated runs. Same team capacity, 4ร audit cadence, every recommendation comes with a falsifiability check the client can verify.
- In-house SEO leads at SaaS / publisher / e-commerce companies. Second-pair-of-eyes before executive reviews. Catches what GSC and Lighthouse hide: schema deprecation, AI-citability gaps, expired-domain heritage risk, parasite-SEO exposure, machine-translation drift.
- Freelance SEO consultants. Anchor day-one client scope with a 15-minute audit and a real 0-100 score. Win the engagement with concrete proof of value before you spend an hour writing the proposal.
Run a full audit and watch parallel agents fan out across the site:
Watch the full demo on YouTube
Table of Contents
- Who this is for
- Installation
- Quick Start
- Commands
- Features
- Compared to manual / agency / commercial tools
- Use cases
- Sample Output
- Architecture
- Methodology
- What's New in v2
- Limitations
- Requirements
- Uninstall
- Extensions
- Ecosystem
- Documentation
- FAQ
- Community Contributors
- License
- Contributing
- Author
Installation
โน๏ธ Which version are you installing?
- Public open-source (default). The commands below install from
AgriciDaniel/claude-seoโ MIT, public releases, no membership required.- AI Marketing Hub Pro member? Install the community version with early access instead: swap
AgriciDaniel/claude-seoforAI-Marketing-Hub/claude-seoand the plugin slugclaude-seo@agricidaniel-claude-seoforclaude-seo@ai-marketing-hub-claude-seo. Requiresgh auth login(or PAT) with access to theAI-Marketing-Huborg. If/plugin marketplace add404s, DM in the Skool community to get added.
Plugin Install (Claude Code 1.0.33+)
The fastest path. One-time marketplace add, then plugin install:
/plugin marketplace add AgriciDaniel/claude-seo
/plugin install claude-seo@agricidaniel-claude-seo
/seo setupThe explicit setup step creates an isolated Python environment in Claude's
persistent plugin data and installs Playwright Chromium. Check it at any time
with /seo doctor. No global Python packages or PATH shims are created.
Manual Install (Unix / macOS / Linux)
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
bash claude-seo/install.shOne-liner (curl, review then run)
curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/install.sh > install.sh
cat install.sh # review before running
bash install.sh
rm install.shWindows (PowerShell)
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
powershell -ExecutionPolicy Bypass -File claude-seo\install.ps1Why
git cloneinstead ofirm | iex? Claude Code's own security guardrails flagirm ... | iexas a supply chain risk: downloading and executing remote code without verification. Thegit cloneapproach lets you inspectclaude-seo\install.ps1before running it.
Quick Start
# Start Claude Code
claude
# Full site audit: parallel sub-agents produce a prioritized action plan
/seo audit https://example.com
# Deep single-page analysis: on-page elements, content quality, schema
/seo page https://example.com/about
# Schema markup audit: detect, validate, generate
/seo schema https://example.com
# AI search optimization: passage citability + primary-source-aligned recommendations
/seo geo https://example.com
# Generate a sitemap with industry templates
/seo sitemap generateCommands
32 user-invocable /seo commands across the orchestrator, its sub-skills, and 8 MCP extensions. Full reference in docs/COMMANDS.md.
| Command | Description |
|---|---|
/seo setup |
Create or refresh the isolated Python runtime and Chromium |
/seo doctor |
Check runtime readiness without changing the system |
/seo audit |
Full website audit with parallel sub-agent delegation |
/seo page |
Deep single-page analysis |
/seo technical |
Technical SEO audit across 9 categories |
/seo content |
E-E-A-T and content quality analysis |
/seo content-brief <topic> |
Detailed content brief: target keywords, outline, internal links |
/seo schema |
Detect, validate, and generate Schema.org markup |
/seo geo |
AI Overviews / Generative Engine Optimization |
/seo sitemap |
Analyze or generate XML sitemaps |
/seo images |
Image optimization analysis |
/seo plan <type> |
Strategic SEO planning (saas, local, ecommerce, publisher, agency) |
/seo programmatic |
Programmatic SEO analysis and planning |
/seo competitor-pages |
Competitor comparison page generation |
/seo local |
Local SEO analysis (GBP, citations, reviews, map pack) |
/seo maps [command] |
Maps intelligence (geo-grid, GBP audit, reviews, competitors) |
/seo hreflang |
Hreflang / i18n SEO audit and generation |
/seo google [command] |
Google SEO APIs (GSC, PageSpeed, CrUX, Indexing, GA4, PDF reports) |
/seo backlinks |
Backlink profile analysis (Moz, Bing, Common Crawl) |
/seo cluster <keyword> |
SERP-based semantic clustering |
/seo sxo |
Search Experience Optimization (page-type, user stories, personas) |
/seo drift baseline | compare | history |
SEO drift monitoring with SQLite snapshots |
/seo ecommerce |
E-commerce SEO and marketplace intelligence |
/seo flow [stage] |
FLOW framework prompts (CC BY 4.0, evidence-led) |
/seo firecrawl [command] |
Full-site crawling (extension) |
/seo dataforseo [command] |
Live SEO data (extension) |
/seo image-gen [use-case] |
AI image generation for SEO assets (extension) |
/seo ahrefs [command] |
Backlinks, organic keywords, and content data via the official Ahrefs MCP (extension) |
/seo seranking [command] |
AI Share-of-Voice across ChatGPT, Gemini, Perplexity, AI Overviews, AI Mode (extension) |
/seo profound [command] |
LLM citation tracking with time-series data (extension) |
/seo bing [command] |
Bing Webmaster Tools + IndexNow URL submission (extension) |
/seo unlighthouse |
Multi-page Lighthouse runner, runs locally (extension) |
Features
What Core Web Vitals does Claude SEO check?
Claude SEO measures the current three Core Web Vitals: LCP (Largest Contentful Paint, target under 2.5s), INP (Interaction to Next Paint, target under 200ms), and CLS (Cumulative Layout Shift, target under 0.1). INP replaced FID on March 12, 2024; FID was removed from Chrome's field-data tools (CrUX API, PageSpeed Insights) on September 9, 2024 (Lighthouse is a lab tool and never reported FID), and Claude SEO never references FID. Field data comes from the Chrome User Experience Report (CrUX) when available; lab data falls back to Lighthouse via PageSpeed Insights. LCP can be decomposed into subparts (TTFB, load delay, load duration, render delay) via the /seo google CrUX integration to localize bottlenecks. Mobile and desktop are measured separately. CrUX History (25-week trend) is included in the Tier 0 free credential set.
How does Claude SEO assess E-E-A-T?
E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) is evaluated against the Search Quality Rater Guidelines, last updated September 2025 with YMYL expanded to include political and social topics. Experience signals: original research, case studies, first-hand photos. Expertise: author credentials and topical depth. Authoritativeness: external citations and brand mentions. Trustworthiness, the most heavily weighted of the four: contact info, secure HTTPS, transparent corrections, date stamps. Before scoring sub-factors, Claude SEO applies Google's own Who / How / Why heuristic from the helpful-content guide. Generative AI content is fine if it meets Search Essentials; it crosses into spam when used to scale low-value pages, which seo-content humanize and seo-content verify are designed to detect.
What Schema.org types does Claude SEO support?
JSON-LD is the preferred format (Google's stated preference). Claude SEO detects, validates, and generates the active Schema.org types documented in skills/seo/references/schema-types.md, including organization, article, product, local, event, job, course, software/application, service, Q&A, and video patterns. FAQPage: Google stopped showing FAQ rich results for all sites on May 7, 2026; it has no Google rich-result benefit. Keep it only for non-Google or internal semantics if needed. Deprecated and never recommended: HowTo (rich results removed September 2023), SpecialAnnouncement (July 2025), ClaimReview, VehicleListing, EstimatedSalary, LearningVideo, CourseInfo carousel (all retired June 2025). Replacement guidance: skills/seo-schema/references/deprecated-types-2024-2026.md.
How does Claude SEO optimize for AI search?
Aligned with Google's AI Optimization Guide, which states that "AEO" and "GEO" are rebranded labels for SEO. AI Overviews and AI Mode are grounded in the same ranking systems as classic Search; pages must be indexed and eligible for snippet display to appear in any AI feature. Claude SEO scores passage citability (optimal 134-167 word self-contained answer blocks), question-based heading hierarchy, attribution density, structured data coverage, and entity presence across Wikipedia, Reddit, YouTube, and LinkedIn. The seo-geo skill includes evidence-based reframes of three popular myths: llms.txt is not currently a citation lever (primary-source evidence), content chunking is not required, and AI-specific keyword rewriting is unnecessary because synonym understanding is sufficient.
Which Google SEO APIs does Claude SEO integrate with?
A 4-tier credential system lets you start with zero keys and add data as needed. Every tier delivers real value at its level:
| Tier | Credentials | APIs Unlocked |
|---|---|---|
| 0 | API key | PageSpeed Insights, CrUX, CrUX History (25-week trends) |
| 1 | + OAuth or Service Account | + Search Console (queries, URL Inspection, sitemap status), Indexing API |
| 2 | + GA4 property config | + GA4 organic traffic, top landing pages, device / country breakdown |
| 3 | + Ads developer token | + Keyword Planner search volume and competition data |
PDF reports are generated via WeasyPrint (A4 layout) with matplotlib charts at 200 DPI. Run /seo google setup for the credential wizard. All credentials live under ~/.config/claude-seo/ with 0o600 permissions; nothing is checked into the repo.
How does Claude SEO handle local SEO?
Three layers. Google Business Profile signals: categories, hours, photos, posts, products, attributes. NAP consistency across citations: name, address, phone matched against major directories with deviation flagging. Review intelligence: rating trends, sentiment, response coverage. For multi-location businesses, Claude SEO enforces a 30-page warning threshold and a 50-page hard stop to prevent doorway-page violations (configurable). The /seo maps workflow adds geo-grid rank tracking, GBP profile auditing, and competitor radius mapping. Local schema generation covers LocalBusiness with all required and recommended properties (geo coordinates, opening hours, areaServed). Phase F (v2) added a GBP deprecation linter that detects retired chat-field references and .business.site URLs.
Compared to manual / agency / commercial tools
| Manual audit | Agency engagement | Commercial SEO audit tool | Claude SEO | |
|---|---|---|---|---|
| Time per audit | 4-8 hrs senior SEO time | 1-3 weeks turnaround | 10-45 min crawl + report | 10-15 min |
| Cost | High (billable hours) | $2k-$15k+ project | $99-$999/mo subscription | Free skill + Claude Code subscription |
| Repeatable | Inconsistent across analysts | Inconsistent across engagements | Yes | Yes, deterministic + scriptable |
| Output format | Wall-of-findings PDF | Branded slide deck | Web dashboard, CSV exports | Markdown + PDF + JSON, local files |
| Custom benchmarks | Manual per analyst | Agency-specific frameworks | Vendor-fixed | Edit local SKILL.md |
| Data leaves machine? | No (your spreadsheet) | Yes (sent to agency) | Yes (uploaded to vendor) | No, fully local by default |
| Lock-in | None | High | High (data-exit friction) | None. MIT, your files. |
| AI search awareness | Depends on analyst | Depends on agency seniority | Lagging (typically 6-12 mo behind) | Google AI Optimization Guide (May 2026), Sept 2025 QRG, INP-not-FID, GEO/AEO=SEO reframe, llms.txt evidence-based posture |
| Falsifiability per finding | No | No | No | Yes. Every recommendation carries a "how would we know this failed?" check + leading indicator |
Cost benchmarks: manual audit assumes a senior SEO consultant at typical agency billable rates; agency engagement based on common discovery/audit deliverable scopes; commercial-tool subscriptions reflect published mid-tier pricing across the SEO audit category (Ahrefs, Semrush, Sitebulb, Screaming Frog). Your numbers may differ.
Use cases
SEO agency lead running 10 client sites. Replaces the quarterly "deep audit" ritual with a weekly Monday-morning /seo audit run per site. Time to deliver a client health-score email drops from 4 hours to 12 minutes; coverage goes from quarterly to weekly without billing more hours. The drift baseline catches regressions between audits so the client conversation moves from "look at this snapshot" to "here is what changed this week."
In-house SEO lead at a 50-person SaaS company. Runs /seo audit 24 hours before each quarterly business review. Catches the items the platform UI buries (broken canonical chains on programmatic pages, schema deprecation after Google's June 2025 retirement wave, AI-citability gaps that erode SERP-to-AI-Overview pickup, expired-domain heritage on acquired blog assets) before the CMO asks why organic traffic is down in front of the board.
Freelance SEO consultant onboarding a new client. Runs /seo audit on the discovery call. Anchors the engagement scope with a real 0-100 score, 3 prioritized critical findings, and a falsifiability check on each recommendation, instead of a vague "I'll take a look and get back to you." Closes more retainers because the proof of value happens during the call, not after the proposal.
Sample Output
Claude SEO writes real markdown reports as its primary deliverable. Below is the first ~50 lines of a /seo schema https://rankenstein.pro/about audit verbatim. The actual structure, headers, and grading format the plugin produces follows.
SCHEMA-REPORT.md: first 50 lines of a real audit
/* Detailed source-code truncated for AI context efficiency. */Other audit outputs follow the same shape: FULL-AUDIT-REPORT.md (umbrella audit), GEO-ANALYSIS.md (AI-search readiness), LOCAL-SEO-ANALYSIS.md (GBP and citations), and a production PDF via WeasyPrint + matplotlib (cover, TOC, executive summary, data sections, recommendations, methodology, roughly 32 A4 pages for a full site audit).
Architecture
The plugin follows the Agent Skills standard with a 3-layer architecture (directive, orchestration, execution). Skills and agents are auto-discovered from skills/seo-*/ and agents/seo-*.md. The orchestrator (skills/seo/SKILL.md) handles industry detection (SaaS, local, ecommerce, publisher, agency), parallel sub-agent dispatch up to 15 simultaneously, and synthesis through the 10-principle framework before emitting the action plan. Full architecture: docs/ARCHITECTURE.md.
Methodology
Every audit walks 10 principles grouped into four phases. Each emitted recommendation carries four fields: the first-principle observation it rests on, its dependency relationship to other recommendations, a "how would we know this failed?" check, and a leading indicator to monitor.
| Phase | Principles | What it does |
|---|---|---|
| PERCEIVE | OBSERVE (external) ยท OBSERVE (internal) ยท LISTEN | Collect raw signals; audit your own assumptions; read what the SERP, the brand voice, and the community actually say |
| ANALYZE | THINK ยท CONNECT (lateral) ยท CONNECT (system) | Reduce to first principles; find non-obvious cross-skill links; sequence into a dependency graph |
| VALIDATE | FEEL ยท ACCEPT | Pressure-test against UX, brand voice, operator capacity; surface falsifiability |
| ACT | CREATE ยท GROW | Ship the artifact; set the feedback loop for the next audit |
Full methodology: skills/seo/references/thinking-framework.md.
What's New in v2
v2.0.0 is the largest release in the plugin's history. Six build phases, all shipped:
- Phase A: Headless rendering everywhere. Shared
scripts/render_page.pywith Playwright Chromium plus trafilatura and htmldate. Every audit subagent gets SPA-aware fetching via--render auto(auto-detected on Next.js, React, Vue, Nuxt, Astro islands). Closes the SPA limitation that capped v1.x. - Phase B: QRG-aligned content quality gates. Filler detector and AI-pattern humanizer keyed to QRG ยง4.6.5 and ยง4.6.6, claim-verification scanner, expired-domain heritage check via WHOIS, primary-source Google updates changelog.
- Phase C: Technical and CWV depth. LCP subparts via CrUX (TTFB, load delay, load duration, render delay), Speculation Rules and bfcache detection, IndexNow submitter for Bing / Yandex / Seznam / Naver, Unlighthouse multi-page Lighthouse wrapper.
- Phase D: Schema completeness. Four explicit generators (Reservation, OrderAction, DiscussionForumPosting, ProfilePage), e-commerce schema validator (
hasMerchantReturnPolicy,shippingDetails,MemberProgram, EUenergyEfficiencyClass, ProductGroup variants), dual validator (Rich Results Test plus Schema Markup Validator). - Phase E: AI search reframing and 5 new MCP extensions. Ahrefs, SE Ranking (AI Share-of-Voice), Profound (LLM citation tracker), Bing Webmaster plus IndexNow, Unlighthouse. Plus the parasite-SEO risk scanner per Google's November 2024 site reputation abuse policy.
- Phase F: Local, international, and privacy polish. Google Business Profile deprecation linter (chat field and
.business.siteURLs, with Q&A treated as category/region-limited), DMA consent-mode-v2 click-through diagnostic, machine-translation QA flag per January 2025 QRG.
Test coverage grew from 39 (v1.9.9) to 410 across the v2 line; the url_safety suite alone runs 91 SSRF and DNS-rebinding bypass cases, closing the obfuscated-IPv4, FQDN-trailing-dot, and redirect-rebinding bypass classes. Full migration notes and breaking changes: docs/MIGRATION-v1-to-v2.md.
Since v2.0.0
- v2.1.0 (May 2026): currency refresh. May 2026 core update, Google I/O 2026 (custom version of Gemini 2.5 powers AI Mode), FAQ rich results retired 2026-05-07 (QAPage remains the type for genuine Q&A pages, FAQ markup itself just no longer yields rich results).
- v2.2.0 (June 2026): security + portability. Installer credential-injection fix, SSRF authority-confusion bypass closed, Google API keys moved to the
X-Goog-Api-Keyheader, secret-scan CI gate, Windows/macOS fixes; suite at 326. - v2.2.1 (June 2026): Google-currency reconfirmation + full command audit. Lighthouse 13.4.0 with the new Agentic Browsing category, Google Search ignores llms.txt, an internally-reweighted E-E-A-T scorecard (Trust highest, per Google's 'trust is most important'); every
/seocommand and subcommand audited and COMMANDS.md brought to 100% coverage. - v2.2.2 (July 2026): full-review maintenance. Corrected GBP Q&A handling, AI Mode model naming, image-model IDs, hook input behavior, and added a strict reference-graph consistency gate.
- v2.2.3 (July 2026): prompt-hygiene alignment. Normalized emphasis and punctuation across the prompt surface without changing behavior, routing, or output contracts.
- v2.2.4 (July 2026): community maintenance. Added the managed cross-platform runtime and safe sitemap discovery, repaired GSC pagination and totals, replaced removed Bing endpoints, fixed extension and Windows portability gaps, and reconciled every open issue and pull request.
Limitations
Two real boundaries worth being upfront about.
Heavy client-side hydration timing. Phase A's headless renderer handles most SPAs out of the box (--render auto detects empty `` shells and switches to Playwright). Edge cases that still produce noisy findings: pages with hydration tied to scroll position past the fold, pages that fetch critical content after user interaction (modal opens, tab clicks), pages with race-condition-prone third-party widget mounts. For these, manually triggering the seo-visual subagent and comparing its Playwright snapshot to the raw-HTML subagents' findings is the recommended workflow.
Local-only without enrichment. The free tier makes no third-party API calls by default (audits still fetch the target URLs you point them at). Adding Google API credentials (Tier 0 through 3) unlocks real field data and live indexation status; without them, Core Web Vitals are lab estimates only and indexation is inferred from page-level signals. Adding MCP extensions (Ahrefs, DataForSEO, SE Ranking, Profound) similarly unlocks competitive and AI-citation data but requires their respective accounts.
Requirements
- Python 3.10+
- Claude Code CLI
- Optional: Playwright Chromium โ install.sh offers to install it (you can skip the prompt); needed only for SPA rendering and screenshots
- Optional: Google API credentials for enriched CWV / GSC / GA4 data (see
/seo google setup)
Uninstall
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
bash claude-seo/uninstall.shOne-liner (curl)
curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/uninstall.sh | bashExtensions
Optional MCP servers add live data to the audit pipeline. Claude SEO ships extensions for 8 servers; the plugin core works without any of them.
DataForSEO
Live SERP data, keyword research, backlinks, on-page analysis, content analysis, business listings, AI visibility checks, and LLM mention tracking. 23 data commands across 9 API modules.
./extensions/dataforseo/install.sh # requires DataForSEO account
/seo dataforseo serp best coffee shops
/seo dataforseo ai-mentions your brandFull DataForSEO docs: extensions/dataforseo/README.md.
Firecrawl
Full-site crawling and URL discovery via the Firecrawl MCP server.
./extensions/firecrawl/install.sh
/seo firecrawl crawl https://example.comFull Firecrawl docs: extensions/firecrawl/README.md.
Banana: AI image generation
SEO image generation (OG previews, blog heroes, product photos, infographics) via the Claude Banana Creative Director pipeline.
./extensions/banana/install.sh
/seo image-gen og "Professional SaaS dashboard"Full Banana docs: extensions/banana/README.md.
Ahrefs, SE Ranking, Profound, Bing Webmaster, Unlighthouse (new in v2)
Five extensions added in Phase E:
- Ahrefs: official
@ahrefs/mcpserver with backlink and organic data - SE Ranking: AI Share-of-Voice across ChatGPT, Gemini, Perplexity, AI Overviews, AI Mode
- Profound: LLM citation tracker with time-series data
- Bing Webmaster: Bing Webmaster Tools plus IndexNow unified
- Unlighthouse: MIT-licensed multi-page Lighthouse runner
Setup walkthroughs live under extensions/<name>/docs/; integration notes: docs/MCP-INTEGRATION.md.
Ecosystem
Claude SEO is part of a family of Claude Code skills that interoperate cleanly:
| Skill | What it does | How it connects |
|---|---|---|
| Claude SEO | SEO analysis, audits, schema, GEO | Core. Analyzes sites and generates action plans. |
| Claude Blog | Blog writing, optimization, scoring | Companion. Writes content optimized by SEO findings. |
| Claude Banana | AI image generation via Gemini | Shared. Generates images for SEO assets and blog posts. |
| Codex SEO | Codex-first SEO skill suite | Port. Same SEO system adapted for Codex skills, TOML agents, deterministic runners. |
| AI Marketing Claude | Copywriting, emails, social, ads, funnels, CRO | Community. Post-audit marketing action from SEO findings. |
| FLOW | Evidence-led SEO framework (41 AI prompts, CC BY 4.0) | Knowledge base. Powers seo-flow prompts. |
Workflow example:
/seo audit https://example.com: identify content gaps and technical issues/seo backlinks https://example.com: analyze link profile and competitor gaps/seo geo https://example.com/blog/post: score AI-citation readiness/blog write "target keyword": create SEO-optimized blog post (Claude Blog)/seo image-gen hero "blog topic": generate hero image (Banana extension)
Documentation
- Installation Guide
- Commands Reference: every
/seocommand in depth - Architecture: 3-layer design, auto-discovery, parallel dispatch
- Migration v1 โ v2: breaking changes, six phases of work
- MCP Integration: integration notes; extension setup lives under
extensions/<name>/docs/ - Troubleshooting
- Contributors: community credits
FAQ
What is Claude SEO?
Claude SEO is an open-source SEO analysis plugin for Claude Code. It runs 25 sub-skills and 18 specialist agents in parallel across technical SEO, content quality, Schema.org markup, AI search optimization, local SEO, e-commerce, and international SEO. Audits produce a prioritized action plan where each recommendation carries the first-principle observation it rests on, its dependency relationship to other recommendations, a "how would we know this failed?" check, and a leading indicator. The plugin is MIT-licensed, ships zero proprietary tracking, and works without third-party API enrichment; audits still contact the target URLs you analyze. Aligned with Google's AI Optimization Guide and the September 2025 Quality Rater Guidelines.
How is Claude SEO different from Screaming Frog or Ahrefs Site Audit?
Different surface area, different tradeoffs. Screaming Frog crawls deeper and faster at the link-graph level; it is purpose-built as a crawler and Claude SEO does not attempt to replace it. Ahrefs Site Audit brings a proprietary backlink index and link intelligence; Claude SEO integrates with Ahrefs via its MCP extension rather than competing. Where Claude SEO leads: conversational LLM-native workflow, recommendation falsifiability (every finding carries an explicit failure-mode check), open-source MIT licensing with zero per-domain pricing, AI search optimization aligned with Google's primary-source guidance, and primary-source schema-deprecation tracking. Use Screaming Frog or Ahrefs for what they are best at; use Claude SEO when you want LLM-driven synthesis, conversational iteration, and AI-search-first audits in the same environment as your other Claude Code workflows.
Does Claude SEO work on single-page applications (Next.js, React, Vue)?
Yes. Phase A of v2 shipped a shared headless renderer (scripts/render_page.py) backed by Playwright Chromium. Audit subagents call render_page.py --mode auto, which auto-detects SPA hallmarks (empty `` shells, single bundle script, hydration markers) and switches to a rendered fetch. The lower-level scripts/fetch_page.py wrapper supports --render auto as an opt-in wrapper mode; its default is --render never for raw HTTP. Use render_page.py --mode always or fetch_page.py --render always to force rendering. Content extraction uses trafilatura for boilerplate removal. Publication dates come from htmldate. Known nuance: pages with scroll-bound hydration or post-interaction content fetches still produce noisy findings; see the Limitations section for the recommended seo-visual cross-check workflow on those edge cases.
What Google APIs does Claude SEO use, and are they required?
None are required. Claude SEO is fully functional with zero API keys. A 4-tier credential system lets you upgrade gradually: Tier 0 (API key only) unlocks PageSpeed Insights, CrUX, and CrUX History (25-week trend data). Tier 1 (+ OAuth or service account) adds Search Console with queries, URL Inspection, sitemap status, and the Indexing API for eligible JobPosting pages or BroadcastEvent in VideoObject pages; the API does not guarantee indexing. Tier 2 (+ GA4 property config) adds organic traffic, top landing pages, and device / country breakdowns. Tier 3 (+ Ads developer token) adds Keyword Planner search volume and competition data. The credential setup wizard runs via /seo google setup. All credentials live under ~/.config/claude-seo/ with 0o600 file permissions; nothing is checked into the repo and nothing is transmitted beyond Google's own endpoints.
Is Claude SEO free?
Yes. MIT licensed, fully open source, no per-domain pricing, no telemetry, no API quotas imposed by the plugin itself. The core plugin and all 25 sub-skills work without any paid service. Some optional MCP extensions wrap paid services (DataForSEO, Ahrefs, Profound, SE Ranking) where you bring your own account credentials; their use is opt-in and the plugin works fully without them. Google APIs (PageSpeed Insights, Search Console, Indexing, GA4) are free from Google with normal account quota limits and require your own credentials. If you want commercial support or enterprise features beyond the open-source plugin, that is not part of this project.
How is Claude SEO different from regular SEO tools when it comes to AI search?
Most SEO tools treat AI search as a separate optimization discipline. Claude SEO follows Google's own position that AEO and GEO are rebranded labels for SEO. AI Overviews and AI Mode are grounded in the same ranking systems as classic Search; the eligibility floor is normal indexation. Claude SEO scores passage citability (134-167 word self-contained answer blocks), question-based heading hierarchy, attribution density, and entity presence across Wikipedia, Reddit, YouTube, and LinkedIn. It explicitly rejects three influencer myths: llms.txt as a citation lever, content chunking for AI, and AI-specific keyword rewriting. For commerce sites, Claude SEO audits the IPTC TrainedAlgorithmicMedia requirement on AI-generated product images per Google Merchant Center policy.
Community Contributors
v1.9.0 includes contributions from the AI Marketing Hub Pro Hub Challenge:
| Contributor | Contribution |
|---|---|
| Lutfiya Miller (Winner) | Semantic Cluster Engine โ seo-cluster |
| Florian Schmitz | SXO Skill โ seo-sxo |
| Dan Colta | SEO Drift Monitor โ seo-drift |
| Chris Muller | Multi-lingual SEO โ seo-hreflang enhancements |
| Matej Marjanovic | E-commerce + DataForSEO Cost Config โ seo-ecommerce + cost guardrails |
See CONTRIBUTORS.md for full details and original repo links.
License
MIT License. See LICENSE for details.
Contributing
Contributions welcome. Please read CONTRIBUTING.md before submitting PRs and include the tests or checks you ran in the PR description.
Author
Built by Agrici Daniel, AI Workflow Architect. Single maintainer, open to community contributions via the Pro Skool community. Background in marketing automation, AI-assisted content workflows, and open-source tooling for Claude Code.
- Blog: deep dives on AI marketing automation
- AI Marketing Hub (free): open community
- AI Marketing Hub Pro: Pro community, early access to this skill
- YouTube: tutorials and demos
- GitHub: all open-source tools
File: docs/ARCHITECTURE.md
Architecture
Overview
Claude SEO follows Anthropic's official Claude Code skill specification with a modular, multi-skill architecture.
Directory Structure
The plugin ships 25 sub-skills (21 core + 1 orchestrator + 1 framework integration + 2 extension mirrors) and 18 sub-agents (15 core + 1 framework integration + 2 extension mirrors).
/* Detailed source-code truncated for AI context efficiency. */Component Types
Skills
Skills are markdown files with YAML frontmatter that define capabilities and instructions.
SKILL.md Format:
---
name: skill-name
When to use this skill. Include activation keywords
and concrete use cases.
---
# Skill Title
Instructions and documentation...Subagents
Subagents are specialized workers that can be delegated tasks. They have their own context and tools.
Agent Format:
---
name: agent-name
tools: Read, Bash, Write, Glob, Grep
---
Instructions for the agent...Reference Files
Reference files contain static data loaded on-demand to avoid bloating the main skill.
Orchestration Flow
Full Audit (`/seo audit`)
/* Detailed source-code truncated for AI context efficiency. */Individual Command
User Request (e.g., /seo page)
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ seo โ โ Routes to sub-skill
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ seo-page โ โ Sub-skill handles directly
โ (SKILL.md) โ
โโโโโโโโโโโโโโโโโโโDesign Principles
1. Progressive Disclosure
- Main SKILL.md stays under 500 lines (per the development rules)
- Reference files loaded on-demand
- Detailed instructions in sub-skills
2. Parallel Processing
- Subagents run concurrently during audits
- Independent analyses don't block each other
- Results aggregated after all complete
3. Quality Gates
- Built-in thresholds prevent bad recommendations
- Location page limits (30 warning, 50 hard stop)
- Schema deprecation awareness
- FID โ INP replacement enforced
4. Industry Awareness
- Templates for different business types
- Automatic detection from homepage signals
- Tailored recommendations per industry
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 |
Extension Points
Adding a New Sub-Skill
- Create
skills/seo-newskill/SKILL.md - Add YAML frontmatter with name and description
- Write skill instructions
- Update main
skills/seo/SKILL.mdto route to new skill
Adding a New Subagent
- Create
agents/seo-newagent.md - Add YAML frontmatter with name, description, tools
- Write agent instructions
- Reference from relevant skills
Adding a New Reference File
- Create file in appropriate
references/directory - Reference in skill with load-on-demand instruction
Extensions
Managed Python runtime
Bundled tools are dispatched through bin/claude-seo andscripts/runtime.py, never through a working-directory-relative Python command.
The launcher resolves Python 3.10 or newer, while the standard-library runtime
provides three operations: run, setup, and read-only doctor.
Plugin environments live under persistent CLAUDE_PLUGIN_DATA. Manual installs
keep the compatible ~/.claude/skills/seo/.venv location. A state marker records
the runtime schema, requirements SHA-256, Python major and minor version, public
plugin version, and browser state. Requirements, runtime-schema, or Python ABI
changes require explicit setup; a version-only difference remains compatible and
is refreshed on the next setup. Environment replacement is staged and rolled
back if validation or marker publication fails.
run accepts only allowlisted script basenames or a contained extension script.
It forwards arguments without a shell, preserves child exit codes, forces UTF-8
child streams, and uses the same persistent Playwright browser directory created
by setup.
Extensions are opt-in add-ons that integrate external data sources via MCP servers. They live in extensions/<name>/ and ship their own install / uninstall scripts.
/* Detailed source-code truncated for AI context efficiency. */Available Extensions
| Extension | Package (pinned) | What it adds |
|---|---|---|
| DataForSEO | [email protected] |
Live SERP data, keyword research, backlinks, on-page analysis, business listings, AI visibility, LLM mention tracking |
| Banana Image Gen | @ycse/[email protected] |
AI image generation for SEO assets via Gemini (OG images, hero images, product photos, infographics, batch) |
| Firecrawl | [email protected] |
Full-site crawling and URL discovery for audits |
| Ahrefs | @ahrefs/[email protected] |
Backlinks and organic keyword data via the official @ahrefs/mcp server |
| SE Ranking | SE Ranking API | AI Share-of-Voice across ChatGPT, Gemini, Perplexity, AI Overviews, and AI Mode |
| Profound | Profound API | LLM citation tracking with time-series data |
| Bing Webmaster | Bing Webmaster Tools API | Bing Webmaster Tools + IndexNow URL submission |
| Unlighthouse | [email protected] |
Multi-page Lighthouse runner, runs locally |
Extension Convention
- Self-contained in
extensions/<name>/ - Own
install.sh(andinstall.ps1where Windows is supported) that copies files and configures MCP (where applicable) - Own
uninstall.sh(anduninstall.ps1where present) that reverses installation - Installs the sub-skill mirror to the plugin's skill directory
- Installs the sub-agent mirror to the plugin's agent directory (extensions that ship one; lighter extensions are skill-only)
- Merges MCP config into
~/.claude/settings.jsonnon-destructively - MCP server versions are pinned (
@<version>) for supply-chain stability
File: docs/COMMANDS.md
Commands Reference
Overview
All Claude SEO commands start with /seo followed by a subcommand.
Command List
`/seo setup`
Explicitly create or refresh the isolated Python runtime and Playwright Chromium.
This is required once after a marketplace plugin install. Manual installers run
the same setup automatically. It never installs packages globally.
`/seo doctor`
Check runtime, dependency, and Chromium readiness without changing the system.
Diagnostic output omits absolute paths and environment values.
`/seo audit `
Full website SEO audit with parallel analysis.
Example:
/seo audit https://example.comWhat it does:
- Crawls up to 500 pages
- Detects business type
- Delegates to up to 15 specialist subagents in parallel (8 always-on + 7 conditional)
- Generates SEO Health Score (0-100)
- Creates prioritized action plan
Output:
FULL-AUDIT-REPORT.mdACTION-PLAN.mdscreenshots/(if Playwright available)
`/seo page `
Deep single-page analysis.
Example:
/seo page https://example.com/aboutWhat it analyzes:
- On-page SEO (title, meta, headings, URLs)
- Content quality (word count, readability, E-E-A-T)
- Technical elements (canonical, robots, Open Graph)
- Schema markup
- Images (alt text, sizes, formats)
- Core Web Vitals potential issues
`/seo technical `
Technical SEO audit across 9 categories.
Example:
/seo technical https://example.comCategories:
- Crawlability
- Indexability
- Security
- URL Structure
- Mobile Optimization
- Core Web Vitals (LCP, INP, CLS)
- Structured Data
- JavaScript Rendering
- IndexNow Protocol
`/seo content `
E-E-A-T and content quality analysis.
Example:
/seo content https://example.com/blog/postWhat it evaluates:
- Experience signals (first-hand knowledge)
- Expertise (author credentials)
- Authoritativeness (external recognition)
- Trustworthiness (transparency, security)
- AI citation readiness
- Content freshness
`/seo content-brief `
Generate a detailed SEO content brief: target keywords, search intent, heading outline, internal link targets, and competitor angle.
Example:
/seo content-brief "best running shoes for flat feet"What it produces:
- Primary and secondary target keywords
- Search intent and audience
- Section-by-section heading outline
- Internal link recommendations
- Competitor content angles to beat
`/seo schema `
Schema markup detection, validation, and generation.
Example:
/seo schema https://example.comWhat it does:
- Detects existing schema (JSON-LD, Microdata, RDFa)
- Validates against Google's requirements
- Identifies missing opportunities
- Generates ready-to-use JSON-LD
`/seo geo `
AI Overviews / Generative Engine Optimization.
Example:
/seo geo https://example.com/blog/guideWhat it analyzes:
- Citability score (quotable facts, statistics)
- Structural readability (headings, lists, tables)
- Entity clarity (definitions, context)
- Authority signals (credentials, sources)
- Structured data support
`/seo images `
Image optimization analysis. Subcommands: serp <keyword> (image SERP / visual-search analysis), optimize (local file optimization + IPTC AI labeling).
Examples:
/seo images https://example.com
/seo images serp "running shoes"
/seo images optimize ./hero.webpWhat it checks:
- Alt text presence and quality
- File sizes (flag >200KB)
- Formats (WebP/AVIF recommendations)
- Responsive images (srcset, sizes)
- Lazy loading
- CLS prevention (dimensions)
`/seo sitemap `
Analyze existing XML sitemap.
Example:
/seo sitemap https://example.com/sitemap.xmlWhat it validates:
- XML format
- URL count (<50k per file)
- URL status codes
- lastmod accuracy
- Deprecated tags (priority, changefreq)
- Coverage vs crawled pages
`/seo sitemap generate`
Generate new sitemap with industry templates.
Example:
/seo sitemap generateProcess:
- Select or auto-detect business type
- Interactive structure planning
- Apply quality gates (30/50 location page limits)
- Generate valid XML
- Create documentation
`/seo plan `
Strategic SEO planning.
Types: saas, local, ecommerce, publisher, agency
Example:
/seo plan saasWhat it creates:
- Complete SEO strategy
- Competitive analysis
- Content calendar
- Implementation roadmap (4 phases)
- Site architecture design
`/seo competitor-pages [url|generate]`
Competitor comparison page generation.
Examples:
/seo competitor-pages https://example.com/vs/competitor
/seo competitor-pages generateCapabilities:
- Generate "X vs Y" comparison page layouts
- Create "Alternatives to X" page structures
- Build feature comparison matrices with scoring
- Generate Product + AggregateRating schema markup
- Apply conversion-optimized CTA placement
- Enforce fairness guidelines (accurate data, source citations)
`/seo hreflang [url]`
Hreflang and international SEO audit and generation. Subcommand: audit <directory-or-url> (audit hreflang across a local build directory or a live URL set).
Examples:
/seo hreflang https://example.com
/seo hreflang audit ./distCapabilities:
- Validate self-referencing hreflang tags
- Check return tag reciprocity (AโB requires BโA)
- Verify x-default tag presence
- Validate ISO 639-1 language and ISO 3166-1 region codes
- Check canonical URL alignment with hreflang
- Detect protocol mismatches (HTTP vs HTTPS)
- Generate correct hreflang link tags and sitemap XML
`/seo programmatic [url|plan]`
Programmatic SEO analysis and planning for pages generated at scale.
Examples:
/seo programmatic https://example.com/tools/
/seo programmatic planCapabilities:
- Assess data source quality (CSV, JSON, API, database)
- Plan template engines with unique content per page
- Design URL pattern strategies (
/tools/[tool-name],/[city]/[service]) - Automate internal linking (hub/spoke, related items, breadcrumbs)
- Enforce thin content safeguards (quality gates, word count thresholds)
- Prevent index bloat (noindex low-value, pagination, faceted nav)
`/seo local `
Local SEO analysis covering Google Business Profile, citations, reviews, and the map pack.
Example:
/seo local https://example.comWhat it analyzes:
- Google Business Profile signals (categories, hours, photos, posts)
- NAP (Name, Address, Phone) consistency across the page and external citations
- Review velocity, response rate, and sentiment
- Local schema markup (LocalBusiness, Restaurant, Service-specific types)
- Industry-specific local factors (brick-and-mortar, SAB, hybrid)
- Map pack visibility signals
`/seo maps [command] [args]`
Maps intelligence: geo-grid rank tracking, GBP profile audits, review intelligence, cross-platform NAP verification, competitor radius mapping.
Examples:
/seo maps "Joe's Coffee" "austin tx"
/seo maps grid "coffee shop" "austin tx"
/seo maps gbp "Joe's Coffee" "austin tx"
/seo maps reviews "Joe's Coffee" "austin tx"
/seo maps competitors "auto repair" "denver"
/seo maps nap "Joe's Coffee" "austin tx"
/seo maps schema "Joe's Coffee" "austin tx"Capabilities:
- Rank tracking on a geographic grid (typically 49 points)
- GBP profile audit with completeness scoring
- Review aggregation across Google, Yelp, Facebook, Bing
- Competitor discovery within a configurable radius
`/seo backlinks `
Backlink profile analysis with a 3-tier data cascade: free (Common Crawl + verification), free with signup (Moz, Bing Webmaster Tools), paid (DataForSEO).
Examples:
/seo backlinks https://example.com
/seo backlinks gap https://example.com https://competitor.com
/seo backlinks toxic https://example.com
/seo backlinks new https://example.com
/seo backlinks verify https://example.com --links known-links.txt
/seo backlinks setupWhat it analyzes:
- Domain Authority and Page Authority (Moz)
- Referring domain count and growth
- Anchor text distribution (branded, exact, partial, naked URL)
- Toxic / spammy backlink detection
- Lost backlinks
- Competitor link gap
`/seo cluster [command] `
SERP-based semantic topic clustering for content architecture planning. Built on the Pro Hub Challenge Semantic Cluster Engine. Subcommands: plan <seed> (full planning workflow; also plan --from strategy to import a /seo plan output), execute (create content via claude-blog or output briefs), map (regenerate the interactive visualization). Bare /seo cluster <seed> is shorthand for plan.
Examples:
/seo cluster plan "claude code skills"
/seo cluster plan --from strategy
/seo cluster execute
/seo cluster mapWhat it produces:
- Keyword expansion from the seed (50-200 candidates)
- Pairwise SERP overlap comparison to detect semantic clusters
- Intent classification per cluster (informational, commercial, transactional, navigational)
- Hub-and-spoke content architecture proposal
- Internal link matrix between cluster pages
- Interactive
cluster-map.htmlvisualization
`/seo sxo `
Search Experience Optimization: SERP backwards analysis, page-type mismatch detection, persona scoring. Subcommands: <keyword> (analyze for a specific keyword), wireframe (IST/SOLL wireframe), personas (persona-only scoring, skips SERP).
Examples:
/seo sxo https://example.com/blog/how-to-x
/seo sxo https://example.com/page "target keyword"
/seo sxo wireframe https://example.com/page
/seo sxo personas https://example.com/pageWhat it produces:
- Page-type taxonomy classification (article, landing, product, tool, listing)
- SERP intent vs page-type alignment check
- User stories derived from SERP signals
- Multi-persona scoring (researcher, buyer, expert, casual visitor)
- Wireframe-level recommendations for fixing mismatches
`/seo drift baseline|compare|history `
SEO drift monitoring. Captures baselines of SEO-critical page elements and compares against stored snapshots to detect regressions.
Examples:
/seo drift baseline https://example.com
/seo drift compare https://example.com
/seo drift history https://example.comWhat it tracks: title, meta description, canonical, hreflang, Open Graph, schema, headings, internal links, robots, sitemap entry, indexability, Core Web Vitals, response status, redirect chain.
17 comparison rules classify changes by severity (CRITICAL, HIGH, MEDIUM). SQLite-backed baselines.
`/seo ecommerce `
E-commerce SEO covering product schema, marketplace intelligence, and pricing gap analysis. Subcommands: products <keyword> (Google Shopping competitive analysis), gaps <domain> (organic-vs-Shopping visibility gap), schema (product schema validation + enhancement).
Examples:
/seo ecommerce https://shop.example.com/product/x
/seo ecommerce products "running shoes"
/seo ecommerce gaps shop.example.com
/seo ecommerce schema https://shop.example.com/product/xWhat it analyzes:
- Product schema (Product, Offer, AggregateRating, Review)
- Google Shopping visibility
- Amazon marketplace presence
- Pricing gap vs competitors
- Out-of-stock and availability signals
- Faceted navigation crawl traps
`/seo flow [stage] [url|topic]`
FLOW framework integration: evidence-led prompts for the Find, Leverage, Optimize, Win, and Local stages of a content campaign.
Examples:
/seo flow find "topic"
/seo flow leverage https://example.com
/seo flow optimize https://example.com/page
/seo flow win https://example.com/page
/seo flow local https://example.com
/seo flow prompts
/seo flow sync41 prompts sourced from FLOW (CC BY 4.0). Each prompt is grounded in a specific evidence source (SERP data, GSC, GA4, customer interviews) with attribution preserved.
`/seo google [command] [url]`
Google SEO APIs. 4-tier credential system covering PageSpeed Insights, CrUX, CrUX History, Search Console, URL Inspection, Indexing API, GA4, and Keyword Planner.
Setup & reporting:
/seo google setup # Configure/check credentials
/seo google quotas # Show per-API quota usage
/seo google report full # Generate full PDF/HTML report
/seo google report cwv-audit # CWV-focused report
/seo google report gsc-performance # Search performance report
/seo google report indexation # Indexation status reportPageSpeed / CrUX (Tier 0):
/seo google pagespeed # PageSpeed Insights (lab) + CWV
/seo google crux # CrUX field data
/seo google crux-history # 25-week CrUX historySearch Console / Indexing (Tier 1):
/seo google gsc # Search Analytics (clicks/impressions/CTR/position)
/seo google inspect # URL Inspection (indexation status)
/seo google inspect-batch <file> # Batch URL inspection
/seo google sitemaps # List submitted sitemaps + status
/seo google index # Indexing API notify
/seo google index-batch <file> # Batch indexing notifyUse Indexing API commands only for pages with JobPosting or BroadcastEvent embedded in VideoObject. Route ordinary URLs to URL Inspection or sitemaps; URL_UPDATED does not guarantee indexing.
GA4 (Tier 2):
/seo google ga4 [property-id] # Organic traffic report
/seo google ga4-pages [property-id] # Top organic landing pagesNLP / Keywords / YouTube:
/seo google nlp # NLP content analysis
/seo google entities # Entity extraction
/seo google entity <query> # Entity lookup
/seo google keywords <seed> # Keyword Planner ideas (Tier 3)
/seo google volume <keywords> # Keyword search volume (Tier 3)
/seo google youtube <query> # YouTube search
/seo google youtube-video <video_id> # YouTube video analysis
/seo google safety # Safe Browsing checkTiers:
- Tier 0 (API key only): PSI, CrUX, CrUX History
- Tier 1 (+ OAuth or Service Account): GSC, URL Inspection, Indexing API
- Tier 2 (+ GA4 property config): GA4 organic traffic
- Tier 3 (+ Google Ads developer token): Keyword Planner
PDF and HTML reports generated via WeasyPrint and matplotlib.
`/seo image-gen [use-case] `
AI image generation for SEO assets (extension). Powered by Gemini via nanobanana-mcp.
Prerequisites: Banana extension installed (./extensions/banana/install.sh)
Use Cases:
/seo image-gen og <description> # OG/social preview image (16:9, 1K)
/seo image-gen hero <description> # Blog hero image (16:9, 2K)
/seo image-gen product <description> # Product photography (4:3, 2K)
/seo image-gen infographic <description> # Infographic visual (2:3, 4K)
/seo image-gen custom <description> # Custom with full Creative Director pipeline
/seo image-gen batch <description> [N] # Generate N variations (default: 3)What it does:
- Maps SEO use case to optimized domain mode, aspect ratio, and resolution
- Constructs 6-component Reasoning Brief (Creative Director pipeline)
- Generates image via Gemini API
- Provides SEO checklist (alt text, file naming, WebP, schema markup)
`/seo firecrawl [command] `
Full-site crawling and URL discovery via Firecrawl MCP (extension).
Prerequisites: Firecrawl extension installed (./extensions/firecrawl/install.sh)
Examples:
/seo firecrawl crawl https://example.com
/seo firecrawl map https://example.com
/seo firecrawl scrape https://example.com/page
/seo firecrawl search "query" https://example.comWhat it does:
crawlwalks the site discovering URLs and capturing contentmapreturns the full URL inventory for a domainscrapeextracts a single page in a model-friendly formatsearchsearches within a crawled site for a query
`/seo dataforseo [command]`
Live SEO data via DataForSEO MCP server (extension). 23 data commands across 9 API modules, plus cost-tracking commands.
Prerequisites: DataForSEO extension installed (./extensions/dataforseo/install.sh)
SERP Analysis:
/seo dataforseo serp <keyword> # Google organic results (also Bing/Yahoo)
/seo dataforseo serp-images <keyword> # Google Images SERP results
/seo dataforseo serp-youtube <keyword> # YouTube search results
/seo dataforseo youtube <video_id> # YouTube video deep analysisKeyword Research:
/seo dataforseo keywords <seed> # Keyword ideas and suggestions
/seo dataforseo volume <keywords> # Search volume metrics
/seo dataforseo difficulty <keywords> # Keyword difficulty scores
/seo dataforseo intent <keywords> # Search intent classification
/seo dataforseo trends <keyword> # Google Trends dataDomain & Competitors:
/seo dataforseo backlinks <domain> # Full backlink profile
/seo dataforseo competitors <domain> # Competitor analysis
/seo dataforseo ranked <domain> # Ranked keywords
/seo dataforseo intersection <domains> # Keyword/backlink overlap
/seo dataforseo traffic <domains> # Traffic estimation
/seo dataforseo subdomains <domain> # Subdomains with ranking data
/seo dataforseo top-searches <domain> # Top queries mentioning domainTechnical / On-Page:
/seo dataforseo onpage # On-page analysis (Lighthouse)
/seo dataforseo tech <domain> # Technology detection
/seo dataforseo whois <domain> # WHOIS dataContent & Business Data:
/seo dataforseo content <keyword/url> # Content analysis and trends
/seo dataforseo listings <keyword> # Business listings searchAI Visibility / GEO:
/seo dataforseo ai-scrape <query> # ChatGPT web scraper for GEO
/seo dataforseo ai-mentions <keyword> # LLM mention trackingCost Tracking:
/seo dataforseo costs today # Today's DataForSEO spend
/seo dataforseo costs summary # Spend summary across periods
/seo dataforseo costs config --mode threshold --threshold 0.50 # Set cost-control mode/threshold`/seo ahrefs [command] `
Ahrefs API metrics (extension). Prerequisites: Ahrefs extension installed (./extensions/ahrefs/install.sh).
/seo ahrefs metrics # DR/UR, referring-domain count, organic traffic estimate
/seo ahrefs backlinks # Top referring domains, anchor distribution, follow/nofollow ratio
/seo ahrefs organic # Organic keywords, ranking distribution, traffic by country
/seo ahrefs content <topic> # Content Explorer top results, social shares, referring domains`/seo bing [command]`
Bing Webmaster Tools + IndexNow (extension). Prerequisites: Bing extension installed (./extensions/bing-webmaster/install.sh).
/seo bing links # Inbound links from Bing Webmaster
/seo bing compare # Compare two URLs' Bing link profiles
/seo bing submit --host <host> # IndexNow single-URL submit (requires key)
/seo bing submit-batch <file> --host <host> # IndexNow batch submit (requires key)
/seo bing verify-indexnow --host <host> # Verify the IndexNow key is published`/seo profound [command] `
LLM brand-citation tracking via Profound (extension). Prerequisites: Profound extension installed.
/seo profound citations # Citation rate per LLM + 30-day trend
/seo profound prompts # Top prompts that surface (or miss) the brand
/seo profound competitors # Brands cited alongside yours for the same prompts
/seo profound alerts # Spike/drop alerts vs 7-day baseline`/seo seranking [command] `
AI-visibility + SERP via SE Ranking (extension). Prerequisites: SE Ranking extension installed.
/seo seranking ai-visibility # Share-of-voice across ChatGPT/Gemini/Perplexity/AI Overviews/AI Mode
/seo seranking serp <keyword> # Top 100 organic positions + SERP features
/seo seranking backlinks # Backlink profile (free-tier alternative to Ahrefs/DataForSEO)
/seo seranking competitors # Top 10 organic competitors + shared-keyword gaps`/seo unlighthouse `
Multi-page Lighthouse audit via Unlighthouse (extension, MIT, no API quota). Prerequisites: Node 18+ and the unlighthouse npm package (./extensions/unlighthouse/install.sh).
/seo unlighthouse https://example.com
/seo unlighthouse https://example.com --device desktop
/seo unlighthouse https://example.com --max-routes 50 --output-dir ./reportsQuick Reference
| Command | Use Case |
|---|---|
/seo audit |
Full website audit with parallel subagents |
/seo page |
Single page analysis |
/seo technical |
Technical SEO across 9 categories |
/seo content |
E-E-A-T and content quality |
/seo content-brief <topic> |
Detailed content brief: keywords, outline, internal links |
/seo schema |
Schema markup detection, validation, generation |
/seo sitemap |
Sitemap validation |
/seo sitemap generate |
Create new sitemap with industry templates |
/seo images |
Image optimization |
/seo geo |
AI search optimization (GEO) |
/seo local |
Local SEO (GBP, citations, reviews) |
/seo maps [command] |
Maps intelligence (geo-grid, GBP audit, competitors) |
/seo backlinks |
Backlink profile analysis |
/seo cluster <seed> |
SERP-based semantic clustering |
/seo sxo |
Search Experience Optimization |
/seo drift baseline|compare|history |
SEO drift monitoring |
/seo ecommerce |
E-commerce SEO |
/seo hreflang [url] |
Hreflang and international SEO |
/seo plan <type> |
Strategic planning by industry |
/seo programmatic [url|plan] |
Programmatic SEO analysis |
/seo competitor-pages [url|generate] |
Competitor comparison pages |
/seo flow [stage] [url|topic] |
FLOW framework prompts |
/seo google [command] [url] |
Google SEO APIs (GSC, PSI, CrUX, GA4) |
/seo dataforseo [command] |
Live SEO data (extension) |
/seo image-gen [use-case] <desc> |
AI image generation (extension) |
/seo firecrawl [command] |
Full-site crawling (extension) |
/seo ahrefs [command] |
Backlinks, organic keywords, and content data via the official Ahrefs MCP (extension) |
/seo seranking [command] |
AI Share-of-Voice across ChatGPT, Gemini, Perplexity, AI Overviews, AI Mode (extension) |
/seo profound [command] |
LLM citation tracking with time-series data (extension) |
/seo bing [command] |
Bing Webmaster Tools + IndexNow URL submission (extension) |
/seo unlighthouse |
Multi-page Lighthouse runner, runs locally (extension) |
File: docs/INSTALLATION.md
Installation Guide
Prerequisites
- Python 3.10+ with pip
- Git for cloning the repository
- Claude Code CLI installed and configured
Optional:
- Playwright Chromium - install.sh attempts this automatically; failure is non-fatal; needed only for SPA rendering and screenshots
Quick Install
Plugin Install (Claude Code 1.0.33+)
The recommended path. Inside Claude Code:
/plugin marketplace add AgriciDaniel/claude-seo
/plugin install claude-seo@agricidaniel-claude-seo
/seo setupPlugin installation does not run package managers. /seo setup is an explicit,
one-time provisioning step that writes the virtual environment and browser only
to Claude's persistent plugin data. Use /seo doctor for a read-only check.
Manual Install (Unix, macOS, Linux)
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
bash claude-seo/install.shReview-then-run alternative:
curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/install.sh > install.sh
cat install.sh # review
bash install.sh # run when satisfied
rm install.shManual Install (Windows, PowerShell)
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
powershell -ExecutionPolicy Bypass -File claude-seo\install.ps1The Windows path uses git clone rather than irm | iex because Claude Code's own security guardrails flag piped remote-script execution. Inspect install.ps1 before running.
Manual Installation
- Clone the repository
git clone https://github.com/AgriciDaniel/claude-seo.git
cd claude-seo- Run the installer
./install.sh- Verify the managed runtime
The installer delegates dependency and Chromium provisioning to the same runtime
used by every skill. It creates ~/.claude/skills/seo/.venv/ and never falls
back to global or user package installation.
~/.claude/skills/seo/bin/claude-seo doctorIf core setup failed, rerun the inspected installer. If only Chromium failed,
the installer reports a degraded result and raw-fetch analysis remains available.
Installation Paths
The installer copies files to:
| Component | Path |
|---|---|
| Main skill | ~/.claude/skills/seo/ |
| Sub-skills | ~/.claude/skills/seo-*/ |
| Subagents | ~/.claude/agents/seo-*.md |
| Runtime launcher | ~/.claude/skills/seo/bin/claude-seo |
| Isolated Python | ~/.claude/skills/seo/.venv/ |
Verify Installation
- Start Claude Code:
claude- Check that the skill is loaded:
/seoYou should see a help message or prompt for a URL.
Uninstallation
If installed as a plugin:
/plugin uninstall claude-seo@agricidaniel-claude-seo
/plugin marketplace remove AgriciDaniel/claude-seoIf installed manually, run the uninstaller from a fresh clone:
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
bash claude-seo/uninstall.shuninstall.sh removes all installed sub-skills, sub-agents, and the plugin's MCP entries from ~/.claude/settings.json. Do not maintain a hand-coded rm list. The shipped uninstaller is the canonical source.
Upgrading
To upgrade to the latest version:
Caution: Prefer downloading, inspecting, then running remote scripts; the pipe-to-shell form below is the less-safe convenience option.
# Uninstall current version
curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/uninstall.sh | bash
# Install new version
curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/install.sh | bashTroubleshooting
"Skill not found" error
Ensure the skill is installed in the correct location:
ls ~/.claude/skills/seo/SKILL.mdIf the file doesn't exist, re-run the installer.
Python dependency errors
Run the managed setup again:
~/.claude/skills/seo/bin/claude-seo setupPlaywright screenshot errors
Run the managed setup again and inspect the result:
~/.claude/skills/seo/bin/claude-seo setup
~/.claude/skills/seo/bin/claude-seo doctorPermission errors on Unix
Make sure scripts are executable:
chmod +x ~/.claude/skills/seo/scripts/*.pyFile: docs/MCP-INTEGRATION.md
MCP Integration
Overview
Claude SEO can integrate with Model Context Protocol (MCP) servers to access external APIs and enhance analysis capabilities.
Available Integrations
PageSpeed Insights API
Use Google's PageSpeed Insights API directly for real Core Web Vitals data.
Configuration:
- Get an API key from Google Cloud Console
- Enable the PageSpeed Insights API
- Use in your analysis:
curl -H "X-Goog-Api-Key: $GOOGLE_API_KEY" \
"https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=URL"Google Search Console
For organic search data, use the mcp-server-gsc MCP server by ahonn. Provides search performance data, URL inspection, and sitemap management.
Configuration:
{
"mcpServers": {
"google-search-console": {
"command": "npx",
"args": ["-y", "mcp-server-gsc"],
"env": {
"GOOGLE_CREDENTIALS_PATH": "/path/to/credentials.json"
}
}
}
}PageSpeed Insights MCP Server
Use mcp-server-pagespeed by enemyrr for Lighthouse audits, CWV metrics, and performance scoring via MCP.
Configuration:
{
"mcpServers": {
"pagespeed": {
"command": "npx",
"args": ["-y", "mcp-server-pagespeed"],
"env": {
"PAGESPEED_API_KEY": "your-api-key"
}
}
}
}Official SEO MCP Servers (2025-2026)
The MCP ecosystem for SEO has matured significantly. These are production-ready integrations:
| Tool | Package / Endpoint | Type | Notes |
|---|---|---|---|
| Ahrefs | @ahrefs/mcp |
Official | Launched July 2025. Supports local and remote modes. Backlinks, keywords, site audit data. |
| Semrush | https://mcp.semrush.com/v1/mcp |
Official (remote) | Full API access via remote MCP endpoint. Domain analytics, keyword research, backlink data. |
| Google Search Console | mcp-server-gsc |
Community | By ahonn. Search performance, URL inspection, sitemaps. |
| PageSpeed Insights | mcp-server-pagespeed |
Community | By enemyrr. Lighthouse audits, CWV metrics, performance scoring. |
| DataForSEO | dataforseo-mcp-server |
Official extension | 9 modules, 79 tools, 23 commands. Install: ./extensions/dataforseo/install.sh. See extension docs. |
| kwrds.ai | kwrds MCP server | Community | Keyword research, search volume, difficulty scoring. |
| SEO Review Tools | SEO Review Tools MCP | Community | Site auditing and on-page analysis API. |
API Usage Examples
PageSpeed Insights
import requests
def get_pagespeed_data(url: str, api_key: str) -> dict:
"""Fetch PageSpeed Insights data for a URL."""
endpoint = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed"
params = {
"url": url,
"strategy": "mobile", # or "desktop"
"category": ["performance", "accessibility", "best-practices", "seo"]
}
headers = {"X-Goog-Api-Key": api_key}
response = requests.get(endpoint, params=params, headers=headers)
return response.json()Core Web Vitals from CrUX
def get_crux_data(url: str, api_key: str) -> dict:
"""Fetch Chrome UX Report data for a URL."""
endpoint = "https://chromeuxreport.googleapis.com/v1/records:queryRecord"
payload = {
"url": url,
"formFactor": "PHONE" # or "DESKTOP"
}
headers = {"Content-Type": "application/json", "X-Goog-Api-Key": api_key}
response = requests.post(endpoint, json=payload, headers=headers)
return response.json()Metrics Available
From PageSpeed Insights
| Metric | Description |
|---|---|
| LCP | Largest Contentful Paint (lab) |
| INP | Interaction to Next Paint (estimated) |
| CLS | Cumulative Layout Shift (lab) |
| FCP | First Contentful Paint |
| TBT | Total Blocking Time |
| Speed Index | Visual progress speed |
From CrUX (Field Data)
| Metric | Description |
|---|---|
| LCP | 75th percentile, real users |
| INP | 75th percentile, real users |
| CLS | 75th percentile, real users |
| TTFB | Time to First Byte |
Best Practices
- Rate Limiting: Respect API quotas (typically 25k requests/day for PageSpeed)
- Caching: Cache results to avoid redundant API calls
- Field vs Lab: Prioritize field data (CrUX) for ranking signals
- Error Handling: Handle API errors gracefully
Without API Keys
If you don't have API keys, Claude SEO can still:
- Analyze HTML source for potential issues
- Identify common performance problems
- Check for render-blocking resources
- Evaluate image optimization opportunities
- Detect JavaScript-heavy implementations
The analysis will note that actual Core Web Vitals measurements require field data from real users.
File: docs/TROUBLESHOOTING.md
Troubleshooting
Common Issues
Skill Not Loading
Symptom: /seo command not recognized
Solutions:
For plugin installs, verify and reinstall through Claude Code:
/plugin list
/plugin marketplace add AgriciDaniel/claude-seo
/plugin install claude-seo@agricidaniel-claude-seoFor manual installs:
- Verify installation:
ls ~/.claude/skills/seo/SKILL.md- Check SKILL.md has proper frontmatter:
head -5 ~/.claude/skills/seo/SKILL.mdShould start with --- followed by YAML.
- Restart Claude Code:
claude- Re-run installer:
Caution: Prefer downloading, inspecting, then running remote scripts; the pipe-to-shell form below is the less-safe convenience option.
curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/install.sh | bashPython Dependency Errors
Symptom: ModuleNotFoundError: No module named 'requests'
Solution:
Dependencies belong in the managed runtime. For a plugin install, run:
/seo doctor
/seo setupFor a manual install, run:
~/.claude/skills/seo/bin/claude-seo doctor
~/.claude/skills/seo/bin/claude-seo setupDo not install individual packages, use pip --user, or create a PATH shim.
requirements.txt Not Found
Symptom: No such file: requirements.txt after install
Solution: For plugin installs, reinstall the plugin first:
/plugin install claude-seo@agricidaniel-claude-seoFor manual installs, requirements.txt is copied to the skill directory:
ls ~/.claude/skills/seo/requirements.txtIf missing, download it directly:
curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/requirements.txt \
-o ~/.claude/skills/seo/requirements.txtWindows Python Detection Issues
Symptom: python is not recognized or pip points to wrong Python
Solution (v1.2.0+): The Windows installer now tries both python and py -3. If both fail:
- Install Python from python.org and check "Add to PATH"
- Rerun
install.ps1; it resolvespy -3,python3, thenpython - Run
/seo doctorafter installation
Playwright Screenshot Errors
Symptom: playwright._impl._errors.Error: Executable doesn't exist
Solution: rerun managed setup so the browser is installed through the same
interpreter and persistent browser directory:
/seo setup
/seo doctorPermission Denied Errors
Symptom: Permission denied when running scripts
Solution:
chmod +x ~/.claude/skills/seo/scripts/*.pySubagent Not Found
Symptom: Agent 'seo-technical' not found
Solution:
For plugin installs, check /plugin list and reinstall claude-seo@agricidaniel-claude-seo; subagents load from the plugin, not ~/.claude/agents/.
For manual installs:
- Verify agent files exist:
ls ~/.claude/agents/seo-*.md- Check agent frontmatter:
head -5 ~/.claude/agents/seo-technical.md- Re-install agents:
cp /path/to/claude-seo/agents/*.md ~/.claude/agents/Timeout Errors
Symptom: Request timed out after 30 seconds
Solutions:
- The target site may be slow: try again
- Increase timeout in script calls
- Check your network connection
- Some sites block automated requests
Schema Validation False Positives
Symptom: Hook blocks valid schema
Check:
- Ensure placeholders are replaced
- Verify @context is
https://schema.org - Check for deprecated/retired types: HowTo and SpecialAnnouncement, plus the June 2025 retirements (ClaimReview, VehicleListing, EstimatedSalary, LearningVideo, and the CourseInfo carousel)
- FAQPage rich results were retired for all sites on 2026-05-07. The hook does not block it because it remains a valid Schema.org type, but no AI or ranking benefit is confirmed.
- Validate at Google's Rich Results Test
Slow Audit Performance
Symptom: Full audit takes too long
Solutions:
- Audit crawls up to 500 pages: large sites take time
- Subagents run in parallel to speed up analysis
- For faster checks, use
/seo pageon specific URLs - Check if site has slow response times
Getting Help
Check the docs: Review COMMANDS.md and ARCHITECTURE.md
GitHub Issues: Report bugs at the repository
Logs: Check Claude Code's output for error details
Debug Mode
To see detailed output, check Claude Code's internal logs or run scripts directly:
# Test fetch
python3 ~/.claude/skills/seo/scripts/fetch_page.py https://example.com
# Test parse
python3 ~/.claude/skills/seo/scripts/parse_html.py page.html --json
# Test screenshot
python3 ~/.claude/skills/seo/scripts/capture_screenshot.py https://example.com