AI crawlers

What is the difference between an AI search crawler and an AI training crawler?

Three categories, three different consequences when you block one, and several operators who label them explicitly.

What is the difference between an AI search crawler and an AI training crawler?

A training crawler collects pages to build datasets used to train foundation models. A search crawler builds an index that AI products query at answer time, and it is what governs whether a site can be surfaced and cited. OpenAI, Anthropic and Perplexity all publish this split in their own documentation, and Cloudflare classifies the same bots into categories it calls AI Crawler, AI Search and AI Assistant. There is a third category worth knowing: the user-triggered fetcher, which loads a page because a person asked a question in that moment. Blocking a training crawler and blocking a search crawler produce entirely different outcomes.

The three categories, defined by the operators themselves

Training. The crawler gathers content that may end up in a dataset used to train a model. Anthropic describes ClaudeBot as "collecting web content that could potentially contribute to their training". OpenAI puts GPTBot in the same role.

Search. The crawler builds an index that the product consults when someone asks a question, which is the pipeline that produces citations. Anthropic writes that Claude-SearchBot "navigates the web to improve search result quality for users".

User-triggered retrieval. Nothing is being indexed. A person asked something, and the system fetched one page to answer it. Anthropic's framing: "Claude-User supports Claude AI users."

These are not marketing distinctions. Each has its own robots.txt token at most major operators, and each has a different effect when denied.

Three purposes, three different consequences for blocking TRAINING GPTBotClaudeBotCCBotGoogle-ExtendedApplebot-Extended
Blocking removes you from future model training. It does not remove you from search.
SEARCH INDEXING OAI-SearchBotClaude-SearchBotPerplexityBotGooglebotBingbot
Blocking these is what removes you from the answer surface.
USER-TRIGGERED ChatGPT-UserClaude-UserPerplexity-User
Fetches a page because a person asked, in the moment.
The three documented purposes. Every agent in the left column is a training crawler, and none of them controls whether you appear in an AI answer.
Documented tokens by category and operator, retrieved 2026-09-03
OperatorTrainingSearchUser-triggered
OpenAIGPTBotOAI-SearchBotChatGPT-User
AnthropicClaudeBotClaude-SearchBotClaude-User
Perplexitynone documentedPerplexityBotPerplexity-User
GoogleGoogle-Extended (control token, not a crawler)GooglebotGoogle-GeminiNotebook, Google-Agent
Microsoftnone documented; robots meta tags insteadbingbotnone documented
AppleApplebot-Extended (control token, not a crawler)Applebotnone documented
Metameta-externalagentmeta-externalagent (same token)meta-externalfetcher
Common CrawlCCBot, indirectly (see below)not applicablenot applicable

Why blocking the wrong one is expensive

Deny a training token and you are declining to contribute content to a model dataset. Your pages can still be indexed, retrieved and cited by the search side of the same company.

Deny a search token and you have opted out of being surfaced in that product's answers. Perplexity states the reverse case directly: to appear in results, it recommends allowing PerplexityBot in robots.txt and permitting its published IP ranges.

Deny a user-triggered fetcher and you are declining live retrieval when a person asks about you by name. Anthropic warns that disabling Claude-User "may reduce your site's visibility for user-directed web search".

These outcomes are not interchangeable, which is why a single blanket rule aimed at "AI bots" usually costs more than the person writing it intended.

The five stages, and each one can fail independently Access a crawler can fetch the ... Index it is stored and searcha... Retrieve it is pulled for a query Cite it appears as a source Recommend the business is proposed MEASURED BY A CRAWLER TEST NOT measured by a crawler test
Crawler access is the first of five stages and the only one a crawler test measures. Each stage can fail independently, and the four to its right are invisible to a 200 response.

The operators who do not fit the three-way split

Perplexity documents no training crawler at all. Both of its agents carry an explicit disclaimer that they are not used to collect content for training AI foundation models. On its own documentation, Perplexity is search and retrieval only.

Microsoft has no AI training user agent. Bing's crawler article lists bingbot and a set of preview and ads crawlers, and nothing AI-specific. Training control at Microsoft is expressed through robots meta tags instead, where noindex is documented as also meaning do not use the content for training Microsoft generative AI models.

Apple runs one crawler for two purposes. Applebot powers search across Spotlight, Siri and Safari, and the same crawled data may also help train Apple foundation models. Applebot-Extended is the opt-out for the second use and does not crawl anything itself.

Meta collapses the axes entirely. Its documentation says meta-externalagent "crawls the web for use cases such as training foundation AI models or improving products by indexing content directly". One token, two uses, no way to accept one and refuse the other.

Common Crawl is a fourth shape again. It calls itself a non-profit producing an open repository of web crawl data, and does not describe CCBot as either a training or a search crawler. The training relevance is downstream, in what other people do with the corpus.

robots.txt obedience is not uniform, and the gaps are on the user-triggered side

Automatic crawlers are consistently documented as obeying robots.txt. The user-triggered fetchers are where the commitments get soft, and each operator words it differently.

OpenAI on ChatGPT-User: "Because these actions are initiated by a user, robots.txt rules may not apply." That is not a commitment in either direction.

Perplexity is blunter about Perplexity-User: "Since a user requested the fetch, this fetcher generally ignores robots.txt rules."

Anthropic makes no such carve-out. Its blanket statement covers all three of its bots without exempting Claude-User, which is a genuine difference between operators rather than a difference in wording.

Google keeps its own three-way split: common crawlers "always obey robots.txt rules when crawling automatically", while its special-case Google-Safety agent is documented as ignoring robots.txt outright.

Documented robots.txt position for user-triggered agents, retrieved 2026-09-03
AgentOperatorWhat the documentation says
ChatGPT-UserOpenAIRules may not apply, because the action is user-initiated
Claude-UserAnthropicNo exemption stated; covered by the blanket robots.txt commitment
Perplexity-UserPerplexityGenerally ignores robots.txt rules
meta-externalfetcherMetaMay bypass robots.txt rules

A third party who labels the same bots

Cloudflare assigns every bot it knows about a category, and its taxonomy lines up with the operator documentation rather than cutting across it.

GPTBot, ClaudeBot, CCBot, Bytespider and Google-CloudVertexBot are filed as AI Crawler. OAI-SearchBot, Claude-SearchBot and PerplexityBot are filed as AI Search. ChatGPT-User, Claude-User and Perplexity-User are filed as AI Assistant. Googlebot and BingBot are filed as Search Engine.

That is useful corroboration from outside the companies being described, and it is a convenient way to sanity-check a block list before you deploy it.

What is actually established, and how

Sorted by how strong the evidence is, not by how convenient it is.

ClaimBasis
OpenAI, Anthropic and Perplexity each publish separate robots.txt tokens for automatic crawling and for user-triggered retrieval.Documented by the platform
Perplexity documents no training crawler, and both of its published agents state they are not used to collect content for training foundation models.Documented by the platform
Microsoft documents no AI-training user agent and expresses training control through robots meta tags such as noindex, noarchive and nocache.Documented by the platform
Apple uses a single crawler, Applebot, for both search and training, with Applebot-Extended as a non-crawling control token for the training use.Documented by the platform
Meta documents one agent, meta-externalagent, covering both model training and product indexing, with no separate control for each use.Documented by the platform
Cloudflare categorises the same bots as AI Crawler, AI Search, AI Assistant and Search Engine, matching the split the operators publish.Documented by the platform
Whether a given AI product actually restricts itself to the crawler category it documents, once the data is inside the company.Not publicly documented

What nobody can currently tell you

Stated because the alternative is implying a certainty that does not exist.

  • The Meta documentation could not be fetched directly. Every attempt returned HTTP 400, and the content was read through a rendering proxy, so the Meta quotes here sit one confidence step below the rest and the full Meta user-agent strings are deliberately not published.

  • No operator in this set documents reading a publisher-supplied llms.txt file. Several publish an llms.txt for their own documentation, which is the opposite direction. This is an absence of documentation, not a documented refusal.

  • Anthropic publishes no full user-agent strings, only the three robots.txt tokens, so there is no primary source for the literal ClaudeBot request header.

  • The tokens anthropic-ai and claude-web appear nowhere in Anthropic current documentation. We could find no Anthropic page that describes, deprecates or retires them, so their status is genuinely unknown rather than confirmed dead.

  • Common Crawl does not state that CCBot exists to feed model training. Whether a specific corpus release ends up in a specific model is decided by whoever downloads it, and is not visible from Common Crawl documentation.

  • None of these operators publishes a last-updated date on every relevant page. Perplexity and Bing expose no revision date at all, so their content can only be dated to our retrieval date.

What people get wrong about this

  • AI crawlers are one category, so one rule handles them.

    What is actually the case

    At least three categories exist with separate tokens at most major operators, and denying all of them removes search and live retrieval as well as training.

  • Every AI bot obeys robots.txt.

    What is actually the case

    Automatic crawlers are documented as obeying it. Perplexity-User is documented as generally ignoring it, meta-externalfetcher may bypass it, and OpenAI says rules may not apply to ChatGPT-User.

  • Perplexity trains models on the pages it crawls.

    What is actually the case

    Perplexity documentation attaches an explicit training disclaimer to both of its agents and names no training crawler anywhere on that page.

  • CCBot is a training crawler.

    What is actually the case

    Common Crawl describes CCBot as building an open repository of crawl data. It makes no training claim of its own, though third parties commonly use the corpus that way.

  • If you only wrote Googlebot rules, you only addressed Google.

    What is actually the case

    Apple documents that when robots instructions mention Googlebot but not Applebot, Applebot follows the Googlebot instructions.

Questions we get asked constantly

If I block only training crawlers, can AI products still cite me?

Yes, on the operators that separate the two. The search tokens, OAI-SearchBot, Claude-SearchBot and PerplexityBot, are untouched by a training-only block list.

Which category does Googlebot fall into?

Google documents Googlebot as its search crawler, and Google states that crawling preferences for it affect Search including Discover, Images, Video and News.

Is there any operator where you cannot separate training from indexing?

Meta, on its published documentation. A single agent covers both uses and no per-use control token is offered.

Does an AI assistant fetch count as a crawl?

The operators treat it as a distinct thing. It is one page requested at a person's direction rather than systematic crawling, and it carries different robots.txt commitments.

Where this came from

Every factual claim above traces to one of these. Each entry says what it supports and the date it was read, because platform documentation changes without notice.

Want this measured on your own site rather than explained?

AI Search Optimization