クローラーがブロックされていると、コンテンツがどれほど優れていても、そのエンジンから引用されることはありません。これが起きる場所は robots.txt とファイアウォールの 2 か所です。しかも、2 つ目のほうは誰も確認していない場所です。
AI 検索エンジンはどの user-agent を送信しますか?
- OpenAI:
GPTBot(学習)、OAI-SearchBot(検索インデックス)、ChatGPT-User(ユーザーの操作でリアルタイムに取得) - Anthropic:
ClaudeBot、Claude-User、Claude-SearchBot、anthropic-ai - Perplexity:
PerplexityBot、Perplexity-User - Google:
Google-Extended(AI grounding 用。Googlebotは別のものです) - その他:
Bytespider(ByteDance)、CCBot(Common Crawl)、meta-externalagent(Meta)、Applebot-Extended(Apple)
*-User の agent は、ほかとは分けて考える価値があります。これらは、誰かがたった今その URL について質問したために取得するので、 ブロックすると、あとでインデックスされる内容だけでなく、いま個々のユーザーが見ている内容も変わります。
図のラベルは英語のままです。user-agent、Allow、Disallow などは技術用語であり、robots.txt の原文と項目ごとに照合できるようにするためです。
robots.txt で許可するにはどうすればよいですか?
デフォルトの動作ではすでにすべてが許可されているため、ほとんどのサイトに変更は必要ありません。実際の失敗パターンはその逆で、 継承した規則やコピーしてきた規則がそれらをブロックしている場合です。意図が可視化され、レビューできるように、明示的に書いてください。
# AI search crawlers - explicitly allowed User-agent: GPTBot Allow: / User-agent: OAI-SearchBot Allow: / User-agent: ClaudeBot Allow: / User-agent: PerplexityBot Allow: / User-agent: Google-Extended Allow: / # Everything else User-agent: * Allow: / Disallow: /private/ Sitemap: https://your-domain.com/sitemap.xml
ファイルは 1 か所にまとめてください。別の sitemap を指し示すのにコストはかかりませんが、忘れられがちです。
ファイアウォールが AI クローラーに 403 を返すのはなぜですか?
通常の原因は bot 管理機能であり、robots.txt ではありません。チャレンジベースの bot 対策はリクエストを採点し、ブラウザではないものに JavaScript チャレンジを発行することがあります。 サーバー側のクローラーは JS チャレンジを解けないため、チャレンジページか 403 を受け取り、取得失敗として記録されます。
次の順に確認してください。bot-fight モードまたは同等の設定、under-attack プロファイルに設定されたセキュリティレベル、 user-agent に一致するカスタム WAF ルール、そしてクローラーのバーストを攻撃として扱うレート制限ルールです。
AI の学習用クローラーをブロックすべきですか?
これは正当な選択であり、検索での可視性とは別の問題です。CCBot や GPTBot をブロックすると、影響するのはモデルの学習と grounding です。OAI-SearchBot や PerplexityBot をブロックすると、影響するのは回答の中で引用される可能性そのものです。 自分が本当に反対しているのはどちらなのかを決めてください。そして、その作業の途中で誤って Googlebot や Bingbot までブロックしないでください。
クローラーがブロックされていないことを確認するにはどうすればよいですか?
- 自分の
robots.txtを取得し、上記の agent をブロックするグループがないことを確認します。 - ブラウザではないサーバーから AI クローラーの user-agent でページをリクエストし、HTTP ステータスコードが
200であることを確認します。 - チャレンジが発行されたことを示す
cf-mitigatedレスポンスヘッダーを確認します。 - Google、OpenAI、Perplexity のアドレス範囲からのリクエストがブロックされていないか、エッジのセキュリティイベントログを確認します。
LLMention スキャナー(英語)は手順 1 を自動で実行し、サイトのルートで gptbot、claudebot、perplexitybot、oai-searchbot、google-extended のうち どれが禁止されているかを報告します。手順 2 と 3 は実行しません。スキャナーは自分自身として、 自分のアドレスからあなたのサイトを取得するため、スキャナーが出すリクエストからは、実際の AI クローラーに対して あなたのファイアウォールがどう振る舞うかを知ることはできません。この 2 つの手順は、ご自身で実行してください。