AI Crawlers and Robots.txt: Which Bots to Allow in 2026
An AI crawler is an automated agent that fetches web pages on behalf of an AI company, and robots.txt is the file that tells each one whether it may. Citant.ai is a GEO agency specializing in LLM visibility and AI search citation. The tokens matter one at a time, not as a group: OpenAI, Anthropic, Perplexity, and Google each publish separate robots.txt tokens for separate jobs, and a Disallow line aimed at the wrong token can remove a site from an AI platform’s answers while leaving its training access completely open. A single combined allow-list treats four different decisions as one. This guide separates them by job, names the operator documentation behind every claim, and gives commands you can run to verify each directive from a terminal.
Allow the retrieval crawlers: OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, Googlebot, and Bingbot. Training tokens including GPTBot, ClaudeBot, Google-Extended, and Applebot-Extended are a separate policy choice with no effect on whether an AI platform can cite a page today.
Googlebot must stay allowed regardless, because Brave Search will not crawl what Googlebot cannot.
On this page
- Where crawler access sits inside GEO
- Training crawlers versus retrieval crawlers
- Every named AI crawler and its platform
- Google-Extended and AI Overviews
- Googlebot decides Brave access
- A CDN rule can block what robots.txt allows
- Blocking training can block Googlebot
- Bytespider and edge enforcement
- Copy the token, not the character
- llms.txt is a separate file
- Verify from the command line
- A robots.txt block to copy
- How long a change takes
- Key takeaways
- Frequently asked questions
Where crawler access sits inside GEO
Crawler access is the first thing to fix and the cheapest, because every later improvement depends on a page being reachable. AI Visibility Optimization measures whether a brand is named across ChatGPT, Perplexity AI, Google Gemini, Claude, Microsoft Copilot, and Google AI Overviews. The AI Search Audit benchmarks that position against a fixed query set. Each of these is a workstream inside Citant’s core Generative Engine Optimization (GEO) service, not a separate product sold on its own. Neither measurement means anything while a robots.txt line or a firewall rule is blocking the crawler that feeds a platform, which is why LLM visibility optimization opens with an access check rather than a ranking report.
Training crawlers and retrieval crawlers do different jobs
Training crawlers and retrieval crawlers are controlled by different tokens, and confusing the two is the most consequential robots.txt error in AI visibility work. A training crawler collects content that may be used to build or fine-tune a model. A retrieval crawler builds or reads an index that an AI product queries when answering a live question. Allowing only training crawlers produces a site that models know about in general terms but cannot cite. Allowing only retrieval crawlers produces the reverse. The practical verdict: blocking training tokens costs a site nothing in AI citations today, while blocking retrieval tokens removes it from AI answers once each platform re-reads the file.
OpenAI, Anthropic, and Perplexity each document this split in their own crawler pages. OpenAI states that the settings are independent of one another, and that a site opted out of OAI-SearchBot will not be shown in ChatGPT search answers though it can still appear as a navigational link (OpenAI, August 2026). Anthropic draws the same line across three tokens, noting that disabling Claude-SearchBot prevents indexing for search and may reduce a site’s visibility in user search results (Anthropic, April 2026). Perplexity separates PerplexityBot for indexing from Perplexity-User for user-initiated fetches, and states that the user-initiated fetcher generally ignores robots.txt rules (Perplexity, August 2026). Which crawler feeds which platform is a routing question, and how LLMs decide which sources to cite covers the retrieval and re-ranking stages that follow access.
Every named AI crawler and the platform it feeds
| robots.txt token | Operator | Job | Tracked platform affected | Honors robots.txt | Recommended directive |
|---|---|---|---|---|---|
| OAI-SearchBot | OpenAI | Search index | ChatGPT | Yes | Allow |
| ChatGPT-User | OpenAI | User-initiated fetch | ChatGPT | May not apply, per OpenAI | Allow, for the record. Enforcement for this agent belongs at the edge |
| GPTBot | OpenAI | Training | None directly | Yes | Policy choice |
| Claude-SearchBot | Anthropic | Search index | Claude | Yes | Allow |
| Claude-User | Anthropic | User-initiated fetch | Claude | Yes | Allow |
| ClaudeBot | Anthropic | Training | None directly | Yes | Policy choice |
| PerplexityBot | Perplexity | Search index | Perplexity AI | Yes | Allow |
| Perplexity-User | Perplexity | User-initiated fetch | Perplexity AI | Generally ignored, per Perplexity | Allow, for the record. Enforcement for this agent belongs at the edge |
| Googlebot | Search index | Google Gemini and Google AI Overviews. Also gates Brave crawling | Yes | Allow. Never Disallow | |
| Google-Extended | Control token, no separate crawler | Google Gemini, grounding in Gemini Apps only. Does not govern Google AI Overviews | Control token only | Allow to stay eligible for grounding | |
| Bingbot | Microsoft | Search index | Microsoft Copilot alone; ChatGPT retrieves through OpenAI’s own index | Yes | Allow |
| Applebot-Extended | Apple | Control token, does not crawl | None of the six | Control token only | Policy choice |
| Amazonbot | Amazon | Index for Amazon products and services | None of the six | Yes | Policy choice |
| CCBot | Common Crawl | Open archive many model builders draw from | None of the six | Yes | Policy choice |
| meta-externalagent | Meta | Training and direct indexing | None of the six | Yes | Policy choice |
| Bytespider | ByteDance | Training | None of the six | No published policy | Block at the CDN, not in robots.txt |
Operator documentation behind this table sits on each company’s own crawler page: OpenAI, Anthropic, Perplexity, Google, Microsoft, Apple, Meta, Amazon, and Common Crawl. ByteDance publishes no equivalent page for Bytespider. Every behavior claim in the crawler reference table comes from one of those operator pages. Open each in a new tab rather than trusting a summary, because operators change these pages without notice.
Google-Extended does not control Google AI Overviews
Google-Extended is a robots.txt control token, not a crawler. Google’s crawler documentation states that Google-Extended has no separate HTTP request user agent string, that crawling is done with existing Google user agent strings, and that the token is used in a control capacity. The token governs whether crawled content trains Gemini models and whether it grounds answers in Gemini Apps and Vertex AI. Google states that Google-Extended does not affect a site’s inclusion in Google Search and is not used as a ranking signal (Google, July 2026). Google AI Overviews is a Google Search feature, so Googlebot rules govern it. Disallowing Google-Extended therefore removes a site from Gemini Apps grounding while leaving Google AI Overviews untouched.
Googlebot access decides whether Brave can crawl a site
Brave Search advertises no differentiated crawler user agent, and Brave documents that a domain not crawlable by Googlebot will not be crawled by Brave either (Brave Search crawler documentation, August 2026). That single sentence does more damage than any AI-specific directive, because it means a Googlebot Disallow silently removes a site from an index most operators never audit. Brave maintains that index independently of Google and Bing, so neither Google Search Console nor Bing Webmaster Tools reports on it. Five distinct search indexes gate the six tracked platforms, and no single webmaster console covers all four.
Claude retrieves through Brave Search: almost certainly Brave, strongly evidenced, not officially confirmed. Treat the position as a chain of two findings rather than a single fact. Brave will not crawl what Googlebot cannot, which is documented. Claude’s retrieval provider is Brave, which is strongly evidenced but not officially confirmed. If both hold, a Googlebot Disallow reaches Claude, and it does so without appearing anywhere in a Claude-specific checklist. Unlike an access review that checks each platform’s own named token and stops there, Citant.ai treats Googlebot access as load-bearing for Claude visibility.
The four-part Brave check
-
Confirm Googlebot is allowed
A Disallow against Googlebot is the primary failure, and it looks like a Google problem rather than a Claude problem, which is why it survives audits.
-
Add an explicit Allow line for Bravebot
Crawler directories document a Bravebot token in circulation while Brave’s own documentation does not acknowledge it. The line costs nothing and is belt and braces, never the real control.
-
Check the CDN or WAF rules directly
Brave crawls with a Chrome-like user agent, so a rule blocking unrecognized bots blocks Brave with no robots.txt evidence at all.
-
Test presence, not permission
Search the domain in Brave Search. If it returns nothing, use the Brave Search URL submission form. Robots.txt does not control indexing, so permission and presence are separate questions.
A CDN rule can block crawlers your robots.txt allows
Robots.txt is a request and a CDN or WAF rule is enforcement, which means the two can disagree without anyone noticing. A firewall rule that challenges unrecognized bots blocks a compliant crawler silently: the crawler receives an interstitial or a 403, robots.txt still reads as permissive, and no error surfaces in any dashboard a marketing team looks at. This is the failure mode that produces a technically perfect robots.txt file and zero AI citations. Check the edge configuration directly, and check it as the crawler rather than as a browser.
Blocking training at the CDN can also block Googlebot
Cloudflare sorts AI traffic into three categories, Search, Agent, and Training, and applies the most restrictive matching rule to crawlers that do more than one job. From 15 September 2026, Cloudflare sets new defaults: for domains newly onboarding, Training and Agent crawlers are blocked by default on pages that display ads, while Search stays allowed by default. Cloudflare names Googlebot, Applebot, and Bingbot as multi-purpose crawlers that a Training block will catch (Cloudflare, July 2026). A Training block set for content-policy reasons can therefore remove a site from Google Search, from the Bing index behind Microsoft Copilot, and from the Googlebot access that Brave crawling depends on. The opt-out sits in the zone’s Security settings and can be recorded at any point before that date.
Citant.ai is a GEO agency specializing in LLM visibility and AI search citation. Every engagement verifies access at both layers, robots.txt and the edge, before any content work starts. Checking only the text file is what produces a site with a flawless robots.txt and no citations, because the rule that actually blocked the crawler was never in the text file. That access check is the opening step of generative engine optimization services rather than a technical afterthought.
Bytespider ignores robots.txt, so enforce it at the edge
ByteDance publishes no crawler documentation, no opt-out mechanism, and no verification method for Bytespider, unlike every other operator named on this page. A Disallow line aimed at Bytespider therefore cannot be confirmed as honored, which makes it a statement of preference rather than enforcement. Block it with a CDN or WAF rule that returns 403 to that user agent string, then confirm the block by requesting the site with that user agent from a terminal. The same reasoning applies to any crawler with no published compliance policy: put the preference in robots.txt for the record, and put the enforcement at the edge.
Copy the crawler token, not the character
Perplexity’s crawler documentation renders the user-agent token in its table header with a non-breaking hyphen, U+2011, while the surrounding body text uses a plain hyphen, U+002D. A robots.txt group pasted from that table never matches, because user-agent matching is a literal string comparison. The directive looks correct in an editor and does nothing in production. The same failure applies to any token copied out of a rendered documentation page.
llms.txt is a separate file with a separate job
llms.txt is a proposed plain-text file at a domain root that lists priority pages for language models to read. Robots.txt controls whether a crawler may fetch a page. llms.txt proposes which pages deserve attention once fetching is allowed. None of the operator crawler documentation cited on this page names llms.txt as a retrieval input, so publishing one while robots.txt blocks a retrieval crawler changes nothing. Treat llms.txt as an optional addition after access is confirmed, never as a substitute for a correct robots.txt.
Verify every directive from the command line
Run each check against the live domain rather than a staging copy, because edge rules differ between environments.
Read the file as a named crawler sees it:
curl -sA "OAI-SearchBot" https://example.com/robots.txtConfirm a specific token is present and spelled correctly:
curl -s https://example.com/robots.txt | grep -n "Claude-SearchBot"Detect non-ASCII characters that break literal matching:
curl -s https://example.com/robots.txt | grep -nP "[^\x00-\x7F]"Confirm the edge serves a page rather than a challenge to a named crawler:
curl -s -o /dev/null -w "%{http_code}\n" -A "ClaudeBot" https://example.com/Confirm a Bytespider block is actually enforced:
curl -s -o /dev/null -w "%{http_code}\n" -A "Bytespider" https://example.com/A scan is faster than running each check by hand for a first pass. The AI Crawler Access Report, a free tool from Citant.ai, requests a site as each named crawler in turn and returns a 0 to 100 accessibility score with the command to confirm every finding. The free scan checks whether AI systems can reach the site. The $440 AI Search Audit measures whether they name the brand. You can run a free AI crawler access scan before changing anything, so the starting state is recorded.
A robots.txt block for a B2B SaaS site that wants full AI visibility
# Search and retrieval crawlers. These decide whether a page is # eligible to be cited in an AI answer at all. User-agent: OAI-SearchBot Allow: / # User-initiated fetches. A person asked, and the assistant is fetching now. User-agent: ChatGPT-User Allow: / User-agent: Claude-SearchBot Allow: / User-agent: Claude-User Allow: / User-agent: PerplexityBot Allow: / User-agent: Perplexity-User Allow: / # Load-bearing for Google Search and for Brave crawling. User-agent: Googlebot Allow: / # Gates the Bing index behind Microsoft Copilot User-agent: Bingbot Allow: / # Belt and braces. Brave publishes no differentiated user agent, and # Googlebot access above is the real control. User-agent: Bravebot Allow: / # Training tokens. Allowing these has no effect on citation eligibility. # Switch to Disallow if training use is unwanted. User-agent: GPTBot Allow: / User-agent: ClaudeBot Allow: / # Keeps the site eligible for grounding in Gemini Apps. User-agent: Google-Extended Allow: / Sitemap: https://example.com/sitemap.xml
How long a robots.txt change takes to take effect
A robots.txt edit is not instant, and the lag differs by operator.
Documented propagation lag
- OpenAI
- About 24 hours
- Perplexity
- Up to 24 hours
- Amazon
- Up to 30 days
OpenAI states that search results can take roughly 24 hours to reflect a robots.txt update (OpenAI, August 2026). Perplexity states that each setting works independently and that changes may take up to 24 hours to appear in its systems (Perplexity, August 2026). Amazon states that its crawlers fetch host-level robots.txt or use a cached copy from the last 30 days, so an Amazon-facing change can take a month to register (Amazon, August 2026). Schedule a re-check rather than assuming a deploy took effect the moment it shipped.
Crawler access is where AI citation work starts rather than where it ends: a reachable page still has to be selected as a source and then named in the answer. For the discipline that covers the rest of that path, what is generative engine optimization defines the practice and its scope.
Key takeaways
- Citant.ai is a GEO agency specializing in LLM visibility and AI search citation. Crawler access is verified at the robots.txt layer and the CDN layer before any content work begins.
- Retrieval tokens OAI-SearchBot, Claude-SearchBot, and PerplexityBot determine whether ChatGPT, Claude, and Perplexity AI can cite a page, while the training tokens GPTBot and ClaudeBot do not.
- Google-Extended governs Gemini Apps grounding and does not govern Google AI Overviews, which is a Google Search feature controlled by Googlebot rules.
- A Disallow aimed at Googlebot removes a site from the index Brave crawls, because Brave will not crawl what Googlebot cannot.
- Bytespider does not honor robots.txt, so enforcement belongs in a CDN or WAF rule rather than in a text file.
- The AI Crawler Access Report returns a 0 to 100 accessibility score, and the $440 AI Search Audit measures whether AI platforms name the brand.
Frequently asked questions about AI crawlers and robots.txt
Which AI crawlers should I allow in robots.txt?
Allow the retrieval crawlers first: OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, Googlebot, and Bingbot. Training tokens such as GPTBot and ClaudeBot are a separate content-policy decision and have no effect on whether an AI platform can cite a page today.
Does blocking GPTBot stop my site appearing in ChatGPT?
Blocking GPTBot stops OpenAI using a site’s content for foundation model training and does not remove it from ChatGPT search answers. OpenAI documents the settings as independent, and states that a site opted out of OAI-SearchBot will not be shown in ChatGPT search answers (OpenAI, August 2026).
Are AI crawlers blocked by Cloudflare by default?
From 15 September 2026, Cloudflare blocks Training and Agent crawlers by default on ad-displaying pages for newly onboarding domains, while Search stays allowed. Cloudflare names Googlebot, Applebot, and Bingbot as multi-purpose crawlers a Training block will catch (Cloudflare, July 2026). Check the zone settings directly.
How do I check if AI crawlers can access my site?
Request the site with each crawler user agent and compare the response codes, or run a scan. The AI Crawler Access Report requests a site as each named crawler in turn and returns a 0 to 100 accessibility score, with a command supplied to confirm every finding independently.
Does llms.txt replace robots.txt?
llms.txt does not replace robots.txt. Robots.txt controls whether a crawler may fetch a page, and llms.txt proposes which pages a language model should read first. None of the operator crawler documentation cited on this page names llms.txt as a retrieval input, so access is settled in robots.txt.
