What the checker tests
- robots.txt, per crawler. Rules are evaluated the way crawlers apply them under RFC 9309: the most specific user-agent group wins, the longest matching path wins, and
Allowwins a tie. A crawler with its own group ignores theUser-agent: *group completely. - Page-level blocks.
noindexin meta robots or theX-Robots-Tagheader, and non-200 responses. - JavaScript dependence. OpenAI’s and Anthropic’s crawlers download HTML but do not execute JavaScript, so a page that renders its text in the browser is close to empty for them. We show exactly what a non-JavaScript crawler reads.
- Live requests. The page is requested again with each major crawler’s user-agent so you can see CDN or firewall responses — reported as a hint, for the reason in the FAQ below.
- llms.txt and sitemap. Whether they exist, are served as text, and are referenced correctly.
Search crawlers and training crawlers are different bots
Every major AI company now runs separate user-agents for search and for model training. Blocking training is a business decision; blocking search crawlers removes you from that product’s answers. The audit does not penalize blocked training crawlers.
| Vendor | Search / answers | User-triggered | Training |
|---|---|---|---|
| OpenAI | OAI-SearchBot | ChatGPT-User | GPTBot |
| Anthropic | Claude-SearchBot | Claude-User | ClaudeBot |
| Perplexity | PerplexityBot | Perplexity-User | — |
Googlebot (incl. AI Overviews) | Google-CloudVertexBot | Google-Extended | |
| Apple | Applebot | — | Applebot-Extended |
The full list with official documentation links is in the AI crawler list.
The most common reasons AI crawlers are blocked
1. A bot-specific group that forgets the defaults
Adding User-agent: GPTBot with Allow: / means GPTBot no longer reads your * group — your private-path disallows stop applying to it. Repeat the disallows inside every named group, or don’t name crawlers you simply want to allow.
2. A CDN or firewall rule
Cloudflare’s AI crawler blocking, “bot fight” modes and hosting-level rate limits often return 403 or 429 to AI crawlers while Googlebot gets through. If robots.txt allows a crawler but your logs show errors for it, the fix is in your CDN settings, not in robots.txt.
3. Content that only exists after JavaScript runs
Single-page apps that ship an empty <div id="root"> are readable by Googlebot (which renders) but not by most AI crawlers. Server-side rendering or static generation fixes this.
Allow AI search, block training
This is the setup most publishers and businesses choose. Paste it into your robots.txt and keep your existing rules above it:
User-agent: *
Allow: /
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: CCBot
User-agent: meta-externalagent
Disallow: /Or build your own with the robots.txt generator.