Test a robots.txt before publishing it
Result
| Crawler | Access | Rule applied |
|---|
How to use the tool
Paste the URL of a page on your site and click “Test”. The tool fetches the robots.txt file at the root of the site, applies its rules to the page’s path and shows, crawler by crawler, whether it is allowed or blocked. The right-hand column quotes the line of the file that decides; those lines are also highlighted in the file shown below the table.
The result applies to the page you entered: a robots.txt can open the blog and close the customer area, so test the pages that matter. To check a change before putting it live, open “Test a robots.txt before publishing it”, paste the new content and a page path: the analysis then runs in your browser, with nothing sent anywhere.
Four families of crawlers
AI companies do not send a single crawler onto the web. Most use several, each with its own name in robots.txt, and each name is controlled separately. OpenAI says so plainly: a site can allow OAI-SearchBot to appear in ChatGPT search results while disallowing GPTBot, so that its content is not used to train the models.1
- Training. GPTBot, ClaudeBot, Meta-ExternalAgent, MistralAI-Training or Amazonbot collect pages that may be used to train models. Google-Extended and Applebot-Extended work differently: they are control tokens with no crawler of their own, telling Google2 and Apple3 whether content already crawled may be used for their models.
- Search and answers. OAI-SearchBot, Claude-SearchBot, PerplexityBot, Meta-WebIndexer, MistralAI-Index, Amzn-SearchBot or DuckAssistBot index pages to cite them in their engine’s answers. This is the family that matters for GEO.
- Visits on user request. ChatGPT-User, Claude-User, Perplexity-User, Meta-ExternalFetcher, Amzn-User or MistralAI-User open a page because a user has just asked a question that needs it.
- Open archive. CCBot feeds Common Crawl, an archive of the web that anyone can download and analyse.
The 23 crawlers tested
The list and the roles come from each company’s documentation, reviewed on October 16, 2026.
| Crawler | Role according to its operator |
|---|---|
| GPTBot, OAI-SearchBot, ChatGPT-User | OpenAI: model training, ChatGPT search, visits started by a ChatGPT user.1 |
| ClaudeBot, Claude-SearchBot, Claude-User | Anthropic: training, search result quality, visits on behalf of Claude users.4 |
| PerplexityBot, Perplexity-User | Perplexity: links in search results, no model training; visits on user request.5 |
| Googlebot, Google-Extended | Google: Googlebot crawls for Search, including AI Overviews and AI Mode;6 Google-Extended controls training and grounding for Gemini and Vertex AI.2 |
| Applebot, Applebot-Extended | Apple: search in Siri, Spotlight and Safari; opt-out from training Apple Intelligence models.3 |
| Meta-ExternalAgent, Meta-WebIndexer, Meta-ExternalFetcher | Meta: model training, Meta AI search, visits on user request.7 |
| Amazonbot, Amzn-SearchBot, Amzn-User | Amazon: products and services, possible training; Alexa search; visits on user request.8 |
| MistralAI-Training, MistralAI-Index, MistralAI-User | Mistral AI: training, search index, visits on user request.9 |
| DuckAssistBot | DuckDuckGo: assisted answers that cite their sources, no training.10 |
| CCBot | Common Crawl: open archive of the web.11 |
Opt out of training without vanishing from answers
This is the most requested setup, and it fits in a few lines. Each training crawler gets its own group, and the “*” group stays open for everyone else:
User-agent: GPTBot User-agent: ClaudeBot User-agent: Google-Extended User-agent: Applebot-Extended User-agent: Meta-ExternalAgent User-agent: MistralAI-Training Disallow: / User-agent: * Allow: /
Search crawlers are not named: they follow the “*” group and stay allowed. Closing one of them has effects that the operators describe themselves. According to OpenAI, a site that disallows OAI-SearchBot no longer appears in ChatGPT search answers, except as a navigational link.1 Anthropic warns that disallowing Claude-SearchBot may reduce the site’s visibility in search results,4 and Perplexity recommends allowing PerplexityBot to appear in its results.5
Google works differently. Google-Extended has no effect on inclusion in Google Search or on ranking.2 AI Overviews and AI Mode are part of Search: Googlebot controls access to them, and Google points to the nosnippet, data-nosnippet, max-snippet and noindex controls to limit what is shown.6 Blocking Googlebot to stay out of AI Overviews would mean leaving Google altogether.
How a crawler reads your robots.txt
The tool applies the rules Google describes in its robots.txt specification, which follows the Robots Exclusion Protocol standardised as RFC 9309.12
- One group per crawler. The crawler looks for a group with its name. If it finds one, it ignores the “*” group; otherwise the “*” group applies. Several groups with the same name are merged, and consecutive User-agent lines share the same rules.
- The longest rule wins. Between “Allow: /blog/” and “Disallow: /”, the first applies to /blog/article, because it is more specific. When both have the same length, Allow wins.
- Two wildcards. “*” stands for any sequence of characters and “$” marks the end of the URL: “Disallow: /*.pdf$” blocks PDF files, not pages whose URL contains “.pdf?”.
- Case. Field and crawler names are case-insensitive, paths are not: “/Blog/” and “/blog/” are two different rules.
- Missing file or error. A 404 or any other 4xx error except 429 counts as no file: nothing is blocked. A 5xx server error, on the other hand, makes Google pause crawling. Beyond five redirects the file is treated as missing, and only its first 500 KiB are read.12
What robots.txt does not guarantee
robots.txt is an instruction, not a lock. Crawlers acting on a user’s request are the first to set it aside, and their operators say so: OpenAI states that robots.txt rules may not apply to ChatGPT-User,1 Perplexity that Perplexity-User generally ignores them,5 Meta that Meta-ExternalFetcher may bypass them,7 Amazon that Amzn-User may not follow them all.8 The tool flags it when one of them is blocked.
Conversely, a crawler allowed by robots.txt can be turned away earlier, by the host or by a web application firewall. Google reminds site owners that crawling must be allowed in robots.txt and by any CDN or hosting infrastructure,6 and Perplexity explains how to open its crawlers in Cloudflare or AWS rules.5 Those blocks do not show in robots.txt: only server logs reveal them.
Finally, a crawler’s name can be spoofed. OpenAI, Perplexity, Amazon, Common Crawl and DuckDuckGo publish their crawlers’ IP addresses,1, 5, 8, 11, 10 and Apple and Google let you check them with a reverse DNS lookup.3, 2 A visit that claims to be GPTBot from another address does not come from OpenAI.
AI crawlers and GEO
A page that search crawlers cannot read will not be cited in ChatGPT, Claude or Perplexity answers. Checking robots.txt is therefore the first step of optimising for generative engines, before any work on the content. On Google’s side, the rules are those of classic search, and the links AI Mode and AI Overviews give to websites depend first on crawling by Googlebot. Once access is confirmed, the next step is to polish what these engines show of your pages, starting with the length of the title and meta description.
Frequently asked questions
How do I block GPTBot in robots.txt?
Add a group with its name: a “User-agent: GPTBot” line followed by “Disallow: /”. The block covers the whole site; to close only part of it, replace “/” with the folder’s path. OpenAI states that the GPTBot setting is independent of the OAI-SearchBot one.1
Does blocking GPTBot keep my site out of ChatGPT?
No. GPTBot is used for model training. Appearing in ChatGPT search answers depends on OAI-SearchBot, and visits started by a user go through ChatGPT-User.1
Does Google-Extended affect Google SEO?
No. According to Google, Google-Extended affects neither a site’s inclusion in Google Search nor its ranking. It controls whether content is used to train Gemini and to ground its answers, in Gemini apps and on Vertex AI.2
How can I limit what Google’s AI Overviews take from my pages?
With the controls that govern display in Search: nosnippet, data-nosnippet, max-snippet or noindex. Googlebot’s robots.txt rules control access to all of Google Search, AI Overviews included; closing them removes the site from classic results at the same time.6
Why does a blocked crawler still visit my site?
Three explanations come up: a crawler acting on a user’s request that does not apply robots.txt, an older version of the file still cached by the crawler, or a visitor spoofing its name. The IP addresses published by the operators help sort this out in server logs.
Does the tool see blocks set by my host or firewall?
No. It reads robots.txt and applies its rules. A firewall or a service such as Cloudflare can refuse a crawler that robots.txt allows; only server logs, or that service’s settings, show it.
Sources
Passages on this page that rely on a source point to one of these references.
- OpenAI, documentation on OpenAI’s crawlers (GPTBot, OAI-SearchBot, ChatGPT-User). developers.openai.com ↑
- Google, “Google’s common crawlers” (including Google-Extended), Google Search Central. developers.google.com ↑
- Apple, support page on Applebot and Applebot-Extended. support.apple.com ↑
- Anthropic, “Does Anthropic crawl data from the web, and how can site owners block the crawler?”, help center. support.claude.com ↑
- Perplexity, documentation on Perplexity’s crawlers (PerplexityBot, Perplexity-User). docs.perplexity.ai ↑
- Google, “AI features and your website”, Google Search Central. developers.google.com ↑
- Meta, documentation on Meta’s web crawlers (Meta-ExternalAgent, Meta-WebIndexer, Meta-ExternalFetcher). developers.facebook.com ↑
- Amazon, documentation on Amazonbot. developer.amazon.com ↑
- Mistral AI, documentation on Mistral AI’s crawlers. docs.mistral.ai ↑
- DuckDuckGo, help page on DuckAssistBot. duckduckgo.com ↑
- Common Crawl, CCBot page. commoncrawl.org ↑
- Google Search Central, robots.txt specification. developers.google.com ↑