Overview
Match the token to its job before you allow or block it: training, search indexing for an answer engine, or a fetch triggered by one user’s request. Blocking one token does not block the others. Every row below comes from the vendor’s own crawler documentation, checked 2026-10-01. Where the tokens sit next to llms.txt and ai.txt is in discoverability-files.
Tokens
Choose the token by job, not by vendor; the Job column says which control applies.
| Token | Operator | Job | robots.txt |
|---|---|---|---|
GPTBot | OpenAI | Training | Honored. |
OAI-SearchBot | OpenAI | Search index for ChatGPT | Honored. |
ChatGPT-User | OpenAI | User-initiated fetch | OpenAI: rules “may not apply”. |
OAI-AdsBot | OpenAI | Safety check of ad landing pages | Not stated. |
ClaudeBot | Anthropic | Training | Honored. |
Claude-SearchBot | Anthropic | Search quality | Honored. |
Claude-User | Anthropic | User-initiated fetch | Honored. |
Googlebot | Search, including AI Overviews and AI Mode | Honored; see below. | |
Google-Extended | Control token only: use of crawled content for Gemini training and for grounding in Gemini Apps and Vertex AI | Token, not a crawler. | |
Google-CloudVertexBot | Crawls a site owner requests for Vertex AI Agents | Honored. | |
PerplexityBot | Perplexity | Search index | Honored. |
Perplexity-User | Perplexity | User-initiated fetch | ”Generally ignores” robots.txt. |
Applebot | Apple | Search for Siri, Spotlight, Safari | Honored. |
Applebot-Extended | Apple | Control token only: Apple foundation model training | Token, not a crawler. |
Meta-ExternalAgent | Meta | Training and indexing | Honored. |
Meta-WebIndexer | Meta | Meta AI search | Honored. |
Meta-ExternalFetcher | Meta | User-requested fetch | ”May bypass” robots.txt. |
Amazonbot | Amazon | Product improvement; may train Amazon AI models | Honored. |
Amzn-SearchBot | Amazon | Amazon search; no training | Honored. |
Amzn-User | Amazon | User-initiated fetch | May not follow all directives. |
CCBot | Common Crawl | Public corpus used by many model trainers | Honored. |
MistralAI-Training | Mistral | Training | Controllable. |
MistralAI-Index | Mistral | Search index; not training | Controllable. |
MistralAI-User | Mistral | User-initiated fetch; not training | Controllable. |
Diffbot | Diffbot | General crawling for its knowledge graph and search; not AI training | Honored by default. |
No English-language vendor crawler documentation exists for these, so treat any rule as best effort: Bytespider (ByteDance; its webmaster page is outside the English web and third parties report it ignores robots.txt), DeepSeek (no published crawler token), and cohere-ai (Cohere states it does not crawl to train models and lists no crawlers).
Allow or block
Pair every User-agent line with an explicit directive.
# Keep out of training, stay visible in ChatGPT search
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
Blocking GPTBot leaves OAI-SearchBot and ChatGPT-User free to fetch and cite you. To stay out of an answer engine entirely, block its search and user-fetch tokens too.
Google specifics
Google-Extended has no user-agent string of its own: Google crawls with its normal agents and applies the token afterwards. It limits training and grounding in Gemini Apps and Vertex AI. It does not affect Search inclusion or ranking, and it does not remove you from AI Overviews or AI Mode. Those follow Googlebot, so limit them with nosnippet, data-nosnippet, max-snippet, or noindex.
Gotchas
Avoid relying on robots.txt alone for fetchers that user actions trigger.
| Gotcha | Fix |
|---|---|
User-initiated fetchers (ChatGPT-User, Perplexity-User, Meta-ExternalFetcher, Amzn-User) may ignore robots.txt. | Enforce at the WAF or CDN if you must block them. |
| User-agent strings are easy to spoof. | Verify against the IP lists that OpenAI, Anthropic, Perplexity, and Common Crawl publish. |
| Vendors rename and split agents, so an old allowlist leaks. | Re-check the operator docs each quarter. |
A wildcard User-agent: * rule applies only to agents with no group of their own. | Name each agent you care about. |
Applebot follows your Googlebot rules when robots.txt does not name Applebot. | Add an explicit Applebot group. |