Blog · AI Search

AI Crawlers: How to Control GPTBot, ClaudeBot, OAI-SearchBot and the Rest

AI crawlers come in three kinds: search crawlers that decide whether assistants can cite you, training crawlers that collect data for future models, and fetchers that act for one user. Here is how each one reads robots.txt, why firewalls block them silently, and how to fix every access problem.

Searvia · 10/24/2026 · 16 min read

In short: AI crawlers come in three kinds. Search crawlers (OAI-SearchBot, Claude-SearchBot, PerplexityBot) decide whether ChatGPT, Claude and Perplexity can find and cite your pages. Training crawlers (GPTBot, ClaudeBot, CCBot) and control tokens (Google-Extended, Applebot-Extended) decide whether your content may train future models. User fetchers (ChatGPT-User, Claude-User, Perplexity-User) visit a page because one person asked about it. Allow the search crawlers if you want to appear in AI answers, decide on training separately, and check your firewall, because a CDN rule can block all of them while robots.txt says "allow".

A site owner adds Disallow: / for GPTBot to stay out of training data and believes the job is done. Meanwhile the CDN's bot protection answers every AI user agent with a 403, so ChatGPT search, Claude and Perplexity never see the site at all. Or the opposite: robots.txt blocks everything AI-related, including the search crawlers that would have cited the company in answers.

Both mistakes come from treating "AI crawlers" as one thing. They are not, and each provider documents its bots separately. This guide covers which crawler does what, the three layers that decide whether a crawler actually gets your content, how our free AI crawler checker tests them, and how to fix each problem it can report.

The three kinds of AI crawler

Every major AI provider now separates bots by purpose. The table below follows each provider's own documentation as of October 2026.

Providerrobots.txt tokenKindWhat the provider says it doesrobots.txt
OpenAIOAI-SearchBotSearchSurfaces websites in ChatGPT searchFollowed; opted-out sites "will not be shown in ChatGPT search answers"
OpenAIGPTBotTrainingCrawls content that may be used to train foundation modelsFollowed
OpenAIChatGPT-UserUser fetchVisits a page when a ChatGPT user's question needs it"robots.txt rules may not apply"
AnthropicClaude-SearchBotSearchBrowses the web to improve search result qualityFollowed
AnthropicClaudeBotTrainingCollects content that could contribute to trainingFollowed
AnthropicClaude-UserUser fetchFetches pages when a Claude user asks a questionFollowed; disabling it stops retrieval for user queries
PerplexityPerplexityBotSearchSurfaces and links websites in Perplexity search; not used for trainingFollowed
PerplexityPerplexity-UserUser fetchFetches a page for a user's question"Generally ignores robots.txt rules"
GoogleGoogle-ExtendedControl tokenGemini training and grounding; no separate user agentRead from Google's existing crawlers
AppleApplebot-ExtendedControl tokenTraining of Apple's foundation models; "does not crawl webpages"Read by Applebot
Common CrawlCCBotTraining (open archive)Open web crawl data used widely in research and datasetsBlocked with a robots.txt group

Sources: OpenAI, Anthropic, Perplexity, Google, Apple, Common Crawl.

Three details in that documentation change how you should write rules:

Why AI crawler access matters

An assistant can only cite a page it was able to read. If OAI-SearchBot cannot fetch your pricing page, ChatGPT search will answer "how much does X cost" from someone else's page about you, which may be a reseller, an old review or a competitor's comparison. The same holds for Claude and Perplexity.

Training is a separate question with no single right answer. Some publishers block training crawlers to protect paid content; many software companies allow them because they want future models to know their product. What matters is that the decision is deliberate and that it does not take the search crawlers down with it. Our guide to generative engine optimization covers what happens after access: how assistants pick and quote sources.

Three layers decide whether a crawler gets your content

1. robots.txt

robots.txt is the first thing a well-behaved crawler reads. Under RFC 9309, a crawler looks for the group whose User-agent matches its product token (case-insensitive), combines all groups that match, and falls back to the * group only if no group names it. The most specific rule, the one with the longest matching path, wins, and when an allow and a disallow rule are equally specific, allow should be used.

That fallback is where most surprises come from. A file with only this:

User-agent: *
Disallow: /

blocks every AI crawler, Googlebot and Bingbot together. A file with a GPTBot group and a * group gives GPTBot only its own group; it ignores the * rules completely, which matters if you put important disallows there.

2. The firewall, CDN or host

A request can be refused before robots.txt is consulted. Bot protection products, web application firewalls and some hosts match user agents and answer 403, show a challenge page, or rate-limit with 429. Google notes that 429 and 5xx responses make its crawlers slow down (HTTP status codes and Google Search), and AI crawlers face the same walls.

Cloudflare is the most common case. Its original "Block AI bots" setting, which Cloudflare's docs list as deprecating on September 15, 2026, blocked verified bots classified as crawling for AI training. It was replaced by AI bot traffic policies with three presets, Search, Agent and Training, each of which can be allowed, blocked on all pages, or blocked only on pages that show ads (Cloudflare changelog). For new domains from September 15, 2026, Cloudflare's defaults block Training and Agent bots on pages that display ads while Search stays allowed, and Cloudflare notes that multi-purpose crawlers that combine search and training are affected by the training block. Cloudflare's examples for the Agent preset include chat fetch bots, so check that setting if you want user-requested fetches such as ChatGPT-User to work.

3. Rendering

Even when a crawler gets a 200 response, it may not run your JavaScript. Vercel analyzed AI crawler traffic across its network in December 2024 and reported that "none of the major AI crawlers currently render JavaScript," naming GPTBot, ClaudeBot and PerplexityBot (The rise of the AI crawler). If your text is injected by a client-side app, those crawlers receive an empty shell.

How the Searvia AI crawler checker works

The AI crawler checker runs the same engine as our website SEO checker: you enter a domain or a page address, it reads that page and the site files around it, and runs 38 checks in about 20 seconds. The three checks this tool is about appear first in a highlighted box, the first one expanded. Everything below describes what the code actually does.

Which page. The checker audits the exact address you enter, or the home page if you enter only a domain; robots.txt and other site files are always read from the domain. It tries https:// first and falls back to http://, follows up to six redirects, and identifies itself as SearviaBot/1.0 for the normal visit.

AI crawler access (high priority). It downloads /robots.txt from the final host. A 404 or another 4xx means there is no file, so everything is allowed. A 5xx, a 429 or a connection error means the file is unreachable: every token then shows "Unknown" and the check fails, because RFC 9309 tells crawlers to treat the site as fully blocked. A 200 that returns an HTML page is not a valid robots.txt. For each of 10 crawler tokens and 2 training opt-out tokens, it picks the group that names the token, or the * group if none does, and asks one question: may this token fetch the path of the page you entered (/ for the home page)? It uses the longest-match rule with ties going to allow, understands * and $ wildcards, comments, several User-agent lines sharing one set of rules, and repeated groups for the same token.

Labeled "AI search" in the reportLabeled "AI training" in the reportLabeled as an opt-out token, not a crawler
OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot, Claude-User, Googlebot, BingbotGPTBot, ClaudeBot, CCBotGoogle-Extended, Applebot-Extended

Googlebot and Bingbot are in the search column because Google's AI features run on Googlebot and Microsoft Copilot grounds its answers in Bing. Google-Extended and Applebot-Extended never visit your site; a rule for them only controls whether content that Googlebot or Applebot already crawled may be used for AI training. Each row shows Allowed, Blocked or Unknown.

The firewall test. Next, the checker requests the same page once more with the user agent OpenAI documents for GPTBot (GPTBot/1.4), without following redirects. If the normal visit succeeded (status below 400) but this request gets 401, 403, 429 or 503, the report warns that requests identifying as GPTBot were refused. The request does not come from OpenAI's IP addresses, so the real crawler may be treated differently.

Content without JavaScript (medium priority). It counts the words of main text in the raw HTML, leaving out menus and footers. If there are fewer than 80 words and the page either has an empty app container (<div id="root">, app, __next, __nuxt or svelte) or loads three or more external scripts, it warns that crawlers which do not run JavaScript may see an empty page.

robots.txt (medium priority). The third focused check reports whether robots.txt exists, whether it answers with a server error or an HTML page, and whether it blocks Googlebot from the home page or from the page you entered. Our robots.txt guide covers that file in depth.

Status rules. AI crawler access fails if any of the seven search tokens is blocked or robots.txt cannot be reached. A refused firewall test gives a warning. Blocked training crawlers and opt-out tokens are listed but the check still passes, because that is a legitimate choice.

What the checker does not test

Knowing the limits keeps you from over-reading a green result:

Reading the result

Message in the reportWhat it meansWhat to do
All AI crawlers are allowed.No search or training token is blocked for the page, and the firewall test passedNothing, unless you want to opt out of training
AI search crawlers are allowed; N AI training crawlers or opt-out tokens are blocked (your choice).Search access is fine; training is restrictedConfirm the training block is intended
robots.txt blocks N AI search crawlers.At least one search or user-fetch token cannot read the pageFix the robots.txt groups (step 1 below)
robots.txt could not be read, so crawlers treat the whole site as blocked.robots.txt answered 5xx or 429, or did not answerFix the file's server response (step 5)
Requests identifying as GPTBot were refused with status 403. …The GPTBot-named request was refused while a normal visit worked; a strong hint, not proofCheck bot protection and WAF rules (step 2)
Only N words are visible before JavaScript runs.The raw HTML is nearly emptyServer-render key pages (step 4)

The table under the AI crawler row shows each token as Allowed, Blocked or Unknown, with its label. The overall A+ to F grade covers all 38 checks, weighted by priority: high-priority checks count 10 points, medium 5 and low 2, a warning earns half, and informational results are left out. "Fix these first" lists up to eight problems, high priority first. Each row also shows what share of audited sites pass the same check, which tells you whether a problem is rare or common.

How to fix every problem the checker reports

1. robots.txt blocks AI search crawlers

Open https://yourdomain.com/robots.txt and find the group that applies to each blocked token: a group that names it, otherwise *. Then decide your policy and write it explicitly. This file allows AI search and user fetches, blocks training, and keeps the usual rules for everyone else:

# AI search and user-requested fetches
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
Allow: /

# Model training
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: CCBot
Disallow: /

# Everyone else, including Googlebot and Bingbot
User-agent: *
Disallow: /admin/

Sitemap: https://www.example.com/sitemap.xml

Step by step:

2. The firewall turned the crawler away

If you are sure your firewall verifies bots by IP and the warning comes from our unverified request, confirm with logs: real requests from OpenAI's ranges should be getting 200.

3. Training crawlers are blocked

This is reported but not counted as a failure. Check two things. First, that the block is what you want: blocking Google-Extended also removes your content from grounding in Gemini apps, and blocking Applebot-Extended only affects training, not Apple's search features. Second, that the block lives in a named group and not in *, where it would also catch search crawlers.

4. Only a few words are visible before JavaScript runs

5. robots.txt is missing or blocks Google

The checker tells the cases apart. "No robots.txt file was found" means a 404 or another 4xx, which is harmless: crawlers treat it as "no restrictions". "robots.txt answers with status N" or "could not be reached" means a 5xx, a 429 or a timeout, which is serious: RFC 9309 says a crawler must then assume complete disallow, and Google stops crawling for the first 12 hours (Google's robots.txt specification). Fix the server so /robots.txt answers 200 with plain text, or 404 if you need no rules, and confirm with curl -I https://yourdomain.com/robots.txt. A robots.txt that returns an HTML page is flagged too. If robots.txt blocks Googlebot from /, fix that first: it also blocks Google's AI features and, through Apple's fallback, Applebot.

Verify crawlers in your logs

Anyone can send a request that says "GPTBot". Before you allow a bot through a firewall or blame one for load, verify it:

Worked example (hypothetical)

The following is a hypothetical example, not real data. Larkspur Analytics, an invented B2B dashboard tool, finds that ChatGPT describes its pricing from a 2024 review site. The AI crawler checker reports:

CheckResult
AI crawler accessWarning: "Requests identifying as GPTBot were refused with status 403"
AI crawler rowsGPTBot, ClaudeBot, CCBot blocked (training); all search tokens allowed
Content without JavaScriptWarning: 41 words visible before JavaScript runs
robots.txtPass

The robots.txt was fine; the team had blocked training on purpose. The 403 came from a bot protection rule a contractor enabled during a scraping incident, which matched every user agent containing "bot". The fixes:

A 20-minute AI crawler checklist

How Searvia helps with AI crawlers

The free AI crawler checker gives you the robots.txt picture for 10 AI and search crawlers and 2 training opt-out tokens, a firewall test and the JavaScript check in one run, with a shareable report. The broader AI search readiness checker adds llms.txt, identity markup, question-and-answer content and freshness. If your site runs on Cloudflare, connect Cloudflare with a read-only token: the AI crawlers tab of your website project shows which AI crawlers really visit, how often and which pages they read, with fake crawlers filtered out. Access is only the first step; AI visibility tracking then checks every week whether assistants such as ChatGPT, Gemini and Perplexity actually mention and cite you. Start with the free plan on the pricing page.

Frequently Asked Questions

What are AI crawlers?
AI crawlers are automated clients run by AI companies that fetch web pages. Some index pages so assistants can cite them in answers (OAI-SearchBot, Claude-SearchBot, PerplexityBot), some collect text that may train future models (GPTBot, ClaudeBot, CCBot), and some fetch a page only when a user asks a question (ChatGPT-User, Claude-User, Perplexity-User). Each has its own user agent token that you can address in robots.txt.
Does blocking GPTBot remove my site from ChatGPT search?
No. OpenAI uses separate crawlers: GPTBot collects content that may be used to train its models, while OAI-SearchBot surfaces websites in ChatGPT search. OpenAI says sites opted out of OAI-SearchBot will not be shown in ChatGPT search answers, but blocking only GPTBot is a training decision and does not affect search.
Should I block ClaudeBot?
It depends on whether you want your public content used for training. Anthropic says ClaudeBot collects content that could contribute to training and that blocking it excludes your future materials from training datasets. Search visibility in Claude depends on Claude-SearchBot and Claude-User, which you can allow separately in robots.txt.
Do AI crawlers respect robots.txt?
The search and training crawlers of OpenAI, Anthropic, Perplexity and Common Crawl are documented as following robots.txt. User-triggered fetchers are different: OpenAI says robots.txt rules may not apply to ChatGPT-User, and Perplexity says Perplexity-User generally ignores robots.txt because a user requested the page. Anthropic says Claude-User can be disabled in robots.txt. robots.txt is a request, not access control.
How do I know if my firewall blocks AI crawlers?
Look at what the crawlers actually receive. Our free AI crawler checker sends one request that identifies as GPTBot and warns on a 401, 403, 429 or 503 answer; because that request does not come from OpenAI's addresses, treat it as a strong hint, not proof. For proof, check your server or CDN logs for verified requests from the providers' published IP ranges, or connect Cloudflare to Searvia to see which AI crawlers visit and which pages they read.

Sources

  1. Overview of OpenAI Crawlers – OpenAI
  2. Does Anthropic crawl data from the web, and how can site owners block the crawler? – Claude Help Center
  3. Perplexity Crawlers – Perplexity
  4. Google's common crawlers – Google Search Central
  5. About Applebot – Apple Support
  6. CCBot – Common Crawl
  7. AI features and your website – Google Search Central
  8. RFC 9309: Robots Exclusion Protocol – IETF
  9. How Google interprets the robots.txt specification – Google Search Central
  10. Verifying Googlebot and other Google crawlers – Google Search Central
  11. Block AI bots – Cloudflare Docs
  12. New options to manage AI traffic – Cloudflare changelog
  13. The rise of the AI crawler – Vercel
  14. How HTTP status codes, and network and DNS errors affect Google Search – Google Search Central

Keep Reading