AI Crawlers: The Reference

The 13 AI agent tokens our scanner reads from your robots.txt: who runs each one, what the operator says it is for, whether it is a real HTTP crawler or only a permission flag, and what disallowing it does, plus the other agents the same operators document, which our scanner does not read from your file. Two of the thirteen are user-triggered fetchers (ChatGPT-User, Claude-User): what we score is the policy you declared for them, not whether the operator applies it. OpenAI says robots.txt "may not apply" to ChatGPT-User, Anthropic makes no such exception. Every row is sourced to the operator's own documentation, read on the review date. Last reviewed: 13 September 2026.

From 15 September 2026: Cloudflare has announced that, for domains newly onboarded from that date, bots it classifies as Training or Agent are blocked by default on pages that display ads, while Search stays allowed. Cloudflare classifies mixed-purpose crawlers that both search and train (it names Googlebot, Applebot and BingBot) under Training, so "Search stays allowed" covers pure search bots only. This changes nothing in your robots.txt; it is an edge default, the kind of gap this table can't show you and our crawler access test looks for. That test observes only how our own crawler is treated, never a vendor's: a block is strong evidence, a pass is weaker. Source: Cloudflare's announcement and documentation.

This table describes the robots.txt tokens each operator documents. We verify robots.txt syntax and precedence when we scan a site (how the two robots checks are scored). We do not verify that any operator's live crawler actually obeys the rule in the wild: that would require watching their traffic, not yours, and we have no way to do that from outside. Where an operator's documentation does not itself say the crawler follows robots.txt, the row says so.

Retrieval agents: the five our scanner scores for visibility

These fetch pages so an assistant can find, cite or link them. Disallowing one is a visibility decision; our crawl.robots_retrieval check counts it.

TokenOperatorTypeWhat the operator says it doesDisallowing itSource
OAI-SearchBotOpenAIHTTP crawler"Used to surface websites in search results in ChatGPT's search features."Your site "will not be shown in ChatGPT search answers, though can still appear as navigational links." OpenAI says a robots.txt change can take about 24 hours to take effect for search.OpenAI
ChatGPT-UserOpenAIHTTP user agent, user-triggered fetch, "not used for crawling the web in an automatic fashion""When users ask ChatGPT or a CustomGPT a question, it may visit a web page with a ChatGPT-User agent."OpenAI: "Because these actions are initiated by a user, robots.txt rules may not apply." A Disallow states your preference; it is not documented to stop these fetches.OpenAI
Claude-SearchBotAnthropicHTTP crawler"Navigates the web to improve search result quality for users.""Prevents our system from indexing your content for search optimization, which may reduce your site's visibility and accuracy in user search results."Anthropic
Claude-UserAnthropicHTTP user agent, user-triggered fetch"When individuals ask questions to Claude, it may access websites using a Claude-User agent.""Prevents our system from retrieving your content in response to a user query, which may reduce your site's visibility for user-directed web search." Anthropic states that its bots honour robots.txt; unlike OpenAI and Perplexity it makes no exception for user-triggered fetches.Anthropic
PerplexityBotPerplexityHTTP crawler"Designed to surface and link websites in search results on Perplexity. It is not used to crawl content for AI foundation models."The control Perplexity documents for its search index; it recommends allowing the bot "to ensure your site appears in search results". A Disallow does not stop Perplexity-User (below), which does the answer-time page visits.Perplexity

Training tokens: the eight our scanner reads for policy coherence

Content fetched under these is used to build models; with one documented exception (Google-Extended, which also governs grounding in Gemini apps), nothing is documented to come back to your page as a citation or a visit. Disallowing them is a rights decision our scanner never penalises: the crawl.robots_training check only looks for a same-operator gap. Two of the eight are not crawlers at all, and one is documented by its operator as a search crawler, not a training one; the table says which.

TokenOperatorTypeWhat the operator says it doesDisallowing itSource
GPTBotOpenAIHTTP crawler"Used to crawl content that may be used in training our generative AI foundation models.""Indicates a site's content should not be used in training generative AI foundation models." Independent of OAI-SearchBot: "each setting is independent of the others." If both are allowed, OpenAI "may use the results from just one crawl for both use cases."OpenAI
ClaudeBotAnthropicHTTP crawler"Collecting web content that could potentially contribute to their training.""Signals that the site's future materials should be excluded from our AI model training datasets." Anthropic asks that the rule be repeated in the robots.txt of every subdomain you want opted out, and supports Crawl-delay.Anthropic
anthropic-aiNamed for Anthropic by many sitesNot in Anthropic's documentationAnthropic's page documents exactly three bots (ClaudeBot, Claude-User, Claude-SearchBot) and does not mention this token. Many robots.txt files still name it, so we read the policy a site wrote for it.No documented current effect. To opt out of Anthropic's training, disallow ClaudeBot. Our scanner's one training finding is a gap between the two, one disallowed while the other left allowed, which usually means a file was edited once and not the second time.Anthropic (absence)
CCBotCommon Crawl (a non-profit)HTTP crawlerBuilds "an open repository of web crawl data that is universally accessible and analyzable." Common Crawl's own pages describe the dataset's uses in general terms (research, academia, non-profits) and do not mention AI or model training; we list it here because its data is reused by others rather than fetched on a user's behalf.Your pages are left out of future Common Crawl archives. The page gives the User-agent: CCBot / Disallow: / recipe and warns that other crawlers spoof the CCBot user agent, so verify by reverse DNS.Common Crawl
Google-ExtendedGoogleRobots-only token: "doesn't have a separate HTTP request user agent string"Controls whether content Google has already crawled may be used "for training future generations of Gemini models" and for grounding in Gemini apps and Vertex AI. "Crawling is done with existing Google user agent strings; the robots.txt user-agent token is used in a control capacity."Opts that content out of Gemini training and grounding. Google: it "does not impact a site's inclusion in Google Search nor is it used as a ranking signal in Google Search."Google
Applebot-ExtendedAppleRobots-only token: "does not crawl webpages""Only used to determine how to use the data crawled by the Applebot user agent": whether it may train "Apple's general purpose foundation models powering generative AI features across Apple products."Opts Applebot-crawled content out of Apple's model training. "Webpages that disallow Applebot-Extended can still be included in search results", and "site rules for Applebot-Extended are not considered in ranking for Search."Apple
Meta-ExternalAgentMetaHTTP crawler (logs show it lowercase: meta-externalagent/1.1)"Crawls the web for use cases such as training foundation AI models or improving products by indexing content directly."Meta's page gives the User-agent: meta-externalagent recipe and names only two other crawlers as ones that may bypass robots.txt; it does not itself state that this one honours it. Changes can take "up to 24 hours" to take effect.Meta
BytespiderByteDanceHTTP crawlerByteDance's only first-party documentation (Chinese-language, on its Toutiao Search webmaster platform) describes it as the crawler of Toutiao Search and says nothing about model training. Use for training has been reported by third parties (Cloudflare, July 2024: "reportedly used to gather training data for its large language models"); ByteDance has not documented it.ByteDance's Bytespider page says nothing about robots.txt; a sibling page on the same platform documents how Toutiao Search matches robots.txt rules, but neither commits the crawler to obeying a Disallow. Independent reports (for example Fortune, October 2024, citing Kasada) say the crawler does not follow it. Verify real traffic by reverse DNS to *.bytedance.com, which is the method ByteDance publishes. We list it under training because that is how sites that name it treat it; the operator's own account is "search engine".ByteDance (Toutiao)

"Robots-only token" means no crawler ever shows up in your logs carrying that exact string; it is a permission flag the operator's existing crawlers check internally (Google's, and Apple's Applebot), not a separate bot that fetches your pages. Every other row above is a real HTTP crawler or user agent: something you can watch arrive in your access logs with that product token in its User-Agent. Operators warn that these strings are spoofed; OpenAI, Anthropic, Perplexity, Common Crawl, Apple and ByteDance each publish IP ranges or a reverse-DNS pattern for checking.

Documented, not scored: user-triggered fetchers and others

The same operators document tokens our scanner does not read, because their operators say robots.txt may not apply or because they are not about AI at all. If you see one in your logs, this is what it is.

TokenOperatorWhat the operator saysSource
Perplexity-UserPerplexity"When users ask Perplexity a question, it might visit a web page to help provide an accurate answer and include a link to the page in its response." And: "Since a user requested the fetch, this fetcher generally ignores robots.txt rules."Perplexity
Meta-ExternalFetcherMeta"Fetches individual links at a user's request" for agentic features; "may bypass robots.txt because it performs fetches that were requested by the user."Meta
Meta-WebIndexerMeta"Navigates the web to improve Meta AI search result quality"; allowing it "helps us cite and link to your content in Meta AI's responses." A retrieval crawler by our definition; not yet in the scored set.Meta
Meta-ExternalAdsMeta"Crawls the web for use cases such as improving advertising and other business-related products and services." Advertising, not AI training or retrieval.Meta
OAI-AdsBotOpenAI"Only visits pages submitted as ads" on ChatGPT; its data "is not used to train generative AI foundation models."OpenAI
ApplebotAppleApple's search crawler (Spotlight, Siri, Safari), whose data "may also be used to help train Apple foundation models" unless Applebot-Extended is disallowed, and "may be used to provide additional context" for AI-generated answers unless the page carries nosnippet. Follows robots.txt for search crawls; "if robots instructions don't mention Applebot but mention Googlebot, the Apple robot will follow Googlebot instructions."Apple

How to allow or block one

Robots.txt rules are grouped by User-agent block. To allow everything:

User-agent: GPTBot
Allow: /

To block one crawler while leaving your default group untouched:

User-agent: GPTBot
Disallow: /

To block several in one place, list each token in its own group, or put several User-agent lines on one group. Both are valid, and the second is what most sites actually do:

User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
User-agent: Google-Extended
Disallow: /

A token with no group of its own falls back to your User-agent: * group: every group that names a token applies to it, and * is used only when none does. Our scanner evaluates your file the same way, at the path of the page you scan (how). Agent-specific pages: GPTBot, ClaudeBot, PerplexityBot.

Directive syntax isn't the same as edge enforcement

A correct Disallow: / line only stops crawlers that choose to read and honor it. It does nothing to a WAF rule, a Cloudflare bot-management setting, or a CDN default that blocks a user agent before your robots.txt is ever fetched, and it does nothing to the reverse case, where your policy allows crawlers but your edge quietly turns self-identifying crawlers away anyway. That mismatch is exactly what a robots.txt parser alone can never show you, and it's the finding our own scanner is built around, observed with our own crawler only, so a block is strong evidence and a pass is weaker. See how we test it, or run a free scan below.

Run a free scan of your site →

Tokens and vendor documentation drift over time; the review date above is when each source was last read. If you notice one of these rows is out of date, tell us and we'll fix it. See also: llms.txt, explained honestly and how our own crawler identifies itself.