Claude Code gets 25 SEO skills, not a crawler replacement
Claude SEO packages technical checks, content review, schema inspection, local SEO, international SEO, and AI search analysis as commands inside Claude Code. The orchestrator can dispatch work across 25 sub-skills and 18 specialist agents, then assemble a markdown action plan. That is useful when the desired output is an argued diagnosis a developer can edit. It is less suited to teams that mainly need a giant crawl table with stable columns and filters.
The README is unusually clear about that boundary. Its own comparison says Screaming Frog crawls link graphs deeper and faster, while Ahrefs contributes a proprietary backlink index. Claude SEO can call outside providers through 8 MCP extensions, but it does not recreate their data. The core value is local workflow and synthesis: findings remain files, the instructions are editable, and an auditor can trace why the agent made a recommendation.
Zero-key audits infer indexation instead of observing it
The core plugin runs without paid services, though its evidence changes with the available accounts. With no Google credentials, Core Web Vitals come from lab estimates and indexation is inferred from page signals. Tiered setup can add PageSpeed Insights, CrUX history, Search Console, URL Inspection, GA4, and Keyword Planner. Optional providers cover backlinks, SERPs, AI citations, Bing data, and full-site crawling. Each added source brings its own account, permissions, quota, and failure modes.
Credentials are stored under ~/.config/claude-seo/ with 0o600 permissions according to the README. The plugin says it has no telemetry, though audits necessarily contact the target URLs and any services you configure. That is a reasonable local posture for client work. Agencies should still separate client credentials, review generated shell actions, and record which data sources were active so two audit scores are comparable.
What happened when we ran it
Our sandbox installed commit 09d37c7 in 40 seconds. The Python environment pulled 92 packages and occupied 629 MB. A build completed successfully in 8 seconds. Pip-audit found 0 known vulnerabilities in the installed dependencies. Those results came from an unprivileged Python 3.12 Debian container with 3 CPUs, 8 GB of RAM, and no secrets.
Tests did not pass as a complete step. After 20 seconds, pytest reported 407 passed, 2 failed, and 1 skipped, with exit code 1. The failing log shows scripts/sync_flow.py --dry-run returning code 1 after urllib received HTTP 403 with the message rate limit exceeded. The log does not establish why the rate limit applied, so we would not call this a product defect or dismiss it as harmless network noise.
The checkout contained 379 files, about 29,128 lines of source, and 4.2 MB before installation. It had 2 CI workflows and a tests directory, but no Dockerfile. The passing build and mostly passing suite make the plugin approachable to inspect. The 629 MB environment plus optional Chromium is still larger than the repository's command-file appearance suggests.
Rendered pages work until interaction controls the content
A shared Playwright path lets agents render SPAs instead of auditing only the empty HTML shell. Auto mode looks for hydration markers used by frameworks such as Next.js, React, Vue, Nuxt, and Astro, then switches to rendered fetching. This fixes a basic failure mode of raw HTML auditing and makes the tool more credible for modern marketing sites.
The limitation section names what remains. Content loaded only after scrolling, opening a modal, clicking a tab, or waiting on a race-prone widget can still lead to noisy findings. The advised response is a separate visual agent pass and comparison with raw HTML results. That is manual QA, not a defect in the documentation. Teams with many interactive landing pages should sample difficult templates before trusting a site-wide score.
CJK scoring and Windows search behavior need checking
Pull request 263 reports a concrete international-content gap: the current content tokenizer matches Latin letters, so equivalent Korean text produced 0 tokens in the contributor's reproduction. Japanese and Chinese are named in the same report. Until that change is merged and released, a multilingual publisher should not use the content score to compare CJK pages with English ones. Structural and technical checks may still be useful, but the language-dependent score is not ready for that decision.
Windows has another specific warning. Issue 252 describes reference-file lookups under Git Bash leaving search processes behind and pinning CPU at 100% during /seo audit. The latest release notes say a native PowerShell smoke run was unavailable for v2.2.5, although static regression coverage exists. A Windows agency should trial the exact shell, plugin install path, and cleanup behavior on one machine before making this the default workflow.
Active maintenance does not make the score objective
GitHub recorded 15,338 stars, 41 combined open issues and pull requests, and a last push on August 26, 2026. Release v2.2.5 arrived one day earlier with installer, JSON-LD, rendering, and Google-guidance changes. The dates and issue traffic show active maintenance. They also show how quickly search guidance, integrations, and agent instructions can change underneath a repeatable audit. Pin a release when client reports must be compared over time.
Claude SEO is worth trying for teams that want review logic they can read and modify. Our 40-second install and 8-second build lower the cost of inspection, while the 2 rate-limited test failures argue for running the suite in your own network before adoption. Keep source measurements beside the report, verify high-impact recommendations against Google documentation and live behavior, and use a dedicated crawler when link coverage matters more than narrative diagnosis.

