claude-seo Documentation

Universal SEO skill for Claude Code. 25 sub-skills + 18 sub-agents covering technical SEO, E-E-A-T, schema, GEO/AEO, backlinks, local SEO, maps...

RAW Doc

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.

Why Claude SEO

  • AI-search first. Aligned with Google's AI Optimization Guide. Question-based citability scoring, primary-source evidence on llms.txt, IPTC TrainedAlgorithmicMedia for 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

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-seo for AI-Marketing-Hub/claude-seo and the plugin slug claude-seo@agricidaniel-claude-seo for claude-seo@ai-marketing-hub-claude-seo. Requires gh auth login (or PAT) with access to the AI-Marketing-Hub org. If /plugin marketplace add 404s, 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:

bash
/plugin marketplace add AgriciDaniel/claude-seo
/plugin install claude-seo@agricidaniel-claude-seo
/seo setup

The 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)

bash
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
bash claude-seo/install.sh

One-liner (curl, review then run)

bash
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.sh

Windows (PowerShell)

powershell
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
powershell -ExecutionPolicy Bypass -File claude-seo\install.ps1

Why git clone instead of irm | iex? Claude Code's own security guardrails flag irm ... | iex as a supply chain risk: downloading and executing remote code without verification. The git clone approach lets you inspect claude-seo\install.ps1 before running it.

Quick Start

bash
# 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 generate

Commands

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.

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

text
/* 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.py with 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, EU energyEfficiencyClass, 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.site URLs, 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-Key header, 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 /seo command 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

bash
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
bash claude-seo/uninstall.sh

One-liner (curl)

bash
curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/uninstall.sh | bash

Extensions

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.

bash
./extensions/dataforseo/install.sh   # requires DataForSEO account
/seo dataforseo serp best coffee shops
/seo dataforseo ai-mentions your brand

Full DataForSEO docs: extensions/dataforseo/README.md.

Firecrawl

Full-site crawling and URL discovery via the Firecrawl MCP server.

bash
./extensions/firecrawl/install.sh
/seo firecrawl crawl https://example.com

Full 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.

bash
./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/mcp server 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:

  1. /seo audit https://example.com: identify content gaps and technical issues
  2. /seo backlinks https://example.com: analyze link profile and competitor gaps
  3. /seo geo https://example.com/blog/post: score AI-citation readiness
  4. /blog write "target keyword": create SEO-optimized blog post (Claude Blog)
  5. /seo image-gen hero "blog topic": generate hero image (Banana extension)

Documentation

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.

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.


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).

text
/* 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:

yaml
---
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:

yaml
---
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`)

text
/* Detailed source-code truncated for AI context efficiency. */

Individual Command

text
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

  1. Create skills/seo-newskill/SKILL.md
  2. Add YAML frontmatter with name and description
  3. Write skill instructions
  4. Update main skills/seo/SKILL.md to route to new skill

Adding a New Subagent

  1. Create agents/seo-newagent.md
  2. Add YAML frontmatter with name, description, tools
  3. Write agent instructions
  4. Reference from relevant skills

Adding a New Reference File

  1. Create file in appropriate references/ directory
  2. Reference in skill with load-on-demand instruction

Extensions

Managed Python runtime

Bundled tools are dispatched through bin/claude-seo and
scripts/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.

text
/* 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

  1. Self-contained in extensions/<name>/
  2. Own install.sh (and install.ps1 where Windows is supported) that copies files and configures MCP (where applicable)
  3. Own uninstall.sh (and uninstall.ps1 where present) that reverses installation
  4. Installs the sub-skill mirror to the plugin's skill directory
  5. Installs the sub-agent mirror to the plugin's agent directory (extensions that ship one; lighter extensions are skill-only)
  6. Merges MCP config into ~/.claude/settings.json non-destructively
  7. 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:

text
/seo audit https://example.com

What it does:

  1. Crawls up to 500 pages
  2. Detects business type
  3. Delegates to up to 15 specialist subagents in parallel (8 always-on + 7 conditional)
  4. Generates SEO Health Score (0-100)
  5. Creates prioritized action plan

Output:

  • FULL-AUDIT-REPORT.md
  • ACTION-PLAN.md
  • screenshots/ (if Playwright available)

`/seo page `

Deep single-page analysis.

Example:

text
/seo page https://example.com/about

What 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:

text
/seo technical https://example.com

Categories:

  1. Crawlability
  2. Indexability
  3. Security
  4. URL Structure
  5. Mobile Optimization
  6. Core Web Vitals (LCP, INP, CLS)
  7. Structured Data
  8. JavaScript Rendering
  9. IndexNow Protocol

`/seo content `

E-E-A-T and content quality analysis.

Example:

text
/seo content https://example.com/blog/post

What 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:

text
/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:

text
/seo schema https://example.com

What 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:

text
/seo geo https://example.com/blog/guide

What 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:

text
/seo images https://example.com
/seo images serp "running shoes"
/seo images optimize ./hero.webp

What 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:

text
/seo sitemap https://example.com/sitemap.xml

What 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:

text
/seo sitemap generate

Process:

  1. Select or auto-detect business type
  2. Interactive structure planning
  3. Apply quality gates (30/50 location page limits)
  4. Generate valid XML
  5. Create documentation

`/seo plan `

Strategic SEO planning.

Types: saas, local, ecommerce, publisher, agency

Example:

text
/seo plan saas

What 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:

text
/seo competitor-pages https://example.com/vs/competitor
/seo competitor-pages generate

Capabilities:

  • 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:

text
/seo hreflang https://example.com
/seo hreflang audit ./dist

Capabilities:

  • 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:

text
/seo programmatic https://example.com/tools/
/seo programmatic plan

Capabilities:

  • 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:

text
/seo local https://example.com

What 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:

text
/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

Backlink profile analysis with a 3-tier data cascade: free (Common Crawl + verification), free with signup (Moz, Bing Webmaster Tools), paid (DataForSEO).

Examples:

text
/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 setup

What 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:

text
/seo cluster plan "claude code skills"
/seo cluster plan --from strategy
/seo cluster execute
/seo cluster map

What 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.html visualization

`/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:

text
/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/page

What 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:

text
/seo drift baseline https://example.com
/seo drift compare https://example.com
/seo drift history https://example.com

What 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:

text
/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/x

What 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:

text
/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 sync

41 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:

text
/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 report

PageSpeed / CrUX (Tier 0):

text
/seo google pagespeed             # PageSpeed Insights (lab) + CWV
/seo google crux                  # CrUX field data
/seo google crux-history          # 25-week CrUX history

Search Console / Indexing (Tier 1):

text
/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 notify

Use 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):

text
/seo google ga4 [property-id]          # Organic traffic report
/seo google ga4-pages [property-id]    # Top organic landing pages

NLP / Keywords / YouTube:

text
/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 check

Tiers:

  • 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:

text
/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:

  1. Maps SEO use case to optimized domain mode, aspect ratio, and resolution
  2. Constructs 6-component Reasoning Brief (Creative Director pipeline)
  3. Generates image via Gemini API
  4. 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:

text
/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.com

What it does:

  • crawl walks the site discovering URLs and capturing content
  • map returns the full URL inventory for a domain
  • scrape extracts a single page in a model-friendly format
  • search searches 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:

text
/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 analysis

Keyword Research:

text
/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 data

Domain & Competitors:

text
/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 domain

Technical / On-Page:

text
/seo dataforseo onpage                 # On-page analysis (Lighthouse)
/seo dataforseo tech <domain>               # Technology detection
/seo dataforseo whois <domain>              # WHOIS data

Content & Business Data:

text
/seo dataforseo content <keyword/url>       # Content analysis and trends
/seo dataforseo listings <keyword>          # Business listings search

AI Visibility / GEO:

text
/seo dataforseo ai-scrape <query>           # ChatGPT web scraper for GEO
/seo dataforseo ai-mentions <keyword>       # LLM mention tracking

Cost Tracking:

text
/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).

text
/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).

text
/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.

text
/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.

text
/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).

text
/seo unlighthouse https://example.com
/seo unlighthouse https://example.com --device desktop
/seo unlighthouse https://example.com --max-routes 50 --output-dir ./reports

Quick 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:

text
/plugin marketplace add AgriciDaniel/claude-seo
/plugin install claude-seo@agricidaniel-claude-seo
/seo setup

Plugin 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)

bash
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
bash claude-seo/install.sh

Review-then-run alternative:

bash
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.sh

Manual Install (Windows, PowerShell)

powershell
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
powershell -ExecutionPolicy Bypass -File claude-seo\install.ps1

The 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

  1. Clone the repository
bash
git clone https://github.com/AgriciDaniel/claude-seo.git
cd claude-seo
  1. Run the installer
bash
./install.sh
  1. 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.

bash
~/.claude/skills/seo/bin/claude-seo doctor

If 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

  1. Start Claude Code:
bash
claude
  1. Check that the skill is loaded:
text
/seo

You should see a help message or prompt for a URL.

Uninstallation

If installed as a plugin:

text
/plugin uninstall claude-seo@agricidaniel-claude-seo
/plugin marketplace remove AgriciDaniel/claude-seo

If installed manually, run the uninstaller from a fresh clone:

bash
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git
bash claude-seo/uninstall.sh

uninstall.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.

bash
# 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 | bash

Troubleshooting

"Skill not found" error

Ensure the skill is installed in the correct location:

bash
ls ~/.claude/skills/seo/SKILL.md

If the file doesn't exist, re-run the installer.

Python dependency errors

Run the managed setup again:

bash
~/.claude/skills/seo/bin/claude-seo setup

Playwright screenshot errors

Run the managed setup again and inspect the result:

bash
~/.claude/skills/seo/bin/claude-seo setup
~/.claude/skills/seo/bin/claude-seo doctor

Permission errors on Unix

Make sure scripts are executable:

bash
chmod +x ~/.claude/skills/seo/scripts/*.py

File: 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:

  1. Get an API key from Google Cloud Console
  2. Enable the PageSpeed Insights API
  3. Use in your analysis:
bash
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:

json
{
  "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:

json
{
  "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

python
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

python
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

  1. Rate Limiting: Respect API quotas (typically 25k requests/day for PageSpeed)
  2. Caching: Cache results to avoid redundant API calls
  3. Field vs Lab: Prioritize field data (CrUX) for ranking signals
  4. Error Handling: Handle API errors gracefully

Without API Keys

If you don't have API keys, Claude SEO can still:

  1. Analyze HTML source for potential issues
  2. Identify common performance problems
  3. Check for render-blocking resources
  4. Evaluate image optimization opportunities
  5. 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:

bash
/plugin list
/plugin marketplace add AgriciDaniel/claude-seo
/plugin install claude-seo@agricidaniel-claude-seo

For manual installs:

  1. Verify installation:
bash
ls ~/.claude/skills/seo/SKILL.md
  1. Check SKILL.md has proper frontmatter:
bash
head -5 ~/.claude/skills/seo/SKILL.md

Should start with --- followed by YAML.

  1. Restart Claude Code:
bash
claude
  1. Re-run installer:

Caution: Prefer downloading, inspecting, then running remote scripts; the pipe-to-shell form below is the less-safe convenience option.

bash
curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/install.sh | bash

Python Dependency Errors

Symptom: ModuleNotFoundError: No module named 'requests'

Solution:

Dependencies belong in the managed runtime. For a plugin install, run:

bash
/seo doctor
/seo setup

For a manual install, run:

bash
~/.claude/skills/seo/bin/claude-seo doctor
~/.claude/skills/seo/bin/claude-seo setup

Do 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:

bash
/plugin install claude-seo@agricidaniel-claude-seo

For manual installs, requirements.txt is copied to the skill directory:

bash
ls ~/.claude/skills/seo/requirements.txt

If missing, download it directly:

bash
curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/requirements.txt \
  -o ~/.claude/skills/seo/requirements.txt

Windows 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:

  1. Install Python from python.org and check "Add to PATH"
  2. Rerun install.ps1; it resolves py -3, python3, then python
  3. Run /seo doctor after 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:

bash
/seo setup
/seo doctor

Permission Denied Errors

Symptom: Permission denied when running scripts

Solution:

bash
chmod +x ~/.claude/skills/seo/scripts/*.py


Subagent 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:

  1. Verify agent files exist:
bash
ls ~/.claude/agents/seo-*.md
  1. Check agent frontmatter:
bash
head -5 ~/.claude/agents/seo-technical.md
  1. Re-install agents:
bash
cp /path/to/claude-seo/agents/*.md ~/.claude/agents/

Timeout Errors

Symptom: Request timed out after 30 seconds

Solutions:

  1. The target site may be slow: try again
  2. Increase timeout in script calls
  3. Check your network connection
  4. Some sites block automated requests

Schema Validation False Positives

Symptom: Hook blocks valid schema

Check:

  1. Ensure placeholders are replaced
  2. Verify @context is https://schema.org
  3. Check for deprecated/retired types: HowTo and SpecialAnnouncement, plus the June 2025 retirements (ClaimReview, VehicleListing, EstimatedSalary, LearningVideo, and the CourseInfo carousel)
  4. 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.
  5. Validate at Google's Rich Results Test

Slow Audit Performance

Symptom: Full audit takes too long

Solutions:

  1. Audit crawls up to 500 pages: large sites take time
  2. Subagents run in parallel to speed up analysis
  3. For faster checks, use /seo page on specific URLs
  4. Check if site has slow response times

Getting Help

  1. Check the docs: Review COMMANDS.md and ARCHITECTURE.md

  2. GitHub Issues: Report bugs at the repository

  3. 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:

bash
# 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