CLI tool
AgriciDaniel/claude-seo avatar
AgriciDaniel/claude-seo

Claude SEO: an SEO plugin for Claude Code that audits sites with parallel agents

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 intelligence, semantic clustering, e-commerce SEO, international SEO, Google APIs, and PDF/Excel reporting. Optional DataForSEO, Firecrawl, and Banana extensions.

17,793 stars2,611 forksPythonMIT

At a glance

What is it?
Claude SEO is an MIT-licensed Claude Code plugin that runs 25 sub-skills and 18 specialist agents over technical SEO, schema, E-E-A-T, GEO and local SEO. It installs from the plugin marketplace in three commands, and its own README is candid about the fact that it never touches your CMS.
Who is it for?
Adopt it if you already work inside Claude Code and want audit output you can argue with, since every recommendation in the methodology carries a failure check. Skip it if you need a crawler that holds state across thousands of URLs, or if you cannot run Claude Code at all, because the plugin has no standalone CLI.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 6 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The gap Claude SEO targets: audit findings nobody can falsify

Most SEO tooling hands you a score and a list. The score is opaque, the list is unranked, and when a recommendation turns out to be wrong there is no record of what it was based on. Claude SEO is built around the opposite claim. The README states that every recommendation carries the first-principle observation it rests on, its dependency relationships, an explicit check phrased as how would we know this failed, and a leading indicator. That is a documentation convention as much as a feature, and it is the part worth judging the project on.

The audience named in the README is narrow and specific: agencies running five or more client sites, in-house SEO leads at SaaS, publisher or e-commerce companies who want a second pair of eyes before an executive review, and freelance consultants who want a scored audit in front of a prospect before writing a proposal. The named catches are the interesting ones, because they are things Search Console and Lighthouse do not surface: schema deprecation, AI-citability gaps, expired-domain heritage risk, parasite-SEO exposure, machine-translation drift. Whether those checks work is something you verify on your own site, not something the README can prove for you.

How the skill and agent split actually works

The repository layout separates two kinds of unit. The skills/ directory holds the 25 sub-skills, which are the procedures: technical SEO, schema, GEO, local, e-commerce, international, and so on. The agents/ directory holds 18 specialist agents, which are the workers dispatched to run those procedures. The README describes a full site audit spawning up to 15 specialist agents simultaneously, which is where the minutes-not-hours claim comes from. Parallelism here is Claude Code's sub-agent mechanism, not a thread pool in the plugin.

Rendering is done with Playwright Chromium, installed into an isolated Python environment during setup rather than into your global interpreter. Content extraction uses trafilatura, which the requirements file describes as boilerplate-free and SPA-safe, with htmldate supplying publication dates for freshness signals. That stack matters for the AI-search side: the README says citability scoring is question-based and aligned with Google's AI Optimization Guide, including primary-source evidence on llms.txt and IPTC TrainedAlgorithmicMedia for AI-generated product images. The extension directories and the schema/ and pdf/ folders sit on top of that core, with DataForSEO, Firecrawl and a Banana extension listed as optional.

One architectural detail deserves attention. The README notes the setup step creates an isolated Python environment in Claude's persistent plugin data and that no global Python packages or PATH shims are created. That is a deliberate containment choice, and it is why /seo doctor exists as a separate command: readiness is checked rather than assumed.

Installing the Claude SEO plugin and running a first audit

The fast path assumes Claude Code 1.0.33 or newer. You add the repository as a marketplace, install the plugin by its slug, then run setup. The README is explicit that the setup step is what creates the isolated Python environment and installs Playwright Chromium, so skipping it leaves you with a plugin that cannot render pages.

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

After setup, check the runtime without changing anything on the system. The README describes this command as a readiness check, so the expected output is a report on the Python environment and Chromium, not a repair.

bash
/seo doctor

If you prefer not to use the marketplace, the manual path on Unix clones the repository shallowly and runs the bundled installer. The README offers a curl one-liner as an alternative but recommends reviewing the script first, and the Windows instructions deliberately use git clone rather than irm piped into iex, on the grounds that Claude Code's own security guardrails flag remote download-and-execute as a supply chain risk.

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

On Windows the equivalent is a PowerShell script run with an execution policy bypass, again after cloning rather than piping. Once installed, start Claude Code and point the audit command at a site. The README's quick start shows the four commands most people will reach for first: a full audit, a single-page analysis, a schema audit, and a GEO pass.

bash
claude
/seo audit https://example.com
/seo page https://example.com/about
/seo schema https://example.com
/seo geo https://example.com

The README states that a full audit produces a prioritized action plan, and that up to 15 specialist agents run in parallel. There are 32 user-invocable /seo commands in total across the orchestrator, its sub-skills and eight MCP extensions, with the full reference in docs/COMMANDS.md. Expect a run to take minutes rather than seconds, since headless rendering of a real site is the slow part.

Where Claude SEO stops: no CMS access, no crawler state, no standalone CLI

The README has a Limitations section, and it is worth reading before you commit a client engagement to this tool. The structural limitation is that this is an analysis layer. It reads pages through a headless browser and writes reports. It does not publish, edit, or push changes to a CMS, and nothing in the repository layout suggests a write path into a site.

The second constraint is the environment. Everything runs inside Claude Code. There is no standalone CLI binary, no Docker image in the top-level entries, and no server component, so a team that has standardized on a different assistant cannot use this plugin as-is. The README points to Codex SEO as a Codex-first port with TOML agents and deterministic runners, which is a real alternative but a separate project with its own state.

The third is the version split. There are two distributions: the public MIT repository and a private mirror for members of a paid community, which the README says gets early access to upcoming features. If you adopt the public one, you are on the public release cadence, and the version in pyproject.toml may run ahead of the latest tagged release. Finally, the dependency list is heavy. Playwright, WeasyPrint, matplotlib, numpy and the full Google API client stack are all pinned in requirements.txt, and WeasyPrint in particular brings system library requirements that the README does not enumerate. On a locked-down machine, that is where an install will fail.

Claude SEO against Screaming Frog and commercial audit suites

The obvious comparison is a desktop crawler such as Screaming Frog, and the difference is not depth of crawling. A crawler holds a persistent frontier, respects robots directives at scale, stores every response, and lets you re-crawl and diff against a previous run. Claude SEO does not describe a persistent crawl store. It renders pages, extracts content, and reasons over what it found, which is a different shape of work: interpretation rather than enumeration.

Against commercial suites that bundle a crawler with backlink indexes and rank tracking, the gap is data ownership. Claude SEO does not ship its own backlink index or keyword database. The README lists DataForSEO as an optional extension, which means those numbers come from a third-party API you configure and pay for separately. If your workflow depends on historical rank positions, this is not the tool holding that history.

What it does that neither category does well is produce a written, prioritized plan with the reasoning attached. That is a genuine difference in kind, and it is also the reason the output needs a human editor. A crawler's export is neutral; a language model's audit is an argument, and arguments can be wrong in ways that look confident.

Maintenance, releases and what the MIT licence does and does not cover

The repository is not archived, and the last push was on 2026-08-25, which is the same timestamp as the v2.2.5 release titled Reliability and Google Currency. Two earlier releases, v2.2.3 and v2.2.4, landed on 2026-07-20. Note that pyproject.toml declares version 2.3.1 while the newest tagged release listed is v2.2.5, so the repository's working version runs ahead of the published tags. If you install from the marketplace you get a tagged release; if you clone main you get whatever is in the tree.

The dependency file is unusually well annotated for a project this size. Each pin carries a reason, mostly CVE identifiers: requests is pinned above the CVE-2024-47081 and CVE-2024-35195 fixes, lxml above CVE-2025-24928, playwright above a macOS CVE-2025-59288 fix, urllib3 above two named advisories, and WeasyPrint at 70.0 for PYSEC-2026-3940. That is a maintenance signal in itself, because it means upgrades are reasoned rather than automatic. It also means the upgrade cost is real: you cannot casually bump the whole file, and the comment on lxml_html_clean explains that lxml 6 moved html.clean into a standalone package, which is the kind of transitive break that takes an afternoon.

The licence is MIT, declared in both pyproject.toml and the LICENSE file. That permits commercial use and modification with attribution and no warranty. It grants you no rights to the private mirror, and it says nothing about the terms of the third-party APIs the extensions call. Those terms are between you and DataForSEO or Firecrawl, and nothing here should be read as legal advice.

Editorial conclusion

Adopt it if you already work inside Claude Code and want audit output you can argue with, since every recommendation in the methodology carries a failure check. Skip it if you need a crawler that holds state across thousands of URLs, or if you cannot run Claude Code at all, because the plugin has no standalone CLI. Before trusting a single run, execute /seo doctor, confirm the isolated Python runtime and Chromium were created, and read the Limitations section of the README yourself rather than the summary here.

Frequently asked questions

What is Claude SEO?

It is an open-source SEO analysis plugin for Claude Code, MIT licensed, that runs 25 sub-skills and 18 specialist agents across technical SEO, E-E-A-T, schema markup, AI search optimization, local SEO, e-commerce and international SEO. The README states that every audit produces a prioritized action plan with testable recommendations.

How do I install Claude SEO?

On Claude Code 1.0.33 or newer, add the repository as a plugin marketplace, install the plugin by its slug, then run /seo setup, which creates an isolated Python environment and installs Playwright Chromium. Manual installs use a shallow git clone followed by install.sh on Unix or install.ps1 on Windows.

How do I use Claude SEO?

Start Claude Code and invoke one of the 32 /seo commands, such as /seo audit with a URL for a full site audit, /seo page for a single-page analysis, /seo schema for markup detection and validation, or /seo geo for AI search citability. The README notes that a full audit spawns up to 15 specialist agents in parallel.

Is there a good SEO plugin for Claude Code?

Claude SEO is one, distributed through the Claude Code plugin marketplace and installable with three commands. Whether it is good for you depends on whether you want analysis with reasoning attached; the README states that recommendations carry a first-principle observation and an explicit failure check, which is a different output from a crawler export.

Can I use AI to do my SEO?

Claude SEO is built for that, but the README positions it as an analysis and reporting layer rather than an execution tool: it audits pages, validates schema and scores AI-search citability, and it does not publish changes to a CMS. The output is a prioritized plan a person reviews.

What is Claude's best SEO skill?

The project does not rank its own sub-skills, so there is no documented best one. The README's quick start leads with /seo audit for full sites, /seo page for a single URL, /seo schema and /seo geo, and the complete set of 32 commands is listed in docs/COMMANDS.md.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/agricidaniel-claude-seo.svg)](https://hysenlabs.com/projects/agricidaniel-claude-seo)