Most sites treat AI crawlers as one group. They block all of them, or allow all of them, in a single robots.txt rule. Both choices cost you something, because the crawlers do different jobs.
Some collect content to train models. Others fetch a page to answer a user's question and cite the source. Blocking the first group is a licensing decision. Blocking the second group removes you from AI answers entirely, which is rarely what anyone intended.
Two jobs, two very different consequences.
Retrieval crawlers fetch pages to answer questions and build search indexes. Blocking one costs you citations and referral traffic. OpenAI and Anthropic both document what each of their crawlers does.
| User agent | Operator | Blocking it means |
OAI-SearchBot | OpenAI | You do not appear in ChatGPT search answers |
Claude-User | Anthropic | Claude cannot retrieve your page to answer a user |
Claude-SearchBot | Anthropic | Your content is not indexed for Claude search |
PerplexityBot | Perplexity | You are not cited in Perplexity answers |
Bingbot | Microsoft | You lose Bing, and Copilot answers built on it |
Training crawlers collect content to train models. Blocking one has no effect on whether you are cited today.
| User agent | Operator | Blocking it means |
GPTBot | OpenAI | Your content is excluded from future model training |
ClaudeBot | Anthropic | Your content is excluded from future model training |
Google-Extended | Your content is not used for Gemini training or grounding | |
CCBot | Common Crawl | You are excluded from the dataset many models train on |
Applebot-Extended | Apple | Your content is excluded from Apple model training |
This is the most common mistake, and it is usually accidental. A site adds a blanket AI block, then wonders why it never appears in ChatGPT.
User-agent: GPTBotUser-agent: OAI-SearchBotUser-agent: ClaudeBotUser-agent: Claude-UserUser-agent: PerplexityBotDisallow: /
This blocks training and citation. The site can never be quoted as a source, and gets nothing in return.
❌ Figure: Bad example - Bad example - One blanket rule that also blocks every retrieval crawler
# Retrieval: allowed, so we can be citedUser-agent: OAI-SearchBotUser-agent: Claude-UserUser-agent: Claude-SearchBotUser-agent: PerplexityBotAllow: /# Training: not allowedUser-agent: GPTBotUser-agent: ClaudeBotUser-agent: CCBotDisallow: /
Citations are welcome, training is not. The two decisions are independent.
✅ Figure: Good example - Good example - Retrieval allowed, training denied
If you want both, allow both. The point is to decide deliberately rather than block by reflex.
This myth costs people real traffic, so it is worth stating plainly.
Google-Extended controls whether your content is used for Gemini training and grounding. It does not control whether you appear in AI Overviews or AI Mode. Those are features of Google Search, and they follow ordinary Googlebot crawl rules and snippet settings. See Google's overview of Google crawlers.
Blocking Google-Extended will not remove you from AI Overviews. To manage how you appear in Search, use robots.txt, noindex or nosnippet instead.
Note the reverse trap too. A nosnippet or max-snippet:0 directive does remove you from AI Overviews, because those answers reuse the same snippet text.
robots.txt can say who may fetch a page. It cannot say what they may do with it afterwards. The Content Signals Policy adds that missing half, with three independent signals.
search - may appear in search resultsai-input - may be used to ground an AI answerai-train - may be used to train a modelUser-agent: *Content-Signal: search=yes, ai-input=yes, ai-train=noAllow: /
Be found, be cited, do not train on it.
✅ Figure: Good example - Good example - A clear position on all three uses
Treat Content Signals as a declaration of intent rather than an enforcement mechanism. It states your position in a machine-readable way; it does not stop anyone.
Read your own robots.txt and confirm it matches the decision you think you made. Watch for these traps:
Disallow: / in a User-agent: * group applies to every crawler that has no group of its own* group rather than adding to itAllow beats Disallow on an equal-length matchDisallow: / copied to production blocks everything, including GooglebotThe precedence rules are defined in RFC 9309, the Robots Exclusion Protocol.