Technical reference · Crawler policy

GPTBot vs OAI-SearchBot: the AI crawler guide

One is a training crawler, one gets you cited in ChatGPT - and blocking the wrong one erases you from AI search for nothing. Here is the decision, the robots.txt to copy, and how to verify it worked.

Ritik Namdev Ritik Namdev ·Published Jun 25, 2026 ·11 min read ·Last verified Jul 5, 2026
The decision

Block GPTBot and you opt out of OpenAI's model training — you lose nothing in ChatGPT search. Block OAI-SearchBot and you delete yourself from ChatGPT search answers — while gaining no extra training protection, because training runs through the other bot entirely.

1. The decision, in two lines

Every major AI company now splits crawling into separate, independently controllable bots. The expensive mistake is a copy-pasted "block all AI bots" rule that catches the citation crawlers along with the training ones. Here is the whole decision on one row per bot:

BotIts jobIf you block it, you loseIf you block it, you gainVerdict
GPTBotTrain OpenAI foundation modelsNothing in current search visibilityA training opt-outBlock if your policy requires it
OAI-SearchBotIndex for ChatGPT searchYour presence in ChatGPT search answersNothing — training is already handled by GPTBotAlways allow
ChatGPT-UserLive, user-triggered fetchLittle; it often ignores robots.txt anywayNothing reliableAllow

OpenAI's documentation is explicit: sites that opt out of OAI-SearchBot "will not be shown in ChatGPT search answers." The common instinct to block GPTBot is perfectly coherent — it just has nothing to do with search visibility, which a different bot governs. The citation numbers that make this worth caring about are on the ChatGPT citation statistics page.

Blocking GPTBot protects your training data. Blocking OAI-SearchBot deletes you from ChatGPT search. They are not the same decision.

2. Pick a policy, copy the robots.txt

Three policies cover almost every site. Find the one that matches your business model and paste the block.

Policy A — maximum visibility. You want to be discovered and cited, and you have no objection to being trained on. Most brands, businesses and creators using content to attract customers are here.

# Policy A: allow everything. Every crawl is a chance to be cited.
User-agent: *
Allow: /

Policy B — cited, but not trained on. The default recommendation for most sites with a content-rights position: keep full AI-search visibility, opt out of model training.

# Policy B: stay visible in AI search, opt out of training.

# --- Allow AI SEARCH & CITATION bots ---
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /

# --- Block AI TRAINING bots ---
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: Applebot-Extended
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Bytespider
Disallow: /

Policy C — keep content out of AI entirely. If your paid product is the writing, this is a legitimate stance. But robots.txt alone will not achieve it: the non-compliant crawlers ignore it, so this file is the polite half of an enforcement layer, not the whole of it.

# Policy C: robots.txt half only. Pair with a WAF or Cloudflare AI Crawl Control.
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Claude-SearchBot
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: Meta-ExternalAgent
Disallow: /

Recognise the trade-off in Policy C: fully walling off content also removes it from the answers where discovery increasingly happens. If you are unsure which policy you are in, default to A. The visibility upside of being crawled generally outweighs the theoretical downside of being trained on, and you can tighten later. While you are in the file, if you are also considering an llms.txt file, read whether llms.txt actually works first — the published evidence is a null.

3. Why every vendor has three bots

OpenAI, Anthropic, Perplexity, Apple and Meta all separate crawling into three distinct jobs. Once you see the pattern, every vendor's bot list reads itself:

TrainingCollects content to train foundation models. GPTBot, ClaudeBot, CCBot. Blocking costs you nothing in current visibility.
Search / citationIndexes content so it can be surfaced and cited. OAI-SearchBot, PerplexityBot, Claude-SearchBot, Googlebot. Allow these.
Live user fetchRetrieves one page in response to a prompt, in real time. ChatGPT-User, Perplexity-User, Claude-User. Often ignores robots.txt because a person asked.

Anthropic has the cleanest separation after OpenAI: ClaudeBot trains, Claude-SearchBot indexes for Claude's search answers, Claude-User is the live fetch. Anthropic says all three respect robots.txt; the citation behaviour is on our Claude citation statistics page. A deprecated anthropic-ai/Claude-Web token is worth keeping in old block lists.

Perplexity declares no training crawler at all — its crawler documentation says it does not train foundation models — so both PerplexityBot and Perplexity-User exist for visibility and you would generally allow both. The asterisk is enforcement, covered in section 6. Apple splits by suffix: keep Applebot allowed for Siri and Spotlight, block Applebot-Extended to exit Apple Intelligence training. Meta uses Meta-ExternalAgent for Llama training and Meta-ExternalFetcher for live fetches. Common Crawl's CCBot has no citation product; its dataset feeds many models' training.

4. Every AI crawler, and what to do

BotOperatorPurposeRecommended action
GPTBotOpenAITrainingBlock to opt out of training
OAI-SearchBotOpenAISearch citationAllow
ChatGPT-UserOpenAILive user fetchAllow
GooglebotGoogleSearch + AI OverviewsAllow
Google-ExtendedGoogleGemini training opt-outBlock to exit Gemini training
ClaudeBotAnthropicTrainingBlock if opting out
Claude-SearchBotAnthropicSearch citationAllow
PerplexityBotPerplexitySearch citationAllow
CCBotCommon CrawlOpen dataset (feeds training)Block to avoid training corpora
BytespiderByteDanceTrainingBlock (may need WAF)
Applebot-ExtendedAppleApple Intelligence training opt-outBlock; keep Applebot allowed
Meta-ExternalAgentMetaTraining (Llama)Block if desired

Every named agent across every vendor is catalogued in our bot user-agent registry, cross-checked against third-party references such as Momentic's crawler list. Here is where crawl volume actually concentrates. Googlebot dwarfs everything at roughly 50% of all crawler requests — as the same report notes — so this chart shows the AI-bot subset for readability:

5. Google: the one case with no clean lever

Google-Extended lets you opt out of Gemini and Vertex training, which is genuinely useful. But AI Overviews are not a separate crawler — they are generated from the standard Googlebot search index. You cannot appear in Google Search while excluding yourself from AI Overviews. Anyone promising an "AI Overviews opt-out" that keeps your rankings is selling something that does not exist; Google's own AI features documentation says as much. What that surface actually cites is covered in AI Overview statistics and the source delta between AI Mode and AI Overviews.

6. How to verify the rule actually worked

Nothing in the robots.txt chain reports back to you. There is no confirmation, no error, no dashboard. Your logs are the only feedback loop that exists — so here is the verification sequence.

What actually happens between your rule and a bot stopping
  1. 1 Fetch /robots.txt From the root of that exact host. A rule on example.com does nothing for docs.example.com.
  2. 2 Parse into groups A blank line ends a group. A stray blank line silently reassigns your rules.
  3. 3 Match the token On the token, not the full user-agent string. GPTBot does not match OAI-SearchBot.
  4. 4 Apply the most specific group A named group beats the wildcard group for that bot.
  5. 5 Cache the file Changes are not instant, and no operator publishes how long they cache. Nothing reports back to you.
  1. Fetch the file for every host you own. Root domain, every subdomain, any separate docs or shop host. Each is independent — a rule on example.com does nothing for docs.example.com.
  2. Check the citation bots specifically. Confirm that no rule, including a broad * group, blocks OAI-SearchBot, Claude-SearchBot, PerplexityBot, Googlebot or Bingbot.
  3. Check for a stray global disallow. A User-agent: * plus Disallow: / left over from staging is the single most damaging line a site can ship.
  4. Filter your logs by user-agent for the tokens that matter: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended, Bytespider.
  5. Verify by IP before you trust a count. User-agent strings are trivially spoofed. OpenAI publishes machine-readable ranges at openai.com/gptbot.json, openai.com/searchbot.json and openai.com/chatgpt-user.json; Google, Anthropic and others publish equivalents. Reverse-DNS plus an IP match is how you separate real crawlers from impersonators.
  6. Read the result over the following week. A working block shows the bot fetching /robots.txt and then requesting nothing else. If it keeps requesting pages, either your rule did not match its token or the bot is not honouring it.

Two things about that last step. Bots cache robots.txt, so a rule added this morning may not be observed for hours or longer — no operator publishes how long they cache. And a rising crawl cadence is the earliest available signal of AI visibility: a 30-day log study of agentic crawling reported GPTBot re-fetching high-value pages roughly every 2.4 days once it had discovered them. Whether a recrawl rate is associated with a citation that lasts is what our citation half-life study asks. Finally, write your intended policy into a comment at the top of the file — otherwise nobody can tell a deliberate block from an accident.

Enforcement, where it matters. robots.txt is a request, not a wall. GPTBot, OAI-SearchBot, ClaudeBot, Googlebot and Applebot honour it reliably by their operators' accounts; CCBot and Bytespider have documented compliance gaps. In August 2025 Cloudflare de-listed Perplexity as a verified bot after catching it rotating IPs and spoofing a Chrome user-agent to reach sites that had blocked it. If you have content you genuinely must keep out, layer a WAF, Cloudflare's AI Crawl Control, or IP rules on top.

7. Common failure modes

Most robots.txt mistakes are mechanical, not strategic — the rule is written with the right intent and fails somewhere in the chain above.

  • The stray blank line. A blank line ends a group. Rules placed after one belong to a different group than you intended.
  • The token mismatch. Matching is on the token, not the full user-agent string. GPTBot does not match OAI-SearchBot, even though both are OpenAI. This is exactly where the "block all AI" instinct goes wrong.
  • Assuming a wildcard covers AI bots. There is no agreed wildcard token for "AI crawler". A * group with Disallow: / blocks Googlebot too, which is almost never what anyone means.
  • Reading documented compliance as verified compliance. Open question Every "honours robots.txt" statement here reflects what the operator published about itself.
  • Reading "allowed" as "will be crawled". Allowing removes a barrier; it does not create demand. A small site can allow every bot in the table and see almost no AI crawler traffic. Which domains do get surfaced is its own finding — see the most-cited domains page.
  • Reading crawl volume as visibility. A high crawl count from a training bot tells you nothing about whether any engine will cite you.

The common thread: robots.txt is a permission layer, not a growth lever. It can only take visibility away; it cannot add any. The levers that might add some — and how much evidence each actually has — are graded in the tactic evidence scoreboard. Revisit the file quarterly: new crawlers appear, and a robots.txt configured perfectly a year ago may be silently blocking a citation bot that did not exist when you wrote it.

8. Why this suddenly matters: the economics

Cloudflare reported that training now drives roughly 80–82% of all AI crawling, up from 72% a year earlier, while search crawling fell to about 18%. Most AI crawling, in other words, is not the crawling that gets you cited.

Where AI crawling actually goes
  • Training crawling 82
  • Search / citation crawling 18
Cloudflare network data, using the upper end of the reported 80-82% training share. The point is the ratio: most AI crawling is not the crawling that gets you cited.

The return side is more lopsided still. Per Cloudflare's network data, for every visitor referred:

OperatorCrawl requests per referred visitorWhat that implies
Google~5 : 1A conventional search bargain: crawl cost roughly matched by traffic returned.
Perplexity~195 : 1Lowest of the AI engines, partly because it fetches on demand rather than indexing broadly.
OpenAI~1,091 : 1Two orders of magnitude worse than Google, and still the best of the large model vendors.
Anthropic~38,000 : 1Effectively no referral relationship at all. The value, if any, is citation rather than clicks.

All four ratios are Cloudflare's, restated in independent write-ups. Whether the referrals that do arrive are worth anything is handled in AI referral traffic statistics and conversion benchmarks.

That imbalance is driving two reactions. The first is mass blocking. GPTBot is now the single most-blocked AI crawler, disallowed by roughly half of top news sites. AI-blocking among reputable sites climbed from around 23% in late 2023 to around 60% by mid-2025 — a trend visible in top-1000 robots.txt analysis, and the design for measuring it independently is registered as our robots.txt blocking census, which has not yet run. The second is monetisation: Cloudflare launched pay-per-crawl, returning HTTP 402 responses at scale. The free-for-all era of AI crawling is ending.

9. What nobody has actually verified

Open question Policy here is documented; behaviour is not. Three gaps stand out, and each is cheaply testable with a controlled site and some patience.

  • Compliance at scale. No public, independent study has systematically tested whether each of these bots respects a fresh robots.txt block across many sites. The disputed cases we know about surfaced through individual investigations, not systematic testing.
  • Whether training and search indexes are genuinely separate. The three-bot model implies they are. That has not been tested, and a shared internal pipeline could couple them in ways outside observers cannot see.
  • Whether retrieval bots render JavaScript. If they do not, a client-rendered page is invisible to them whatever robots.txt says. Our rendering study is the attempt to settle it. Even for Google, JavaScript costs roughly nine times the crawl time of HTML.

Until someone runs those tests, treat every compliance claim on this page — and on every other page like it — as the operator's word rather than an observation. When we run them and find nothing, the result goes in the null results registry rather than quietly into a drawer.

Where to go next

Check whether the pages you just unblocked have an AI answer to appear in: paste your target queries into the AI Overview Exposure Checker. Allowing the right bot only matters on queries that generate an answer at all.

Then close the rest of the access layer: the technical GEO audit covers it end to end, and the llms.txt generator produces the curated map some retrieval clients look for — a low-cost addition, though our own 90-day log test returned a null result on whether it changes anything. The tactical follow-on is how to get cited by ChatGPT, where every step carries an evidence grade.

§ References

Sources

OpenAI - Overview of OpenAI crawlers (official docs)developers.openai.com/api/docs/bots OpenAI Help Center - Publishers and developers FAQhelp.openai.com/en/articles/12627856-publishers-and-developers-faq Cloudflare - The crawl-to-click gap: AI bots, training, and referralsblog.cloudflare.com/crawlers-click-ai-bots-training Cloudflare - From Googlebot to GPTBot: who's crawling your site in 2025blog.cloudflare.com/from-googlebot-to-gptbot-whos-crawling-your-site-in-2025 Cloudflare - 2025 Radar Year in Reviewblog.cloudflare.com/radar-2025-year-in-review Cloudflare - Perplexity stealth crawling investigationblog.cloudflare.com/perplexity-is-using-stealth-undeclared-crawlers-to-evade-website-no-crawl-directives Perplexity - Official crawler documentationdocs.perplexity.ai/docs/resources/perplexity-crawlers Anthropic - Does Anthropic crawl the web, and how to block itsupport.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler Search Engine Land - Anthropic clarifies its three crawlerssearchengineland.com/anthropic-claude-bots-470171 Search Engine Journal - Cloudflare report: Googlebot tops AI crawler trafficwww.searchenginejournal.com/cloudflare-report-googlebot-tops-ai-crawler-traffic/563303 BuzzStream - Which news sites block AI crawlers in 2025www.buzzstream.com/blog/publishers-block-ai-study Paul Calvano - AI bots and robots.txt (top-1000 analysis)paulcalvano.com/2025-08-21-ai-bots-and-robots-txt Am I Cited - Google-Extended: what it does & should you block itwww.amicited.com/blog/google-extended-what-it-does-should-you-block-it OpenAI - Platform bots documentationplatform.openai.com/docs/bots Anthropic - Claude web search tool documentationplatform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool Perplexity - Developer documentationdocs.perplexity.ai Google Search Central - Overview of Google crawlers and fetchersdevelopers.google.com/search/docs/crawling-indexing/overview-google-crawlers Google Search Central - Managing crawl budget for large sitesdevelopers.google.com/search/docs/crawling-indexing/large-site-managing-crawl-budget Google Search Central - AI features and your websitedevelopers.google.com/search/docs/appearance/ai-features InfoQ - Cloudflare 2025 data on AI botsinfoq.com/news/2025/12/cloudflare-2025-ai-bots Momentic - AI search crawlers and bots referencemomenticmarketing.com/blog/ai-search-crawlers-bots SEOmator - Crawl-to-refer ratios for AI crawlers and LLM botsseomator.com/blog/crawl-to-refer-ratio-ai-crawlers-llm-bots Technology Checker - robots.txt AI crawler blocking reporttechnologychecker.io/blog/robots-txt-ai-crawlers-blocking-report Digital Applied - 30-day agentic crawler behaviour log studywww.digitalapplied.com/blog/agentic-crawler-behavior-30-day-site-log-study Onely - Google needs 9x more time to crawl JS than HTMLwww.onely.com/blog/google-needs-9x-more-time-to-crawl-js-than-html llms.txt - The proposed standardllmstxt.org
FAQ

Frequently asked questions

Does blocking GPTBot remove me from ChatGPT?
No. GPTBot only controls training-data collection. ChatGPT's live search uses OAI-SearchBot for indexing and ChatGPT-User for live fetch. Per OpenAI's docs, blocking GPTBot leaves your ChatGPT search visibility fully intact. But blocking OAI-SearchBot removes you from ChatGPT search answers.
What's the actual difference between GPTBot and OAI-SearchBot?
GPTBot crawls content that may be used to train OpenAI's foundation models. OAI-SearchBot exists to surface websites in ChatGPT's search results. Different jobs, different user-agents, different IP ranges. Controlled independently in robots.txt.
Does robots.txt actually stop these bots?
It's an honour system. OpenAI, Anthropic, Google, Apple and Perplexity's declared crawlers respect it. CCBot and Bytespider have mixed records. Cloudflare de-listed Perplexity in 2025 for stealth crawling around blocks. For real enforcement, use a WAF or Cloudflare's AI Crawl Control.
Can I stay in Google AI Overviews but block Gemini training?
You can block Gemini training with Google-Extended. But you cannot exclude yourself from AI Overviews while staying in Search. Overviews run on the standard Googlebot index. It's all-or-nothing with Google Search.
How do I verify a bot is really GPTBot and not a spoofer?
Check the request's source IP against OpenAI's published ranges at openai.com/gptbot.json, searchbot.json and chatgpt-user.json. User-agent strings are trivially faked. Perplexity was caught spoofing a Chrome user-agent to evade blocks.
Do ChatGPT-User and Perplexity-User obey robots.txt?
Largely no. Both are user-initiated fetches. OpenAI says robots.txt rules may not apply to ChatGPT-User, and Perplexity-User generally ignores robots.txt. Blocking them in robots.txt is mostly symbolic. Use a WAF if you truly must block.
How do I confirm a block actually took effect?
Watch your logs. A working block shows the bot fetching /robots.txt and then requesting nothing else. If it keeps requesting pages, either the rule did not match its token or the bot is not honouring it. There is no confirmation message from any operator.
Has anyone independently verified that these bots obey robots.txt?
Not at scale, publicly. Every "honors robots.txt" claim in guides like this one - including this one - traces back to the operator's own documentation. Compliance is self-reported. That is an open question, not a settled fact.
Does a wildcard rule cover all AI bots?
No. There is no agreed wildcard token for "AI crawler". A User-agent: * group with Disallow: / blocks everything including Googlebot, which is almost never what anyone means. Each bot has to be named.
Will blocking training bots hurt my SEO?
No. GPTBot, ClaudeBot, Google-Extended and Applebot-Extended are separate from the search-indexing bots. Blocking them doesn't affect Google or Bing rankings or AI-search citation, as long as you leave Googlebot, Bingbot, OAI-SearchBot, PerplexityBot and Claude-SearchBot allowed.
Ritik Namdev
Written by

Ritik Namdev

Growth · SEO · GEO

Growth marketer documenting a brand-new site's climb into Google and the AI engines - in public, with real numbers. Every tactic here is tested on real sites before it's published.

The Lab · Weekly

One experiment. Every week.

The field notes in your inbox - one thing I tested, the raw numbers behind it, and what it means for getting cited by AI.

Free forever. Unsubscribe anytime.