An SEO audit has five things that donāt depend on each other. Technical health, content quality, schema validity, AI citability, platform readiness. Iād been running them in sequence for years because the tool I was using read like a checklist, and checklists are linear by default.
Claude Code subagents are not linear by default. They fan out. That mismatch had been bothering me for a month before I sat down to fix it.
Why SEO and AI search need to be audited together
Google rolled AI Overviews out to 1.5 billion users a month across 200 countries by mid-2025, per Googleās own I/O announcement. ChatGPT crossed 800 million weekly users in 2025. Perplexity is processing roughly 500 million queries a month. None of those surfaces select pages the way a blue-link Google SERP does.
Princetonās Generative Engine Optimization paper put rough numbers on what gets a page cited inside an AI answer. Adding source citations to a passage lifts its citation rate by about 40%. Adding statistics, 37%. Adding direct expert quotes, 30%. The optimal extractable passage runs 134 to 167 words: self-contained, fact-rich, parseable without surrounding context.
Traditional SEO audits donāt measure any of that. They measure whether Google can crawl, index, and rank you. They donāt measure whether a model can cite you. Thatās a different test now, and it needs its own rubric.
The audit shape I wanted
One slash command. One URL in. One report out. Inside, a discovery phase that does the sequential work (fetch the homepage, detect the business type, crawl up to 50 sitemap pages, parse robots.txt), then a fan-out across five specialist subagents that each own a distinct analysis domain, then a synthesis pass that composes their findings into one score and one prioritized action plan.

The five subagents:
-
AI Visibility and Citability. Scores extractable passages against the Princeton GEO rubric. Checks robots.txt against 14 AI crawlers including GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and Bytespider (the canonical list lives at Dark Visitors). Validates or generates
llms.txt. Scans brand-mention presence across the platforms AI engines cite most often: Reddit, Wikipedia, YouTube, LinkedIn, GitHub, Stack Overflow, Quora. -
Platform-Specific Optimization. Grades readiness for Google AI Overviews, ChatGPT search, Perplexity, Gemini, and Bing Copilot. Each platform ranks sources differently and the report says how.
-
Technical SEO. The classic stack. Crawlability, indexation, Core Web Vitals including INP (which replaced FID in March 2024), server-side rendering, internal linking. Plus the AI layer: do the bots get a 200, do they need to execute JavaScript to see content, can they reach the structured data.
-
Content Quality and E-E-A-T. Experience, expertise, authoritativeness, trust. Author signals, original data, heading hierarchy, search-intent classification per page. Programmatic-SEO checks if the site has templated pages.
-
Schema and Structured Data. Detects whatās there, validates it against schema.org and Googleās Rich Results requirements, generates whatās missing from a six-template library covering Organization, LocalBusiness, Article with author, Product, SoftwareApplication, and WebSite with SearchAction.
Each is a separate agent file under ~/.claude/agents/. Each gets the URL, the sitemap, and a focused brief. None of them needs to wait on another. The orchestrator launches all five in one tool-use block and waits on the join.
Why fan out into five subagents instead of one big prompt
I tried the single-prompt version first. It worked. It was also slow, lossy, and impossible to debug. When the audit said āschema is fine,ā I couldnāt tell whether the model had actually checked or had decided not to mention it. The single agentās context window got crowded fast on bigger sites, and the technical findings would crowd out the citability findings near the end.
Five subagents fix all three problems. Each one has a clean context and a single job, which makes each oneās output auditable. I can see which agent said what. When a finding is wrong, I know which subagentās prompt to fix. And parallel execution means a 50-page audit finishes about as fast as the slowest single subagent, not as fast as the sum of all five. This is the same fan-out pattern that won me back four hours of pipeline time on the free lead pipeline I built without Apollo.
How the GEO score weights are set
After the five reports come back, the synthesis pass rolls them into a composite GEO Score on a 0 to 100 scale. The weights:
| Category | Weight | Source |
|---|---|---|
| AI Citability and Visibility | 25% | Subagent 1 |
| Brand Authority Signals | 20% | Subagent 1 |
| Content Quality and E-E-A-T | 20% | Subagent 4 |
| Technical Foundations | 15% | Subagent 3 |
| Structured Data | 10% | Subagent 5 |
| Platform Optimization | 10% | Subagent 2 |
Two contributions from Subagent 1 feed AI Citability and Brand Authority separately, because they fail in different ways. A site can have perfect citable passages and zero third-party mentions, or it can be Reddit-famous with a JavaScript-only homepage that GPTBot canāt render. They need separate weights so the report can tell you which one is hurting you.
Traditional Technical SEO sits at 15%, which is the part of this design most people argue with. Itās intentional. The other 85% is the work existing audit tools donāt do. If I weighted technical at 40% the score would just track Lighthouse and thereād be no reason to run this.
What the report ships
The synthesizer writes one SEO-MASTER-REPORT.md with the composite score, the breakdown table, an executive summary, critical findings, a platform-readiness matrix, and a prioritized action plan in three buckets: Quick Wins (under a day), Medium-Term (1 to 2 weeks), Strategic (1 to 3 months). For client deliverables, /seo-master report-pdf runs the same JSON through a chart generator.
/seo-master audit https://example.com/seo-master quick https://example.com # 60-second snapshot/seo-master report-pdf https://example.com # client PDFQuality gates that kept it honest: max 50 pages per audit, 30-second per-page timeout, 1-second delay between requests, max 5 concurrent fetches, respect robots.txt, skip pages with greater than 80% content similarity. Without those the audit silently double-counts on big sites or pulls a soft DDoS on small ones.
The part I didnāt expect
Parallel was the obvious win. The non-obvious one was the weights. I wrote them down before I built the synthesizer, and that single act of committing to weights up front forced me to answer a question Iād been ducking for a year. What do I actually believe matters about being found on the internet in 2026? The score is mostly bookkeeping. The weights are the opinion.
If your audit doesnāt have an opinion, it isnāt an audit. Itās a checklist that grades present-tense Google. Fine for 2019. Less fine now.
FAQ
What is a GEO score?
GEO stands for Generative Engine Optimization, the practice of optimizing content to be cited by AI search engines like ChatGPT, Perplexity, Google AI Overviews, Gemini, and Bing Copilot. A GEO score grades a site on the signals those engines use to select sources: extractable passages, third-party brand mentions, AI-crawler access, structured data, and content depth. Itās distinct from a traditional SEO score, which grades rankability in the blue-link Google SERP.
What does /seo-master audit?
Six dimensions in parallel: AI citability and visibility, brand authority signals, content quality and E-E-A-T, technical foundations, structured data, and platform-specific readiness for Google AI Overviews, ChatGPT, Perplexity, Gemini, and Bing Copilot. Output is a composite 0 to 100 GEO score plus a prioritized action plan.
Can Claude Code run SEO audits in parallel?
Yes. The Claude Code subagent system supports launching multiple specialist agents in one tool-use block, where each gets its own context window and prompt. /seo-master uses this to run five domain-specialist audits simultaneously, then synthesizes the results in a final pass. Total wall-clock time is roughly the slowest single subagent, not the sum.
How is GEO different from traditional SEO?
Traditional SEO optimizes for crawlers that rank pages against a query (Google, Bing). GEO optimizes for models that cite sources inside synthesized answers. The signals overlap but arenāt identical: GEO weights extractable passage structure, third-party authority on AI-cited platforms (Reddit, Wikipedia, GitHub), and machine-readable structured data more heavily than traditional SEO does. Both matter. Auditing only one leaves half your future traffic uncounted.