CDNがAIクローラーを止めていて、robots.txtが効かないとき
ブラウザでは開くのにAIクローラーには403が返るなら、CDNがAIクローラーをブロックしている可能性が高いです。エッジの特定と設定の探し方をまとめます。

ブラウザではページが開くのに、AIクローラーには403が返る。その場合、ほぼ間違いなくAIクローラーをブロックしているのはCDNであり、サーバーの不具合ではありません。 エッジがオリジンサーバーより先に応答し、レスポンスヘッダー1つでベンダーが分かります。まずエッジを特定し、そのベンダーのボット設定を開いてください。自分のファイルを編集しても、ホスティング側がかけたブロックは外れません。
先に読むこと
この章はAIがサイトを読めるか確認するの続きです。すべてのクローラーが200なら、ここで直すものはありません。403か503が返ったときに戻ってきてください。それがこの章で診断する症状です。
robots.txtが許可してもCDNが止める理由
CDNはオリジンサーバーがリクエストを受け取る前に応答します。ベンダーが配布し、ベンダーの都合で更新する独自のボットルールを適用し、その判断にrobots.txtは使いません。だから両者は恒久的に食い違えます。ファイルは「入れ」と言い、エッジは「だめ」と言い、どちらも設計どおりに動いています。
既定値をあなたの代わりに変える許可を、誰も求めていない。プランを変えたら毎回確認する。
AIクローラーをブロックしているCDNを1コマンドで見つける
知っている必要はありません。レスポンスヘッダーが教えてくれます。大手のエッジは自社のリクエストIDを必ず付けます。1回のcurlでヘッダー名を取り、表と照合します。
curl -sI -A "Mozilla/5.0 (compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot)" \
https://example.com/ | grep -iE 'server|cf-ray|x-vercel|x-nf-request|x-served-by|x-amz-cf-id|x-cache'
| ヘッダー | エッジ | 併記 |
|---|---|---|
cf-ray | Cloudflare | server: cloudflare、cf-cache-status |
x-vercel-id | Vercel | server: Vercel、x-vercel-cache |
x-nf-request-id | Netlify | server: Netlify |
x-amz-cf-id | AWS CloudFront | x-cache |
x-served-by + x-cache | Fastly | 独自のserver |
| なし | CDNなし、または隠すCDN | serverだけを見る |
11サイトで試した結果
2026年8月15日、私はこのリクエストをOAI-SearchBotのエージェントで11の有名サイトに送りました。すべて200を返しました。その日、有名ブランドのサイトがエッジでAI検索クローラーを拒否した例はありません。ブロックが自分の側にあると決めつける前に知っておく価値があります。
より役に立ったのは、Cloudflareの背後に誰がいるかでした。shopify.comとwebflow.comはどちらもcf-rayを返しました。これらのプラットフォームで店舗やサイトを運営しているなら、あなたに関係するボットルールはCloudflareのものです。そのアカウントを自分で管理していなくても同じです。
ただし注意が1つあります。この手帳のすべての確認に共通する制限です。リクエストはクローラーのアドレスではなく、私のアドレスから出ています。IP範囲で判定するルールは、このテストでは見えません。
各プラットフォームのAIクローラー設定の場所
メニューの経路ではなく、機能名で探してください。ベンダーはメニューを頻繁に動かします。古い経路をたどると、名前が変わった何かを探し回ることになります。
| プラットフォーム | 探す名前 | 既定 |
|---|---|---|
| Cloudflare | AI Crawl Control | 全プランで利用可能 |
| Vercel | AIクローラー向け管理ルール | 無効、Allowと表示 |
| Vercel | ボット保護の管理ルール | 無効、Offと表示 |
| Shopify | テーマのrobots.txt.liquid | Shopifyの既定ルール |
| Netlify / CloudFront | エージェント単位のWAF・ファイアウォール | AI専用ルールなし |
Vercelは2つのルールセットを、有効にするまでオフだと文書に書いています。VercelのサイトがAIクローラーを拒否しているときは、別の場所で拒否されていることが多いです。出典:Cloudflare、Vercel、Shopify。
エッジが2段重なると、外側だけが答える
多くのサイトはプラットフォームを別のプラットフォームの前に置いています。Cloudflareの前にVercel、がよくある組み合わせです。外側のサービスが応答するので、見えるヘッダーも効いているルールも外側のものです。内側のプラットフォームのボット設定は、一度も参照されないことがあります。
Vercelは自社の文書で明言しています。「Bot Protection doesn't work when a reverse proxy (e.g. Cloudflare, Azure, or other CDNs) is placed in front of your Vercel deployment.」 ヘッダーにcf-rayが出るなら、自分をVercelのサイトだと思っていてもCloudflareから確認してください。
間違えやすい3つ
どれも、答えが最初からなかった場所で半日を失います。
- 403を直すためにrobots.txtを編集する。 403はリクエストが拒否されたという意味です。robots.txtはレスポンスを受け取った後に読むファイルなので、拒否を取り消せません。エッジを直し、そのうえでrobots.txtに希望を書きます。
- ブラウザで試して問題なしと結論する。 ボットルールはエージェントで判定します。ブラウザは、その問題を再現しないことが保証されたクライアントです。必ずクローラーのエージェントで再テストしてください。
- 外側が拒否しているのに内側のプラットフォームを直す。 設定を変える前にヘッダーを見てください。リクエストを一度も受け取っていないサービスを操作することになります。
よくある質問
ホストはAIクローラーを止めていないと言います。なぜ403が返るのですか
管理WAFルール、レート制限、チャレンジページは、AIブロックという名前がなくても拒否を返します。中間ページ付きの503はチャレンジで、クローラーはチャレンジを解きません。ブロックとして扱ってください。
CDNのブロックとサーバーのブロックは区別できますか
たいていは区別できます。エッジの拒否は速く返り、CDNのヘッダーだけが付いて、アプリケーションのヘッダーはありません。自分のフレームワークのヘッダーやアプリが描画したページが含まれていれば、リクエストは届いています。
なぜクリック手順の画面写真がないのですか
ベンダーの更新ごとに再確認できないメニュー経路を公開することになり、間違った経路は何もないより悪いからです。機能名はメニューよりずっとゆっくりしか変わりません。
次の一歩
すべてのクローラーが200を返すようになると、問題は「到達できるか」から「クロールする価値があるか」に移ります。勝ちに近い検索を選ぶ段階で、手帳は配管からコンテンツへ進みます。
ブロックの診断はすぐ終わります。変更して公開し、インデックス用に更新を送るところで、多くのサイトが止まります。
収録: QueryWinガイド · レベル1


