cd /news/large-language-models/your-cdn-might-be-blocking-chatgpt-f… · home topics large-language-models article
[ARTICLE · art-65055] src=dev.to ↗ pub= topic=large-language-models verified=true sentiment=· neutral

Your CDN Might Be Blocking ChatGPT From Your Docs (And robots.txt Won't Show It)

A developer found that roughly 27% of websites unintentionally block major AI crawlers like GPTBot, OAI-SearchBot, ClaudeBot, and PerplexityBot at the CDN or WAF layer, even when robots.txt appears permissive. The developer advises checking edge logs for 403 errors and ensuring server-side rendering for AI crawlers that don't execute JavaScript. A live experiment tracking AI citation behavior is being published at connectingdots.live/experiment.

read2 min views5 publishedJul 19, 2026
curl -sI -A "GPTBot" https://yoursite.com/ | head -1
(Invoke-WebRequest -Uri "https://yoursite.com/" -UserAgent "GPTBot").StatusCode
curl -I -A "GPTBot" https://yoursite.com/

Note: Replace yoursite.com with your domain

If that returns anything other than 200, AI engines cannot read your site and your robots.txt may look perfectly permissive while it happens. Audits of several thousand sites found roughly 27% block at least one major AI crawler, most of them unintentionally, at the CDN or WAF layer rather than in robots.txt.

Bot-protection rules ship with sensible-sounding defaults: block unknown user agents, rate-limit non-browser traffic, challenge anything without JavaScript. GPTBot, OAI-SearchBot, ClaudeBot and PerplexityBot all trip at least one of those on common configurations. Your marketing team sees a clean robots.txt; your edge quietly returns 403.

for UA in GPTBot OAI-SearchBot ChatGPT-User ClaudeBot PerplexityBot Bingbot; do

printf "%-16s %s\n" "$UA" "$(curl -sI -A "$UA" https://yoursite.com/ | head -1)"

done

Then check your edge logs for 403s grouped by user agent that's where the truth lives.

The second failure: client-side rendering

Several AI crawlers don't execute JavaScript. If your H1 and opening paragraph arrive via hydration, they see an empty shell. Server-render anything you want quoted view-source: is the test, not DevTools.

import type { MetadataRoute } from 'next'

export default function robots(): MetadataRoute.Robots {

  const disallow = ['/admin', '/api/']

  return {

    rules: [

      { userAgent: '*', allow: '/', disallow },

      { userAgent: 'GPTBot', allow: '/', disallow },

      { userAgent: 'OAI-SearchBot', allow: '/', disallow },

      { userAgent: 'ClaudeBot', allow: '/', disallow },

      { userAgent: 'PerplexityBot', allow: '/', disallow },

      { userAgent: 'Google-Extended', allow: '/', disallow },

    ],

    sitemap: 'https://yoursite.com/sitemap.xml',

  }

}

robots.txt is necessary but not sufficient the CDN rule is the one that actually bites.

It's the precondition, not the strategy. Being retrieved is won with ordinary search ranking; being cited is won with extractable structure direct answers, explicit definitions, sourced statistics. But none of that runs if the crawler gets a 403 at the door.

I'm publishing a live experiment on this: 20 fixed questions asked to ChatGPT and Gemini daily, with raw answers, cited-source leaderboards and the retrieved-but-not-cited gap published openly

[connectingdots.live/experiment]

── more in #large-language-models 4 stories · sorted by recency
── more on @gptbot 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/your-cdn-might-be-bl…] indexed:0 read:2min 2026-07-19 ·