How auditing works
AI readiness
Whether AI assistants can reach, parse and cite your page — a growing share of how people find things, and it works differently from classic SEO.
Why this is a separate category
Classic SEO optimises for a crawler that renders JavaScript, indexes whole pages and ranks them in a list. AI discovery differs on all three counts, and the differences are not cosmetic:
- Most AI crawlers do not execute JavaScript. Content that renders client-side is invisible to them even when Googlebot sees it perfectly.
- Assistants cite passages, not pages. Clear headings and self-contained answers determine whether you get quoted.
- Access is opt-out per user-agent. A blanket robots.txt block aimed at scrapers routinely takes out the retrieval bots that would have sent you traffic.
Retrieval crawlers versus training crawlers
This is the distinction that matters most, and the one most sites get wrong.
| User-agent | Type | Blocking it means |
|---|---|---|
OAI-SearchBot | Retrieval | You disappear from ChatGPT search results |
ChatGPT-User | Retrieval | ChatGPT cannot open your page when a user asks it to |
Claude-User, Claude-SearchBot | Retrieval | Claude cannot fetch or cite your page |
PerplexityBot | Retrieval | You disappear from Perplexity answers |
GPTBot | Training | Your content is excluded from OpenAI training data |
ClaudeBot | Training | Excluded from Anthropic training data |
Google-Extended | Training | Excluded from Gemini training — does not affect Search |
CCBot | Training | Excluded from Common Crawl |
Retrieval crawlers send referral traffic with a citation. Training crawlers do not. Whether you want to be in training data is a legitimate business decision either way — but it should be a decision, not a side effect.
Opting out of training, staying in search
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: Applebot-Extended
Disallow: /
# Retrieval crawlers stay allowed — these send traffic
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /Server-render your content
The highest-impact item in this category, by a wide margin. To check whether you have a problem, view the page source — not the inspector, which shows the DOM after JavaScript has run — and search for a sentence from your content. If it is not there, AI crawlers cannot see it.
Our engine deliberately does not execute JavaScript, so its word count is a direct measure of what a non-rendering crawler gets.
Make passages quotable
Assistants match a user's question against your headings, then lift the passage beneath. Structure follows from that:
- Phrase headings as questions. “How much does X cost?” beats “Pricing”, because it matches what someone actually typed.
- Answer in the first two sentences under each heading. An answer buried in paragraph four rarely gets extracted.
- Use real lists and tables. These are the structures extraction pipelines handle most reliably. A comparison written as prose is far less likely to be quoted accurately.
- Add a summary near the top of long pages, so there is a self-contained answer to lift rather than one to synthesise.
Say who you are
Structured data is the least ambiguous way to state a fact. When a model chooses between inferring your price from prose and reading it from a Product schema, the schema wins.
Add Organization markup with a sameAs array pointing at your authoritative profiles — Wikipedia, Wikidata, LinkedIn, Crunchbase. Those links are the edges that let a model connect your site to a known entity rather than treating it as an unknown domain.
Add machine-readable authorship and dates too. Assistants weight recency and identifiable expertise when choosing between competing sources, and unattributed content loses that comparison.
Check your bot protection
WAF and bot-management rules frequently block AI crawlers as a side effect of blocking scrapers, and the site owner rarely finds out. If your robots.txt allows retrieval crawlers but you still never appear in AI answers, this is the usual reason. Allowlist the retrieval user-agents explicitly in your bot rules, not just in robots.txt.
Common questions
What is the difference between GPTBot and OAI-SearchBot?
GPTBot collects content to train OpenAI's models. OAI-SearchBot fetches a page to answer a user's question right now and cites the source with a link. Blocking GPTBot opts you out of training. Blocking OAI-SearchBot removes you from ChatGPT's search results — including the referral traffic. Most sites that block 'AI bots' block both without realising they are separate decisions.
Do AI crawlers run JavaScript?
Mostly no. Googlebot renders JavaScript; most AI crawlers do not. That means a client-rendered page Googlebot indexes fine can be completely invisible to ChatGPT, Claude and Perplexity. This is the single largest AI-readiness failure, and the reason our engine deliberately does not execute JavaScript — it sees what they see.
What is llms.txt?
A Markdown file at your site root giving language models a curated map of your most important pages. Adoption is still early, so it is an opportunity rather than a requirement — but it costs an hour and models parse Markdown far more reliably than a rendered page.
How do I opt out of AI training but stay in AI search?
In robots.txt, disallow GPTBot, ClaudeBot, CCBot, Google-Extended and Applebot-Extended, and leave OAI-SearchBot, ChatGPT-User, Claude-User, Claude-SearchBot and PerplexityBot allowed. That keeps your content out of training sets while remaining citable in AI answers.