- Claude Code
- Cursor
- Codex
- Gemini CLI
- Zed
SEO for AI Agents
A free skill pack that teaches AI coding agents to build and audit websites that search engines can rank and AI answers can cite.
For developers building with Claude Code, Cursor, Codex, Gemini CLI and Zed. Paste a prompt, or install the pack and let it trigger by itself.
Try it now: paste into your agent
An audit of your project. It reports what it finds and changes nothing.
- skills
- 22skills
- rungs
- 5rungs
- site profiles
- 7site profiles
- Run seo-orchestrator in audit mode on this project
- Next.js, App Router. Site type: SaaS. Search Console tool found: tier 1.
- Fetching /pricing as a crawler sees it…
- R-01 Reach: the pricing table is not in the served HTML. Proposed fix: render it on the server.
- R-02 Read: 14 pages share one meta description.
- Audit saved to .seo/. Nothing on the site was changed.
- Fix R-01
- R-01 fixed on branch seo/r-01: pricing data moved into a server component.
- Re-fetched /pricing: the table is now in the served HTML. Change logged.
Sites built with AI agents often look perfect and are invisible to crawlers
Your agent ships a page that renders beautifully in the browser. A crawler that does not run JavaScript receives an empty shell. The pack catches that first, then works up four more rungs, and it always checks the HTML that is actually served.
What you see in a browser
Simple pricing for growing teams
Starter
£9
Team
£19
Business
£39
The same either way. The browser runs the JavaScript.
What a crawler receives
<html>
<head>
<title>Example</title>
</head>
<body>
<div id="root"></div>
<script src="/app.js"></script>
</body>
</html>An empty shell. Crawlers that do not run JavaScript see no pricing at all.
Audit, fix what you approve, re-check
The same three steps on every site. Open your project in Claude Code, Cursor, Codex or any agent that can read a URL, and paste. Each prompt points at the skill on GitHub, so you always run the latest version.
- 01Audit
auditDiagnoses the whole site on the HTML a crawler receives, records findings with short refs (R-01, R-02) and the proposed fix for each, and saves the report to .seo/. It changes nothing.
- 02Fix what you approve
fixApplies only the findings you name, lowest failing rung first, one commit per finding, re-fetching each page to prove the fix is served. Pages that already earn traffic need your explicit say-so.
- 03Re-check
re-checkAfter a deploy or a few weeks, re-tests earlier findings, flags anything that regressed and, if your environment has search data, shows what changed.
About to launch? Run Launch QA on the production URL first.
Doing content work? Run Context gathering first, so the agent learns the business before it touches the words.
Have Search Console or an SEO tool connected? The pack finds it and uses it, read-only. Nothing to set up.
22 skills, one way to ask
Set the mode, target, scope and output once, and every prompt below follows. Search by what you are trying to fix; Copy puts the prompt on your clipboard, and Show prompt gives the full text and the installed-pack version.
Build your prompt
Diagnoses and records findings. Changes nothing.
Where should the work start, and what comes next?
What does this business actually sell, to whom, and what can it prove?
What does the live data say about indexing, traffic and the effect of our changes?
Can a crawler reach the URL and see its content in the served HTML?
Is there real, readable content, correct metadata, and a good page experience?
Can engines identify the entities on the page?
Is the page wired into a coherent site?
Is the page good enough, and trusted enough, to win the query?
Is a page that can already rank eligible to be cited by AI answers?
Is anything going to stop this site being indexed when it goes live?
Why are real users getting a slow page, and what fixes it?
How do we change URLs without losing what already ranks?
Can results be measured at all?
Which pages should we keep, improve, merge, refresh, prune or create?
How do we make this one page clearer, deeper and easier to answer from?
Which topics should we own, and how do we stand apart?
What should we do first, and how do we present it?
How do we stop a deploy from quietly breaking SEO?
Can search engines find and understand our images and video?
Can we generate pages from data without making doorway pages?
What are crawlers actually fetching, and where is crawl budget going?
How does our authority compare, and how do we earn more of it?
The Visibility Ladder
Five rungs in the order they depend on each other, climbing to the goal of every site: ranking. A broken lower rung quietly caps everything above it, so you diagnose from the top and fix from the bottom.
The goal is rung 5. Cite is a layer on top, never a replacement.
The layer on top
Cite
Answer and generative engine optimisation
Is a page that can already rank eligible to be cited by AI answers?
The layer on top of the ladder, applied alongside ranking and never instead of it. Self-contained answer blocks, question-shaped headings, consistent entities, genuine attribution and AI crawler access. Citation is never guaranteed; this makes a page eligible.
cite-aeo-geoThe same ladder, tuned to your kind of site
The orchestrator works out your site type and leans on the checks that matter most for it. Each starter prompt below is read-only: it reports and changes nothing until you ask.
- The classic failure
- The marketing site is a single-page app that serves crawlers an empty shell.
- Weighted highest
- Reach, then Read and Cite
- Profile
- saas-marketing ↗
Use the seo-for-ai-agents skill pack with the saas-marketing profile: audit my marketing site on the served HTML. Check first whether marketing pages and pricing are server-rendered and readable by crawlers, then intent match, comparison pages, and internal architecture. Report only, don't change any code or files yet.Install the full pack
Installed as skills, the pack triggers by itself when you describe a problem, and the orchestrator routes the work. Run the commands, or hand your agent the prompt and let it do the install.
Claude Code discovers skills on its own and uses them when a request matches. Clone the repo, then copy the whole skills folder into your personal skills directory (or into .claude/skills/ inside one project to share it with a team).
Then just describe the problem, for example "audit my site's SEO". Keep the skills together: the orchestrator carries references the others rely on.
Full guide on GitHub ↗Install the SEO for AI Agents skill pack from https://github.com/manibharij/seo-for-ai-agents: clone it and copy everything in its skills/ folder into ~/.claude/skills/, keeping the folders together. Then list the skills that are now installed.git clone https://github.com/manibharij/seo-for-ai-agents.git
mkdir -p ~/.claude/skills && cp -R seo-for-ai-agents/skills/* ~/.claude/skills/git clone https://github.com/manibharij/seo-for-ai-agents.git
$dst = "$env:USERPROFILE\.claude\skills"
New-Item -ItemType Directory -Force $dst | Out-Null
Copy-Item -Recurse -Force ".\seo-for-ai-agents\skills\*" $dstAn audit that remembers, and fixes that are logged
The orchestrator writes a .seo/ folder into your project. Commit it: the next run re-checks past fixes, catches anything a deploy broke, and carries on from where it stopped.
- 01AuditA baseline across all five rungs, every finding recorded with a ref, its evidence and the proposed fix. Nothing on the site changes.
- 02FixOnly the findings you approve, one commit each, every change logged with a date so its effect can be measured.
- 03Re-checkRe-tests past findings after deploys, catches regressions and, where your environment has search data, shows what changed.
- audit.mdA readable health scorecard
- state.jsonEvery finding, with its status
- log.mdDated history, run by run
- context.mdWhat the business is, labelled by certainty
5 rules the whole pack follows
It changes nothing until you approve
Every skill audits by default. Fixes are applied only to the findings you name, one commit at a time, and pages that already earn traffic need your explicit say-so.
It works things out for itself
You should not need to know SEO or describe your site. The agent reads the codebase and the served pages, infers the context, and only stops for the few calls a person has to make.
It checks what is served, not what was edited
Editing a component and saying "meta tags added" proves nothing. Every skill re-fetches the page and confirms the change is in the HTML a crawler actually receives.
It tells you what it did and why
The skill instructs the agent. The agent fixes what is safe, explains each change and why it matters, and flags anything that needs your decision.
It never fakes trust
No invented authors, credentials, reviews or expertise. Where real trust signals are missing they are flagged as tasks for a person, because AI answer engines are built to discount manufactured authority anyway.
Questions, or using it on something interesting?
Tell me on LinkedIn. Issues and pull requests are welcome on GitHub, where the bar is correctness and restraint over coverage.