robots.txtでAIクローラーを制御する方法(Cloudflareの落とし穴つき)
robots.txtとは、「このサイトのどこに、どのクローラーが訪問して良いか」を伝える ルールブックのようなファイルです。 AI検索に自分のサイトを引用してもらいたい場合、まずこのファイルで AIのクローラーを閉め出していないか確認することが最初の一歩になります。
基本の書き方
robots.txtは、サイトのルート(トップページと同じ階層)に置く /robots.txt という
プレーンテキストファイルです。基本の構文はシンプルです。
User-agent: クローラーの名前
Allow: / (許可する場合)
Disallow: / (拒否する場合) User-agentでどのクローラーに向けたルールかを指定し、
Allowで許可、Disallowで拒否を指定します。
クローラーごとにこの3行のセットを繰り返し並べていきます。
主要なAIクローラーの名前
2026年時点で、AI検索・AI回答に関わる主なクローラー名は以下の通りです (各社の仕様は変更される可能性があるため、設置前に公式ドキュメントでの確認をおすすめします)。
| クローラー名 | 運営 | 役割 |
|---|---|---|
| GPTBot | OpenAI | モデルの学習用データ収集 |
| OAI-SearchBot / ChatGPT-User | OpenAI | ChatGPTの検索・回答時にリアルタイム参照 |
| ClaudeBot | Anthropic | モデルの学習用データ収集 |
| Claude-SearchBot / Claude-User | Anthropic | Claudeの検索・回答時にリアルタイム参照 |
| PerplexityBot / Perplexity-User | Perplexity | 回答生成のための検索・参照 |
| Google-Extended | AI Overview等の学習・生成への利用可否の指定 |
「学習用データ収集」系(GPTBot・ClaudeBotなど)と「回答時にリアルタイム参照」系 (OAI-SearchBot・PerplexityBotなど)は役割が異なります。今すぐAI回答に引用されたい場合は 後者を許可することが特に重要で、前者は将来のモデル学習に影響する可能性があるものの、 即効性は保証されません。
実際に起きた落とし穴: Cloudflareの「AI Crawl Control」
ここからは、本サイトを実際に運用していて遭遇した問題の記録です。 サイトはCloudflareでホスティングしていますが、自分で書いたrobots.txtに 「GPTBot: Allow」と書いていたにもかかわらず、実際に公開されていたrobots.txtを確認すると、 同じGPTBotに対して矛盾する「Disallow」が先頭に自動追加されていました。
原因は、Cloudflareのゾーン単位機能「AI Crawl Control」に、独立した2つの制御が存在していたためでした。
- Security画面の個別クローラー「Block Crawler」トグル — 実際のアクセスを403エラーでブロックするかどうかの設定
- 「Managed robots.txt」トグル — robots.txtへの自動追記を行うかどうかの設定。(1)とは別に、独立して動作する
この2つは見た目が似ていますが完全に別の設定で、両方をオフにしないと、 自分の書いたrobots.txtの内容通りには公開されませんでした。 Cloudflareを含むCDN・ホスティングサービスの一部には、こうした「独自のAIクローラー制御機能」を デフォルトで搭載しているケースがあるため、自分のファイルの中身が正しくても、 サービス側の設定で上書きされる可能性がある、という点は覚えておく価値があります。
公開後、必ず実際のURLで確認する
このトラブルから得た一番の教訓は「コードを見ただけで安心しない」ことです。 サイトを公開したら、以下の手順で必ず確認してください。
- ブラウザで
https://自分のドメイン/robots.txtに直接アクセスする - 意図した通りに
Allow/Disallowが書かれているか目視で確認する - もし見覚えのない内容が追加されていたら、利用しているホスティング・CDNサービスの管理画面で AIクローラー関連の設定(名称はサービスによって異なります)を探して確認する