メンション追跡ではなく、引用準備度の診断
技術

GPTBot と PerplexityBot のための robots.txt と WAF の設定

AI 検索エンジンが送信する user-agent、robots.txt でそれらを許可する方法、そして WAF が AI クローラーに 403 を静かに返していないことを確認する方法を説明します。

著者 Alex Xu(英語)4 分で読めます

クローラーがブロックされていると、コンテンツがどれほど優れていても、そのエンジンから引用されることはありません。これが起きる場所は 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 について質問したために取得するので、 ブロックすると、あとでインデックスされる内容だけでなく、いま個々のユーザーが見ている内容も変わります。

How robots.txt decides whether a crawler may fetch a pageA request from GPTBot leads to reading robots.txt, where groups are tried in order. If a group names the agent, that group's Allow and Disallow rules apply. If no group names it, the request is allowed, because robots.txt is an opt-out file.GPTBot requests /pricing/Read robots.txtgroups are tried in order — first match winsA group names itUser-agent: GPTBotIts Allow / Disallowapplies to this requestNo group names itno GPTBot, no *Allowedrobots.txt is opt-out, not opt-inAn unlisted agent is allowed — unless a User-agent: * group disallows the path.So "we never blocked GPTBot" is not the same claim as "GPTBot is allowed".
The default is the part readers get backwards: an agent that no group names is allowed, because robots.txt is a list of refusals rather than a list of permissions.

図のラベルは英語のままです。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 までブロックしないでください。

クローラーがブロックされていないことを確認するにはどうすればよいですか?

  1. 自分の robots.txt を取得し、上記の agent をブロックするグループがないことを確認します。
  2. ブラウザではないサーバーから AI クローラーの user-agent でページをリクエストし、HTTP ステータスコードが 200 であることを確認します。
  3. チャレンジが発行されたことを示す cf-mitigated レスポンスヘッダーを確認します。
  4. Google、OpenAI、Perplexity のアドレス範囲からのリクエストがブロックされていないか、エッジのセキュリティイベントログを確認します。

LLMention スキャナー(英語)は手順 1 を自動で実行し、サイトのルートで gptbot、claudebot、perplexitybot、oai-searchbot、google-extended のうち どれが禁止されているかを報告します。手順 2 と 3 は実行しません。スキャナーは自分自身として、 自分のアドレスからあなたのサイトを取得するため、スキャナーが出すリクエストからは、実際の AI クローラーに対して あなたのファイアウォールがどう振る舞うかを知ることはできません。この 2 つの手順は、ご自身で実行してください。

クローラーアクセスについての質問

どの user-agent を許可する必要がありますか?

少なくとも、OpenAI の GPTBot と OAI-SearchBot、Anthropic の ClaudeBot と Claude-SearchBot、Perplexity の PerplexityBot、そして Google の AI 製品向けの Google-Extended です。

robots.txt では許可しているのに、スキャンがブロックと報告するのはなぜですか?

ファイアウォールや CDN のルールが、robots.txt を読む前にリクエストを拒否することがあるからです。大規模なサイトは IP アドレスでクローラーを検証するため、WAF の設定も答えの一部であり、ファイルだけでは足りません。

すべての AI クローラーを許可すべきですか?

それは技術的な問題ではなく、ポリシーの判断です。検索用クローラーを許可し、学習用クローラーを禁止する、というのはよくある妥当な線引きで、robots.txt で表現できます。

根拠と出典

GEO can boost visibility by up to 40% overall in generative engine responses, and in the paper's Table 1 the best of the tested methods improve on the no-optimization baseline by 41% and 28%. — Generative Engine Optimization, KDD 2024

当サイトが使う重み付けはこの測定結果に従っています。そのため「引用可能性と根拠」が 11%、「AI コンテキストファイル」のディメンションが 5% です。重み付けの全体と、単一 URL のスキャンでは見えない部分は、方法論のページに書かれています。

Primary sources