CheaperStack

Guide · AI crawlers and access

Are AI crawlers blocked by your server? A 5-minute check robots.txt will not give you

By Giovanni Rasulo Updated Sources checked October 2026

Short answer

robots.txt only states your preference. A CDN, a firewall, your host's security rules or a plugin can still refuse a crawler with a 403, 406 or 429 before it reads a page, and none of them shows up in your SEO plugin. Test it: send a request to your own site with each AI bot's user agent and compare the status code with a normal browser. Anything other than 200 means a rule is in the way. Then find the layer, and decide on purpose whether to keep the block.

This is a documented guide. The bot facts come from OpenAI, Anthropic, Perplexity, Google and Cloudflare documentation, read in October 2026. The test is a simulation of the user agent only; the limits are listed below, and the worked example is a check we ran on our own site. Run it only on sites you own or manage.

Four places a crawler can be refused

The four layers that can block an AI crawler, who controls them and how to see them
LayerWhat it doesWhere you see it
robots.txtStates which bots may crawl. Honored by well-behaved crawlers, enforced by nobodyyoursite.com/robots.txt; your SEO plugin
CDN or firewallRejects requests by user agent, IP, bot score or category before they reach your serverCloudflare: Security events and AI Crawl Control; other CDNs have equivalents
Host securityServer-level rules such as web application firewalls and bad-bot lists, often on by defaultThe hosting control panel, the server error and access logs
Application or pluginA security plugin or a rule in .htaccess or the CMS blocking by user agentPlugin settings and your .htaccess

Layers two to four are invisible to robots.txt checkers and SEO plugins, which is why a site can look correct and still return 403 to a crawler.

The crawlers worth testing, and what each is for

AI crawlers by company, purpose and what blocking does, from each company's documentation
BotPurposeIf it is blocked
OAI-SearchBotOpenAISurfaces sites in ChatGPT searchNot shown in ChatGPT search answers
GPTBotOpenAITraining of OpenAI's modelsContent not used for training
ChatGPT-UserOpenAIFetches a page when a user asksUser-initiated, so robots.txt rules may not apply
Claude-SearchBotAnthropicIndexing for Claude's search resultsMay reduce visibility and accuracy in search results
Claude-UserAnthropicFetches a page when a user asks ClaudeMay reduce visibility in user-directed search
ClaudeBotAnthropicCollects content that may contribute to trainingFuture content excluded from training
PerplexityBotPerplexitySurfaces and links sites in Perplexity search; not used for trainingLess likely to appear in results; Perplexity recommends allowing it
Perplexity-UserPerplexityFetches a page for a user's questionGenerally ignores robots.txt, since a user triggered it

From OpenAI's bots page, Anthropic's Help Center article on its crawlers (updated April 2026) and Perplexity's bots guide. Each setting works independently, so you can appear in search and still opt out of training. Which side of that line to pick is the decision in the AI search checklist.

The 5-minute test

First, a normal request, so you have a baseline. Replace the address with your own:

curl -s -o /dev/null -w "%{http_code}\n" https://yoursite.com/

Then the same request with each bot's name in the user agent. This loop covers the bots in the table:

for ua in "OAI-SearchBot/1.0" "GPTBot/1.4" "ChatGPT-User/1.0" \
          "PerplexityBot/1.0" "Perplexity-User/1.0" \
          "ClaudeBot/1.0" "Claude-SearchBot/1.0" "Claude-User/1.0"; do
  printf "%-22s" "$ua"
  curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 (compatible; $ua)" https://yoursite.com/
done

Repeat for an inner page, your CSS file, robots.txt and, if you publish one, llms.txt. Some rules are path-specific, and the worked example below found one that was.

What each HTTP status code means in a crawler access test
You seeIt usually meansDo this
200The server answeredCheck the page size matches your browser's; a tiny 200 can be a challenge page
403A rule forbade the requestFind the layer that applies it (next section)
406The server rejected the request as not acceptable, often from a security rule on request headersSame: look at host security and firewall rules
429Rate limit hitCheck rate-limiting rules, and whether your own repeated tests triggered it
503 or a challenge pageA bot check or an overloaded serverCheck bot-protection settings

If a bot is refused, find the layer

  1. Test the origin directly. Send the same request straight to your server's IP, bypassing the CDN. If the origin answers 200 and the public site answers 403, the CDN or firewall is the layer. If both refuse, it is the host or the application. Use curl --resolve yoursite.com:443:ORIGIN_IP -k with the bot's user agent.
  2. Check the CDN. On Cloudflare, look at Security events filtered by the bot's name, and at AI Crawl Control, whose Crawlers tab lists AI crawlers with a Block action. Cloudflare also has Configure AI bot policies under Security Settings, with Search, Agent and Training categories, each set to Block, Block on pages with ads, or Allow.
  3. Check the host. Look at the control panel's firewall or security section and at the access and error logs for the refused requests.
  4. Check the application. A security plugin or a user-agent rule in .htaccess can do this too.

Note a Cloudflare change that affects the decision. Its documentation says that from 15 September 2026, new domains block bots classed as Training or Agent on pages that show ads, and that its Block options apply to mixed-use crawlers such as Googlebot and Bingbot, so a Block setting can affect search as well as training. Read the options before you switch one on, and check what applies to your domain.

What this test cannot tell you

  • It only sends a name. Real crawlers also come from published IP ranges, and some firewalls check both. A 200 on a simulated request does not prove the real crawler gets through, and a simulated 403 may not apply to it.
  • It cannot prove a bot is who it says. A user agent is easy to fake. Google documents verifying Googlebot with a reverse and forward DNS lookup or its published IP ranges; Anthropic publishes a list of its crawler IPs; Perplexity recommends allowing its bots by user agent combined with its published IP ranges.
  • Blocking by IP can backfire. Anthropic notes that IP-based blocking may not work reliably, because it stops the bot from reading robots.txt.
  • Your real evidence is the log. Search the server access log for each bot's name and look at the status codes it actually received.

A worked example: our own check

On 16 October 2026 we ran this test on cheaperstack.com for more than 25 user agents, including every bot in the table. All of them received 200 and the full page, including GPTBot, ClaudeBot, PerplexityBot and CCBot. One did not: Bytespider, ByteDance's crawler, got a 403 on the home page and the CSS file, and at first on some inner pages, and 200 on robots.txt, llms.txt and the sitemap. The 403 page came from the web server. The same request sent straight to the origin returned 200, so the rule sits between the two and not in the site's files.

That is the situation the check exists for: our robots.txt allows Bytespider, and something below it refused. Whether to allow it is a policy choice; the lesson is that the choice should be made in robots.txt and in your firewall at the same time, not by accident in one of them.

Disclosure: This post contains affiliate links. If you sign up through one and later make an eligible purchase, I may earn a commission at no extra cost to you.

What an SEO plugin can and cannot see

Rank Math's MCP tools include a read-only Get robots.txt tool and a Get llms.txt tool, so an assistant can read what your site declares. Neither shows what a firewall does with a request, which is why the curl test and the logs are the checks that matter. The connection steps are in Rank Math MCP with Claude, and the free plugin covers them. Get Rank Math (affiliate link).

Who can skip this

  • Sites on a managed platform with no firewall settings. Ask the host what it blocks by default instead.
  • Anyone who deliberately blocks AI crawlers. Then verify the block works, and record that it is on purpose.
  • New sites with no pages indexed yet. Fix indexing first; see the 90-day plan.

The verdict, by situation

What to do about AI crawler access by situation
If you see…Do this
All 200sConfirm in the logs that real bots reach you; then move on
One training bot refusedDecide on purpose; align robots.txt and the firewall
A search bot refused (OAI-SearchBot, PerplexityBot, Claude-SearchBot)Fix it; you are invisible to that assistant's search until you do
Origin 200, public 403The CDN or firewall is the layer
Origin and public both 403Host security rules or your application
Googlebot or Bingbot affectedUrgent: it also hits normal search; check the CDN's mixed-use crawler setting

Frequently asked questions

How do I check whether GPTBot or ClaudeBot can reach my site?

Run curl against your own site with each bot's user agent and compare the status code with a normal browser request. A 200 means the server answered; a 403, 406 or 429 means a rule rejected the request. It only simulates the user agent, so confirm with your server logs.

If robots.txt allows a bot, can it still be blocked?

Yes. robots.txt is a request that well-behaved crawlers read. A CDN, a web application firewall, the host's security rules or a plugin can refuse the request before the crawler ever sees your content.

Does a 200 on my test prove the real crawler gets through?

No. A simulated request only sends the bot's name. Real crawlers also come from published IP ranges, and some firewalls check both. Look in your access logs for the real bots' requests and their status codes.

Which AI crawlers should I allow?

To appear in ChatGPT search allow OAI-SearchBot, for Perplexity allow PerplexityBot, and for Claude's search allow Claude-SearchBot. GPTBot and ClaudeBot are training crawlers, and blocking them is a legitimate choice as long as you make it on purpose.

Will Cloudflare's AI bot settings block Googlebot or Bingbot?

They can. Cloudflare's documentation says its Block options apply to mixed-use crawlers, including Applebot, Bingbot and Googlebot, so those settings can affect search as well as training. Read what each option does before switching it on.

Sources

OpenAI's bots documentation; Anthropic's Help Center article on its crawlers; Perplexity's bots guide; Google's guide to verifying Googlebot; and Cloudflare's Block AI Bots and AI Crawl Control documentation. These settings change often, so check the current pages and your own dashboard.

Related

Last reviewed . Bot names and CDN settings change often, so this page is re-checked monthly. Spotted one out of date? Tell me.