AI crawlers do different jobs: some build a search index, some collect training data and some fetch a page because a person asked. Vendors let you control these separately, so blocking one by name does not have to block another. Decide your policy first, then change robots.txt, test every layer in front of it, and keep private content behind authentication, since robots.txt is not security.
Choose the policy before the rule
The question “should I block AI crawlers?” has no single answer, because the bots are not one thing. The documentation from the vendors divides them into roughly three jobs, and each job has a different consequence for you.
- Search
Builds the index behind AI search features. Blocking can remove you from those answers.
OAI-SearchBot, Claude-SearchBot, PerplexityBot, Googlebot, Applebot - Training
Collects content that may be used to train models. Blocking signals you do not consent.
GPTBot, ClaudeBot, Google-Extended, Applebot-Extended - User-initiated
Fetches a page when a person asks an assistant about it. Robots rules may not apply.
ChatGPT-User, Claude-User, Perplexity-User
| Vendor | Token | Job | What the documentation says |
|---|---|---|---|
| OpenAI | OAI-SearchBot | Search | Surfaces sites in ChatGPT’s search features. Blocking it removes the site from search answers, though it may still appear as a link. Changes take about 24 hours.[1] |
| GPTBot | Training | Crawls content that may train foundation models. Disallowing it signals that content should not be used for training.[1] | |
| ChatGPT-User | User-initiated | Visits triggered by users. Robots.txt rules may not apply, and it is not used to decide search eligibility.[1] | |
| Anthropic | Claude-SearchBot | Search | Crawls to improve search result quality. Disabling it may reduce visibility in search.[2] |
| ClaudeBot | Training | Collects content that could contribute to training. Restricting it signals future material should be excluded.[2] | |
| Claude-User | User-initiated | Accesses sites when a user asks a question that requires it.[2] | |
| Googlebot | Search | The normal search crawler. AI Overviews and AI Mode use the same index; pages must be indexed and snippet-eligible. Control previews with nosnippet, max-snippet or noindex.[3] | |
| Google-Extended | Training and grounding | A token for Gemini training and grounding in Gemini Apps and Vertex AI. It does not affect inclusion in Google Search, and it has no separate user agent.[4] | |
| Perplexity | PerplexityBot | Search | Surfaces and links sites in Perplexity search. It is not used for foundation model training.[5] |
| Perplexity-User | User-initiated | Supports user actions. Because a person requested the fetch, it generally ignores robots.txt.[5] | |
| Apple | Applebot | Search | Powers search in Spotlight, Siri and Safari. Data may also help train Apple’s models unless you disallow Applebot-Extended.[6] |
| Applebot-Extended | Training opt-out | Disallowing it opts content out of generative model training. Applebot may still crawl for search.[6] |
Each setting is independent. OpenAI says a site can allow OAI-SearchBot for search and disallow GPTBot for training, and that when both are allowed it may use a single crawl for both purposes.[1] The Web Almanac found these bots appearing more often in robots.txt files: GPTBot was named in about 4.5% of desktop sites’ files in 2025, up from 2.9% in 2024, with ClaudeBot at 3.6%, Google-Extended at 3.4% and PerplexityBot at 2.8%.[7]
Review the whole delivery path
Robots.txt is only one layer. A crawler’s request passes through a CDN or firewall, then your server, then your robots rules and finally any page-level directives. A block at any layer produces the same outcome, and it is easy to set one and forget another. Cloudflare, for example, announced on 1 July 2025 that it was changing its default to block AI crawlers unless they pay creators for content, so check that setting if your site sits behind it and you meant to allow some bots.[8] Vercel’s analysis of AI crawler traffic notes that a platform firewall rule can block AI bots separately from robots.txt.[9]
- CDN and firewall
Bot protection, rate limits, country rules.
- Server
Status codes, redirects, login walls.
- robots.txt
Per-agent rules for each crawler.
- Page directives
noindex, nosnippet and max-snippet.
Check also that robots.txt itself is healthy. Across the 2025 Web Almanac crawl, about 85% of sites returned a valid 200 for it and about 13% returned a 404, which means no restrictions at all.[7] Google’s robots.txt report in Search Console shows which files Google found for your hosts, when they were last crawled and any errors.[10]
Keep private content private
Robots.txt is a convention, not a lock. The standard says its rules are not a form of access authorization,[11] and the file is public, so a Disallow line lists the very paths you wanted to hide. Anything confidential belongs behind authentication. For pages that should not appear in results, use noindex and leave the page crawlable so the directive can be read, as the crawl and index chapter explains. OpenAI notes that a page blocked for its search crawler can still appear as a navigational link.[1]
Bear in mind what blocking cannot undo. A crawler you disallow today does not remove what it fetched before, and user-initiated fetchers may not follow robots rules at all, since a person asked for the page. If material must not be fetched by anyone, it should not be publicly reachable.
Write a policy matrix
Write the decision down per service before touching the file. A business can reasonably choose any of these, and each trade-off is yours to weigh. This is not legal advice, and licensing or copyright concerns may point to a different choice.
| Policy | Search crawlers | Training crawlers | Trade-off |
|---|---|---|---|
| Open | Allow | Allow | Maximum reach. Your content may also be used for model training. |
| Search yes, training no | Allow | Disallow | Stays eligible for AI search results and opts out of training use that vendors let you control. |
| Closed | Disallow | Disallow | Removes you from the AI search features that depend on those crawlers, and does not stop user-initiated fetches. |
The second policy looks like this. Note the repeated rule in the search group: Google’s crawlers apply only the one group that most specifically matches their user agent and ignore the others.[12] A bot given its own group no longer reads the wildcard group, so anything you want to apply to it must be repeated.
# Search crawlers welcome, with the same exclusions as everyone User-agent: OAI-SearchBot User-agent: Claude-SearchBot User-agent: PerplexityBot Disallow: /cart/ # Training crawlers blocked User-agent: GPTBot User-agent: ClaudeBot User-agent: Google-Extended User-agent: Applebot-Extended Disallow: / # Everyone else User-agent: * Disallow: /cart/ Sitemap: https://example.com/sitemap.xml
Test a change before broad release
After editing, fetch the file you actually serve, since caches, redirects and CDNs can change it: curl -s https://example.com/robots.txt. Keep it under 500 KiB, because Google ignores content beyond that limit.[12] Remember the delays: Google generally caches robots.txt for up to 24 hours,[12] and OpenAI says changes can take about 24 hours to be reflected.[1] Then check the layers in front of it by requesting a page with each crawler’s name in the user agent string.
for ua in OAI-SearchBot GPTBot ClaudeBot PerplexityBot; do
printf "%s " "$ua"
curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 (compatible; $ua)" https://example.com/
done
A 403 or 429 for a bot you meant to allow points to a firewall or rate limit. This test is a spot check, not proof: some firewalls verify bots by IP address and not by user agent. The vendors publish their address ranges, and Anthropic warns that blocking its IPs may not opt you out reliably because the bots could then not read your robots.txt.[2]
Interpret the logs narrowly
Server logs show which bots visited, how often and what they requested, which is useful for confirming that a rule works. They do not show that the content was used, cited or ranked, and a visit by an AI crawler is not an answer appearance. User agent strings can be spoofed, so verify important cases against the vendors’ published IP ranges. For scale: in Vercel’s December 2024 analysis, GPTBot made about 569 million requests in a month across the Vercel network, against 4.5 billion for Googlebot, and a third of ChatGPT’s and Claude’s fetches returned 404s.[9] Use logs to check access, not to guess at visibility; for that, use the method in the citation audit chapter.
Crawler policy record
- Service
- The vendor and the specific token, with the date the documentation was checked.
- Job
- Search, training or user-initiated.
- Decision
- Allow or disallow, and the business reason.
- Layers
- robots.txt, CDN or firewall rule, server rule. Who owns each.
- Test
- The command and result that proves the intended behavior.
- Review
- The date of the next check. Vendors add and rename bots.
Apply it to your website
- You have written down a policy for search, training and user-initiated access, per vendor.
- robots.txt names each crawler’s documented token, and repeated rules appear in every group that needs them.
- CDN, firewall and hosting rules were checked and match the policy.
- Private material is behind authentication, and pages to exclude from results carry noindex and stay crawlable.
- robots.txt returns 200, stays under 500 KiB and has been tested after each change.
- You verify bots against published IP ranges and do not treat crawl volume as evidence of citations.
- The policy record has an owner and a review date, because bots are added and renamed.
Sources and further reading
Sources were consulted in October 2026 and the numbered notes above point here. Platform documentation changes often, so check the linked page before you act on a platform-specific detail. Worked scenarios are illustrative unless identified otherwise; methods and worksheets are Vantle’s editorial guidance.
- OpenAI: Overview of OpenAI crawlersOAI-SearchBot, GPTBot, ChatGPT-User and OAI-AdsBot, and how each respects robots.txt.
- Anthropic: Does Anthropic crawl data from the web, and how can site owners block the crawler?ClaudeBot, Claude-User and Claude-SearchBot, IP ranges and Crawl-delay.
- Google Search Central: AI features and your websiteEligibility, preview controls and the AI features’ use of the Search index.
- Google Search Central: Google’s common crawlersThe Google-Extended token and what it does and does not control.
- Perplexity: Perplexity crawlersPerplexityBot and Perplexity-User.
- Apple: About ApplebotApplebot, Applebot-Extended and what each controls.
- HTTP Archive: Web Almanac 2025, SEOrobots.txt status codes and the share of sites naming AI crawlers.
- Cloudflare: Content Independence Day (1 July 2025)The change of default to blocking AI crawlers unless they pay.
- Vercel: The rise of the AI crawler (December 2024)Crawler volumes, 404 rates and firewall options on the Vercel network.
- Search Console Help: robots.txt reportWhich robots.txt files Google found and any errors.
- IETF RFC 9309: Robots Exclusion ProtocolThe standard, including that rules are not access authorization.
- Google Search Central: How Google interprets the robots.txt specificationGroup matching, precedence, caching and the 500 KiB limit.