resulthack

AI crawlers: what each one is for, and how to block or allow it

49 robots.txt tokens from 19 operators, each checked against the operator's own documentation between 22 Sep 2026 and 9 Oct 2026. Open one for copyable robots.txt lines, or paste your robots.txt into the checker to see which of them it blocks and which line decides. To see which of them actually visited, and which visits were fakes, drop your access log into the log reader. To see what a crawler that runs no JavaScript can read on your page, paste its HTML into the no-JavaScript check. To check an llms.txt you already have against the llmstxt.org format, line by line, paste it into the llms.txt validator.

robots.txt tokenOperatorPurposeObeys robots.txtVerify
GPTBot OpenAI Training robots.txt Yes Verify: IP list (18 ranges)
OAI-SearchBot OpenAI AI search robots.txt Yes Verify: IP list (39 ranges)
ChatGPT-User OpenAI User fetch robots.txt Not always Verify: IP list (229 ranges)
ClaudeBot Anthropic Training robots.txt Yes Verify: IP list (26 ranges)
Claude-SearchBot Anthropic AI search robots.txt Yes Verify: IP list (26 ranges)
Claude-User Anthropic User fetch robots.txt Yes Verify: IP list (26 ranges)
anthropic-ai Not in Anthropic’s docs Unconfirmed Unconfirmed robots.txt Unconfirmed Verify: Unconfirmed
Claude-Web Not in Anthropic’s docs Unconfirmed Unconfirmed robots.txt Unconfirmed Verify: Unconfirmed
PerplexityBot Perplexity AI search robots.txt Yes Verify: IP list (8 ranges)
Perplexity-User Perplexity User fetch robots.txt Not always Verify: IP list (4 ranges)
Google-Extended Google Training AI search robots.txt Yes Verify: Via Google's common crawlers
Googlebot Google AI search robots.txt Yes Verify: IP list (317 ranges)
GoogleOther Google Unconfirmed robots.txt Yes Verify: IP list (317 ranges)
Google-CloudVertexBot Google Unconfirmed robots.txt Yes Verify: IP list (317 ranges)
Google-Agent Google User fetch robots.txt No Verify: IP list (20 ranges)
Google-GeminiNotebook Google User fetch robots.txt No Verify: Documented
Google-NotebookLM Retired Google Unconfirmed robots.txt Unconfirmed Verify: Unconfirmed
Applebot-Extended Apple Training robots.txt Yes Verify: Via Applebot
Applebot Apple AI search Training robots.txt Yes Verify: IP list (24 ranges)
CCBot Common Crawl Unconfirmed robots.txt Yes Verify: IP list (5 ranges)
Bytespider Unconfirmed Unconfirmed robots.txt Unconfirmed Verify: Unconfirmed
Meta-ExternalAgent Meta Training robots.txt Yes Verify: Unconfirmed
Meta-WebIndexer Meta AI search robots.txt Yes Verify: Unconfirmed
Meta-ExternalFetcher Meta User fetch robots.txt Not always Verify: Unconfirmed
FacebookBot Not in Meta’s docs Unconfirmed Unconfirmed robots.txt Unconfirmed Verify: Unconfirmed
Amazonbot Amazon Training robots.txt Yes Verify: IP list (1292 ranges)
Amzn-SearchBot Amazon AI search robots.txt Yes Verify: IP list (816 ranges)
Amzn-User Amazon User fetch robots.txt Not always Verify: IP list (1023 ranges)
Bingbot Microsoft AI search robots.txt Yes Verify: IP list (28 ranges)
DuckAssistBot DuckDuckGo AI search robots.txt Yes Verify: IP list (486 ranges)
MistralAI-Index Mistral AI AI search robots.txt Yes Verify: IP list (2 ranges)
MistralAI-User Mistral AI User fetch robots.txt Yes Verify: IP list (4 ranges)
MistralAI-Training Mistral AI Training robots.txt Yes Verify: Unconfirmed
PetalBot Huawei (Petal Search) AI search robots.txt Yes Verify: Documented
YandexAdditional Yandex AI search robots.txt Yes Verify: Via Yandex's indexing robots
Diffbot Diffbot AI search robots.txt Not always Verify: Unconfirmed
Diffbot-User Diffbot User fetch robots.txt Unconfirmed Verify: Unconfirmed
ImagesiftBot Hive (ImageSift) Unconfirmed robots.txt Yes Verify: Unconfirmed
cohere-ai Not in Cohere’s docs Unconfirmed Unconfirmed robots.txt Unconfirmed Verify: Unconfirmed
amazon-kendra Amazon Unconfirmed robots.txt Yes Verify: Unconfirmed
amazon-QBusiness Amazon Unconfirmed robots.txt Yes Verify: Unconfirmed
bedrockbot Amazon Unconfirmed robots.txt Yes Verify: Unconfirmed
GoogleOther-Image Google Unconfirmed robots.txt Yes Verify: IP list (317 ranges)
GoogleOther-Video Google Unconfirmed robots.txt Yes Verify: IP list (317 ranges)
OAI-AdsBot OpenAI Unconfirmed robots.txt Unconfirmed Verify: IP list (2 ranges)
AIWebIndex Lyrenth AI search robots.txt Yes Verify: IP list (22 ranges)
Brightbot Bright Data Unconfirmed robots.txt Unconfirmed Verify: Documented
CloudflareBrowserRenderingCrawler Cloudflare Unconfirmed robots.txt Yes Verify: Documented
Cotoyogi ROIS-DS Unconfirmed robots.txt Yes Verify: Documented

Who blocks each agent, on the 1,000 most-visited sites

On 2026-10-09 we fetched /robots.txt from the first 1,000 domains of Tranco list PY35J (generated 2026-10-08) and read 508 files. Each one was decided for every agent below by the same RFC 9309 matcher the checker uses, for the path /. By name means a group naming the agent blocks the whole site; through * means the file names no group for it and its catch-all group blocks everything; partial means a group names it but leaves the home page open.

AgentBy nameShareThrough *Partial
CCBot8616.9%3017
Bytespider8516.7%3213
GPTBot8115.9%2228
ClaudeBot7715.2%2425
Google-Extended6813.4%2225
Meta-ExternalAgent6613.0%2916
PerplexityBot6212.2%2236
Diffbot6112.0%345
Applebot-Extended5911.6%2617
PetalBot5811.4%304
cohere-ai5611.0%3412
ImagesiftBot509.8%362
Amazonbot499.6%2817
anthropic-ai469.1%3415
Claude-Web469.1%348
ChatGPT-User458.9%2436
FacebookBot448.7%319
Claude-User418.1%2720
Perplexity-User397.7%3313
Brightbot387.5%332
Meta-ExternalFetcher367.1%2810
DuckAssistBot356.9%3016
Google-CloudVertexBot356.9%346
Claude-SearchBot346.7%2824
OAI-SearchBot336.5%2437
MistralAI-User336.5%345
GoogleOther305.9%335
Cotoyogi265.1%380
Meta-WebIndexer234.5%344
Google-NotebookLM203.9%344
CloudflareBrowserRenderingCrawler203.9%362
YandexAdditional112.2%361
Amzn-SearchBot91.8%372
Amzn-User81.6%363
Applebot71.4%2025
bedrockbot71.4%380
Diffbot-User71.4%380
GoogleOther-Image61.2%382
GoogleOther-Video61.2%382
Googlebot40.8%1068
Google-Agent40.8%355
amazon-kendra40.8%371
Bingbot30.6%1253
amazon-QBusiness30.6%380
AIWebIndex20.4%380
MistralAI-Index20.4%380
OAI-AdsBot10.2%381
MistralAI-Training10.2%380
Google-GeminiNotebook00.0%381

Share is of the 508 readable files. robots.txt is only what a site asks for. A site can also turn a crawler away at its firewall or CDN, or let an operator in under a licensing deal, and neither shows in its robots.txt. A block through * stops every crawler the file does not name, so it says nothing about this one in particular. The files we could not read are not counted: 222 of the 1,000 domains are infrastructure names with no website at the bare domain (CDN and DNS zones, for example), 59 answered our request with 401 or 403, 93 failed (timeout, TLS or server error), 59 have no robots.txt (404 and similar) and 59 answered with an HTML page instead of a robots.txt file.

Three purposes, and why they block differently

Training tokens (GPTBot, ClaudeBot, Applebot-Extended, Meta-ExternalAgent, Amazonbot and MistralAI-Training) decide whether your pages may be used to train future models. Blocking one is an opt-out from training, not from answers: OpenAI, Anthropic, Apple, Meta, Amazon and Mistral each document a separate search token, so you can refuse training and stay findable. Google-Extended is the one to read carefully — Google says it covers Gemini grounding as well as training, but not Google Search. AI search crawlers (OAI-SearchBot, Claude-SearchBot, PerplexityBot, Googlebot, Meta-WebIndexer, Amzn-SearchBot, Bingbot, DuckAssistBot, MistralAI-Index, PetalBot, YandexAdditional, Diffbot and AIWebIndex) build the index an assistant searches when it answers; blocking one is how you stop appearing in that assistant's cited results. User-requested fetches happen when a person asks an assistant to read a page. ChatGPT-User, Perplexity-User, Google-Agent, Google-GeminiNotebook, Meta-ExternalFetcher and Amzn-User may not follow robots.txt for these, by their operators' own account; the operators of Claude-User and MistralAI-User say they do, and for Diffbot-User the operator does not say. Where a fetcher may ignore robots.txt, the operator's published IP list, if it has one, is the documented way to recognise it; each crawler's page says whether one exists.

Search engines whose index also feeds AI answers

Googlebot, Bingbot and PetalBot are search-engine crawlers first, and each one's operator says the same crawl serves its AI answers. Google says AI is built into Search, so there is no separate robots.txt token for AI Overviews or AI Mode: a Disallow for Googlebot stops Google crawling those pages for Google Search itself, and Google-Extended does not affect Search. Microsoft says Bing search, Copilot and grounding results share one crawl and index, and points to NOINDEX, NOARCHIVE and NOCACHE page directives, not robots.txt, to limit what Copilot uses. To stay in these search engines but out of their AI answers, the controls are page-level, and each crawler's page quotes them. The generator never names these 3 tokens unless you choose them one by one.

Tokens that may do nothing

anthropic-ai, Claude-Web, Google-NotebookLM, FacebookBot and cohere-ai still turn up in robots.txt files, but the current crawler documentation of Anthropic, Google, Meta and Cohere does not list them as a current token, so a line naming one may do nothing. Each page says when we checked, quotes the operator where it calls a token former or replaced, and names the tokens that operator documents now. The checker badges any group in your file that names one.

How to read this directory

Use the data

The whole directory is one JSON file: resulthack.com/crawlers.json. Each record has the token, operator, purpose, what it does, robots.txt behaviour, verification method and IP list, block effect, the operator's sentences quoted word for word, and every source with the date we checked it.

Made with AI tools.