Short answer
AI crawlers often get blocked by layers in front of your website, not by robots.txt. The six places to check: CDN bot settings (such as Cloudflare), your hosting platform's firewall, WordPress security plugins, geo and data-center IP blocks, rate limits and challenge pages, and leftover noindex or password protection. Any one of them can stop OAI-SearchBot or PerplexityBot from reading your pages.
Key takeaways
- OpenAI says that to appear in ChatGPT search, your host or CDN must allow traffic from its published crawler IPs, not just your robots.txt.
- Bot protection that challenges "anything that isn't a browser" blocks AI crawlers by design, because they can't solve CAPTCHAs or run JavaScript.
- Hosting platforms now ship one-click AI bot blocking. Vercel's AI Bots ruleset, for example, can deny all AI bot traffic.
- Country, ASN and cloud-IP blocks catch AI crawlers, which run from data centers.
- Leftover
X-Robots-Tag: noindexheaders and staging passwords hide pages from every search engine and AI.
In this article
- Why a clean robots.txt isn't enough
- 1. CDN bot settings
- 2. Your hosting platform's firewall
- 3. WordPress security and "anti-scraping" plugins
- 4. Geo-blocking and data-center IP blocks
- 5. Rate limits, challenge pages and error responses
- 6. Leftover noindex, passwords and directives
- A 15-minute diagnosis
- Frequently asked questions
Why a clean robots.txt isn't enough
robots.txt is a request crawlers choose to honor. Firewalls are enforcement. A crawler that robots.txt allows can still be refused by anything that sits between it and your page: a CDN, a hosting platform's firewall, a security plugin, or your own server configuration. OpenAI's help center says it plainly: to be eligible for ChatGPT search, a site must allow OAI-SearchBot, and the host or CDN must allow traffic from OpenAI's published IP addresses.
These blocks are usually invisible to the marketing team. Nobody decided to hide the company from AI. Someone turned on a security setting, and the side effect only shows up as a gap in AI answers months later. Here are the six places to look, in the order we check them.
1. CDN bot settings
CDNs such as Cloudflare, Akamai and Fastly see every request first, and all of them offer bot management that can classify and block AI crawlers. Cloudflare has the most settings that affect AI crawlers:
- AI Crawl Control, where each AI crawler can be set to Allow or Block.
- The Search, Agent and Training settings added in July 2026. From September 15, 2026, new domains block Training and Agent bots on pages with ads by default. Cloudflare also says that customers who block Training will block multi-purpose crawlers such as Googlebot, Applebot and BingBot.
- The older Block AI bots toggle and Bot Fight Mode, which challenges automated traffic and can't be overridden with firewall rules.
How to check: review the CDN's security event log for requests from AI crawler user agents that were blocked or challenged. On Cloudflare, follow our AI Crawl Control guide and WAF rules guide.
2. Your hosting platform's firewall
Modern hosting platforms have their own firewalls, separate from any CDN. Vercel is a good example of what to look for. Its firewall has two managed rulesets that affect AI crawlers, both off by default:
- AI Bots Managed Ruleset: set to Deny, it "blocks all traffic identified as coming from AI bots".
- Bot Protection Managed Ruleset: set to Challenge, it serves a JavaScript challenge to traffic that is unlikely to be a browser. Crawlers that don't run JavaScript can't pass it.
Managed WordPress hosts and other platforms often have similar bot controls, sometimes switched on by the host during a traffic spike or attack and never switched off.
How to check: open your host's firewall or security settings and look for anything mentioning bots, AI or challenges. On Vercel, set the AI Bots ruleset to Log first to see what it would catch. If you need Bot Protection on, add a bypass rule for verified AI search crawlers.
3. WordPress security and "anti-scraping" plugins
WordPress security plugins protect against real attacks, but several of their common features also catch crawlers:
- Rate limiting that blocks any client making many requests per minute, which is exactly what a crawler does.
- "Block fake crawlers" options that only recognize Google and Bing as legitimate and treat every other bot as suspicious.
- Country blocking (see point 4).
- Dedicated AI-blocking plugins or toggles that add AI crawlers to a blocklist or to robots.txt.
How to check: review the plugin's block log for AI crawler names, and look in its settings for rate limits, crawler rules and country rules. Then make sure robots.txt, as served live, is still the file you expect. Some plugins and SEO tools generate it dynamically.
4. Geo-blocking and data-center IP blocks
Blocking traffic by country, by network (ASN) or by cloud provider is a common way to cut spam and attacks. The catch: AI crawlers are data-center traffic. OpenAI's and Anthropic's published crawler ranges include cloud-provider addresses. A rule such as "block all hosting and cloud networks" or "allow only our sales countries" can shut out every AI crawler at once.
Blocking IPs has a second side effect. Anthropic advises against IP blocking specifically because it stops its crawlers from reading your robots.txt, so your crawl preferences can't be applied.
How to check: list every country, ASN and IP-range rule in your CDN, host and server configuration. Exempt verified crawlers before any broad block. Most CDNs can match "verified bot" as a condition.
5. Rate limits, challenge pages and error responses
Some blocks don't look like blocks. A crawler that gets a CAPTCHA page, a "checking your browser" interstitial or a 429 Too Many Requests response simply leaves without your content. Worse, a challenge page served with a 200 status can be indexed in place of the real page.
Server errors matter too. If /robots.txt returns a 5xx error, RFC 9309 tells crawlers to assume the whole site is off-limits until it recovers.
How to check: in your server logs, filter AI crawler requests by status code. Any 403, 429 or 503 responses to verified crawlers point to a firewall or capacity problem. Our server log guide shows how to separate real crawlers from fakes first.
6. Leftover noindex, passwords and directives
Finally, the blocks that were meant to be temporary:
X-Robots-Tag: noindexHTTP headers or<meta name="robots" content="noindex">tags copied from a staging site. They keep pages out of Google and Bing, and with them Google AI Overviews, AI Mode and Copilot.- Password protection or IP allowlists left on sections after a redesign.
- Bing's
NOARCHIVEandNOCACHE. Bing's February 2026 guidelines say NOARCHIVE keeps content out of Copilot answers and grounding, and NOCACHE limits Copilot to the URL, title and snippet. - A launch-day
Disallow: /in robots.txt that was never removed.
How to check: fetch your key pages and read the response headers:
curl -sI https://www.example.com/services | grep -iE "^(HTTP|x-robots-tag)"
Then check the page source for robots meta tags. The free LLM Readiness Check flags a noindex on your homepage automatically.
A 15-minute diagnosis
- Run the LLM Readiness Check to rule out robots.txt, noindex and JavaScript problems.
- Fetch a key page with an AI crawler's user agent and confirm a
200status with real content:
This tests user-agent rules only. IP-based rules won't trigger from your machine.curl -s -o /dev/null -w "%{http_code}\n" -A "OAI-SearchBot" https://www.example.com/ - Search your CDN or host firewall log for
OAI-SearchBot,PerplexityBot,Claude-SearchBotandChatGPT-User. - Check server logs for status codes returned to verified AI crawlers.
- List every geo, ASN, rate-limit and plugin rule, and make sure verified crawlers are exempt.
If AI crawlers never appear in your logs at all, the block is almost certainly upstream, at the CDN or host.
Frequently asked questions
Why can't ChatGPT access my website?
The most common reasons are a robots.txt rule blocking OAI-SearchBot or ChatGPT-User, a CDN or firewall setting that blocks AI bots, a bot challenge (CAPTCHA or JavaScript check) that crawlers can't pass, or content that only appears with JavaScript. OpenAI says your host or CDN must allow traffic from its published searchbot IP addresses.
Can a CAPTCHA or JavaScript challenge block AI crawlers?
Yes. Crawlers can't solve CAPTCHAs, and most AI crawlers don't run JavaScript, so a challenge page is effectively a block. The crawler may even index the challenge page instead of your content.
Does geo-blocking affect AI crawlers?
It can. AI crawlers run from data centers, and their published IP ranges include cloud-provider addresses. Blocking countries, data-center networks (ASNs) or cloud IP ranges can block AI crawlers along with the bad traffic.
How do I test whether my firewall blocks AI crawlers?
Check your firewall's event log for blocked requests from AI crawler user agents, look for 403, 429 or 503 responses to them in your server logs, and fetch pages with curl using a crawler's user agent. Note that curl tests the user-agent rules but not IP-based rules, so the logs are the definitive check.
Can an X-Robots-Tag header hide my site from AI search?
Yes. An X-Robots-Tag: noindex header, often left over from a staging setup, tells search engines not to index the page, which also keeps it out of Google AI Overviews and Bing-powered Copilot answers. Bing's NOARCHIVE directive keeps content out of Copilot answers specifically.
Free tool
Start with the layer you can test in 10 seconds
The free LLM Readiness Check confirms your robots.txt, indexability and raw HTML are AI-ready, so you can focus on the firewall layers below.
Sources
- OpenAI Help: ChatGPT search (publishers must allow OAI-SearchBot and its IPs)
- Cloudflare Blog: Your site, your rules: new AI traffic options (July 1, 2026)
- Cloudflare Docs: Bot Fight Mode
- Vercel Docs: WAF Managed Rulesets (Bot Protection, AI Bots)
- Anthropic: Does Anthropic crawl data from the web? (advice against IP blocking)
- Search Engine Journal: Bing adds GEO to official guidelines (NOARCHIVE and NOCACHE, February 2026)
- IETF RFC 9309: Robots Exclusion Protocol (handling of robots.txt errors)