Skip to content
Guides

Is your CDN silently blocking AI answer crawlers?

6 min read

You searched for your product on ChatGPT or Perplexity, and your company was missing. You checked your robots.txt file immediately. There were no disallow lines for AI agents. Everything looked configured correctly.

The issue is likely not in your robots.txt file. It is sitting at your network edge.

Content delivery networks and web application firewalls routinely drop traffic from AI answer crawlers before those requests ever reach your origin server or read your robots.txt rules. The request is rejected silently at the edge, returning an HTTP 403 forbidden status or a JavaScript challenge that automated search agents cannot solve.

Training crawlers versus answer crawlers

To fix this issue, you must distinguish between two separate categories of automated visitors. Conflating them is the most common operational mistake in AI visibility diagnosis.

Training crawlers fetch content to build future static models. GPTBot, ClaudeBot, and Google-Extended are training crawlers. Blocking them stops an engine from using your site content to train its next base model months from now. It does not stop an engine from citing your site today if that engine uses live search.

Answer crawlers fetch content in real time to synthesize immediate responses for live user prompts. ChatGPT-User, Claude-SearchBot, OAI-SearchBot, Perplexity-User, Claude-User, and PerplexityBot are answer crawlers. Blocking these agents prevents the model from visiting your page while answering a prompt, dropping your brand out of live recommendations instantly.

Our crawler index updated on August 8, 2026 evaluated a panel of 54,082 domains. Among those, 33,670 returned a readable robots.txt file. Explicit blocks in robots.txt are common for training crawlers: 5,080 of 33,670 readable domains block GPTBot, 4,603 block ClaudeBot, and 4,275 block Google-Extended.

Explicit robots.txt blocks for live answer crawlers are lower, but still significant:

  • 2,147 of 33,670 readable domains block PerplexityBot.
  • 2,074 block ChatGPT-User.
  • 1,579 block OAI-SearchBot.
  • 1,402 block Perplexity-User.
  • 1,400 block Claude-SearchBot.
  • 1,384 block Claude-User.
  • 610 block standard Googlebot.

Altogether, 2,576 of 33,670 readable domains explicitly block at least one answer crawler in robots.txt. In our census of 4,226 active Y Combinator companies conducted on August 7, 2026, 3,755 domains had readable files, and 253 blocked at least one AI crawler in robots.txt.

However, robots.txt statistics only record voluntary site declarations. They do not capture edge network blocks. A domain might have an empty robots.txt file while its firewall actively blocks every request from ChatGPT-User or Claude-SearchBot.

How edge firewalls drop answer requests

Content delivery networks like Cloudflare, Fastly, AWS CloudFront, and Akamai protect web application origin servers from denial of service attacks, bad bots, and abusive scraping. They accomplish this using automated threat intelligence rules.

These automated firewall rules trigger blocks against live answer crawlers for three main technical reasons.

First, origin IP addresses. Live answer crawlers issue HTTP requests directly from public cloud infrastructure, including Amazon Web Services, Google Cloud Platform, and Microsoft Azure. Standard web application firewall heuristics flag rapid inbound connections originating from cloud data centers as suspicious automated scraping, immediately blocking the source IP block.

Second, browser fingerprinting and JavaScript execution. Live answer crawlers operate at low latency to keep prompt response times short. Agents like ChatGPT-User or Claude-SearchBot fetch HTML text using lean HTTP clients. They do not run full browser engines, execute complex JavaScript bundles, or resolve interactive CAPTCHA challenges. If your firewall defaults to serving JavaScript challenges to unverified visitors, an answer crawler fails the challenge instantly. The engine receives a 403 or 503 HTTP status code and moves on to fetch a competitor domain.

Third, HTTP request spikes. When an AI engine needs to verify claims across multiple pages of your site simultaneously, it may issue several HTTP requests within a few milliseconds. Edge rate-limiting rules mistake this focused fetch for a brute-force attack or content scraper, enforcing a temporary HTTP 429 block.

How to audit your CDN access logs

You cannot diagnose edge firewall blocks by browsing your own website or checking Google Search Console. You must inspect raw HTTP access logs and security event panels inside your CDN management dashboard.

Open your CDN security events panel or log stream. Filter your log queries specifically for these User-Agent headers:

  • ChatGPT-User
  • OAI-SearchBot
  • Claude-SearchBot
  • Claude-User
  • Perplexity-User
  • PerplexityBot

Examine the response codes attached to these log entries. If you find HTTP status codes 403 Forbidden, 429 Too Many Requests, 503 Service Unavailable, or log actions labeled Managed Challenge, JS Challenge, or Block, your edge firewall is dropping live answer requests.

You can verify this behavior directly from your terminal using command-line tools. Send an HTTP GET request to your home page while setting the user-agent string explicitly to an answer crawler:

curl -A "ChatGPT-User" -I https://yourdomain.com

Inspect the header response returned by your server. If the return status is HTTP/2 403 or serves a challenge page instead of HTTP/2 200 OK, your firewall rule is active. Repeat this command for Claude-SearchBot and Perplexity-User.

Configuring rules and managing trade-offs

To allow AI search engines to read your content live, create custom firewall bypass rules within your CDN console.

Do not disable your bot management system globally. Instead, construct explicit web application firewall exceptions. These rules should match incoming requests where the User-Agent header contains known answer crawler strings, directing the firewall to bypass managed challenges and allow traffic through to origin servers.

Allowing answer crawlers involves real operational trade-offs that you must evaluate before updating your firewall rules.

Unblocking answer crawlers increases automated site traffic. As engines process queries involving your product sector, answer crawlers will fetch pages across your domain continuously. This increases your bandwidth usage and origin server load. If your web host charges strictly by request volume or egress bandwidth, your monthly hosting expense will increase.

There is also a security consideration. Fraudulent web scrapers sometimes spoof legitimate user-agent strings like ChatGPT-User to bypass basic user-agent filters. To prevent this, enterprise firewall configurations should verify the origin IP range of the crawler alongside the user-agent string, matching OpenAI, Anthropic, or Perplexity published IP blocks where available.

Do not buy premium security software packages or firewall add-ons that advertise automated bot blocking unless they provide explicit, customizable bypass rules for named user-agent strings and IP ranges. Many turn-key anti-scraping tiers apply blanket HTTP challenge enforcement that cannot be adjusted, permanently cutting your domain off from AI search citations.

Evaluating real visibility versus log entries

Seeing clean HTTP 200 responses in your CDN logs confirms that answer crawlers can fetch your pages. It does not guarantee that ChatGPT, Claude, Perplexity, Gemini, or Google AI Overviews will cite your brand in answer output.

Generative search engines are non-deterministic. A successful HTTP request supplies the context, but the engine decides whether to include your brand based on prompt construction, context window limits, and competing sources.

Log analysis tools like Datadog or ELK Stack excel at showing whether a request succeeded at the HTTP layer. They cannot tell you if that successful fetch resulted in a brand recommendation.

Measuring actual presence requires prompt sampling across engines over time. Standing measures generative engine recommendations using a fixed prompt basket. We run each prompt five times per question across ChatGPT, Perplexity, Gemini, Claude, and Google AI Overviews, reporting results using a Wilson confidence interval. For example, a result of 34, plus or minus 6 out of 100 runs provides a true statistical baseline. Single prompt checks or simple log verification cannot give you that variance measurement.

If your CDN is dropping answer crawlers at the edge, fix your firewall bypass rules first. Once the technical access barrier is removed, you can begin measuring whether generative engines actually cite your business.

See where you actually stand

Run a free check on your domain. Five AI surfaces, the real buying questions, about a minute. No signup.

Run a free check

Keep reading