30 秒で分かる結論:AI クローラーを役割で分ける
AI の User-Agent を 3 つの役割のどれかに分類すれば、robots.txt の判断は 単純になります。
- 学習用クローラーは、モデルの学習に使われる可能性のある コンテンツを集めます。GPTBot、ClaudeBot、meta-externalagent、CCBot、 Amazonbot と、トークンである Google-Extended、Applebot-Extended。 これらを遮断しても、その事業者の検索や回答に載るかどうかには影響しません。
- 検索インデックス用は、AI 検索機能の裏側にある索引を 作ります。OAI-SearchBot、Claude-SearchBot、PerplexityBot、Meta-WebIndexer、 Amzn-SearchBot、そして従来の Googlebot と Applebot。 遮断すると、その検索結果から消えます。
- ユーザー起点の取得は、人が尋ねたから回答時にページを 読みに来ます。ChatGPT-User、Claude-User、Perplexity-User、 Meta-ExternalFetcher、Amzn-User。多くの事業者が「robots.txt を 無視しうる」と文書化しています。
よくある間違いは、名前に「bot」が付くものすべてに Disallow: / を 書くことです。目的が「学習には使わせないが、引用はしてほしい」なら、 1 つ目のグループだけを遮断し、残りの 2 つは許可します。 下のレシピはまさにそれです。
一覧(事業者別)
役割は各社ドキュメントの説明を要約したものです。robots.txt の列は 「事業者がそう述べている」ことであって、ログで証明されたことではありません。
| User-Agent | 事業者 | 役割 | robots.txt |
|---|---|---|---|
| GPTBot | OpenAI | 学習 | 従う |
| OAI-SearchBot | OpenAI | 検索索引(ChatGPT 検索) | 従う。表示には許可が必要 |
| ChatGPT-User | OpenAI | ユーザー取得 | 適用されない場合あり |
| ClaudeBot | Anthropic | 学習 | 従う。Crawl-delay も |
| Claude-SearchBot | Anthropic | 検索索引 | 従う |
| Claude-User | Anthropic | ユーザー取得 | 従う(と明記) |
| Googlebot | 検索索引(AI Overviews 含む) | 従う | |
| Google-Extended | 学習・グラウンディング用トークン。クローラーではない | トークンのみ。検索に影響なし | |
| PerplexityBot | Perplexity | 検索索引 | 従う |
| Perplexity-User | Perplexity | ユーザー取得 | 原則無視(と明記) |
| meta-externalagent | Meta | 学習または索引 | 従う |
| Meta-WebIndexer | Meta | 検索索引(Meta AI) | 従う |
| Meta-ExternalFetcher | Meta | ユーザー取得 | 無視しうる |
| Applebot | Apple | 検索索引(Siri、Spotlight) | 従う |
| Applebot-Extended | Apple | 学習用トークン。クローラーではない | トークンのみ。検索に影響なし |
| Amazonbot | Amazon | 製品改善。学習に使う可能性 | 従う。最大 30 日キャッシュ |
| Amzn-SearchBot / Amzn-User | Amazon | 検索 / ユーザー取得。学習には使わない | 従う |
| CCBot | Common Crawl | 公開クロールコーパス(多くの学習に利用) | 従う |
| Bytespider | ByteDance | 文書化なし | 事業者のドキュメントが見つからない |
表の補足
- OpenAI には OAI-AdsBot もありますが、ChatGPT に広告として 提出されたページしか確認しないので、ほとんどのサイトには無関係として 省きました。
- Anthropic は、ユーザー起点の Claude-User も robots.txt に 従うと述べている唯一の事業者です(ドキュメントは 2026 年 4 月更新)。 3 つのボットすべてが
Crawl-delayにも対応しています。 - Meta には、共有時のリンクプレビュー用 facebookexternalhit と 広告用 Meta-ExternalAds もあります。どちらも上の意味での AI クローラーでは ありません。
- Bytespider は ByteDance の学習用クローラーとして広く 報じられていますが、目的、robots.txt の扱い、IP 範囲を説明する事業者の ページは見つかりませんでした。「不明」として扱い、User-Agent で遮断するのは 構いませんが、それだけに頼らないでください。
ログには決して現れない 2 つのトークン
Google-Extended と Applebot-Extended は、どの実在クローラーよりも混乱を 生んでいます。どちらもリクエストを発生させません。Google のクローラー説明では、 Google-Extended は将来の Gemini モデルの学習と、Gemini アプリや Vertex AI での グラウンディングにコンテンツを使ってよいかを制御するもので、検索への収録には 影響せず、ランキングシグナルでもない、とされています。Apple のページには、 Applebot-Extended は Web ページをクロールせず、これを拒否したページも検索結果に 載り、そのルールはランキングでも考慮されない、とあります。
つまり、robots.txt でこれらのトークンにルールを書き、実在のクローラー (Googlebot、Applebot)がそのルールを読んで、取得したコンテンツの使い方に 適用します。アクセスログでこの名前を検索しても必ず 0 件で、それは何も 壊れていないということです。
robots.txt のレシピ 3 パターン
レシピ 1:すべて許可(初期状態)
robots.txt にこれらのボット向けのルールがなければ、許可されています。Allow 行を足す必要はありません。書き出す理由があるとすれば、 不明なボットを一括で拒否している WAF やテンプレートを上書きするときだけです。
レシピ 2:引用はしてほしい、学習には使わせない
最も多い意図です。学習用グループを遮断し、検索用とユーザー取得用には 何も書きません。
# 学習用クローラーとトークン:拒否 User-agent: GPTBot User-agent: ClaudeBot User-agent: Google-Extended User-agent: Applebot-Extended User-agent: meta-externalagent User-agent: Amazonbot User-agent: CCBot User-agent: Bytespider Disallow: / # 検索索引用とユーザー取得用は、何も書かなければ許可のまま: # OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, # PerplexityBot, Perplexity-User, Googlebot, Applebot ... User-agent: * Allow: / Sitemap: https://example.jp/sitemap.xml
複数の User-agent 行を 1 つの Disallow の上に まとめる書き方は Robots Exclusion Protocol で有効で、Google 自身のパーサーも この形を前提にしています。なお Amazon は、Amazonbot が robots.txt を最大 30 日 キャッシュすると述べているので、変更が効くまで 1 か月かかることがあります。
レシピ 3:AI は一切お断り
3 グループすべてを遮断します。何を手放すかは理解しておいてください。 ChatGPT、Claude、Perplexity の回答での引用はなくなり、Meta と Amazon は 検索と AI が一体なので、それらの製品での露出も減ります。通常の Web 検索からも 消えてよいのでない限り、Googlebot と Applebot はここに含めないでください。
User-agent: GPTBot User-agent: OAI-SearchBot User-agent: ChatGPT-User User-agent: ClaudeBot User-agent: Claude-SearchBot User-agent: Claude-User User-agent: Google-Extended User-agent: PerplexityBot User-agent: Perplexity-User User-agent: meta-externalagent User-agent: Meta-WebIndexer User-agent: Meta-ExternalFetcher User-agent: Applebot-Extended User-agent: Amazonbot User-agent: CCBot User-agent: Bytespider Disallow: /
ここまでしても、ユーザー起点の取得を文書化している事業者(OpenAI、Perplexity、 Meta)は、人が明示的に求めたページは読みに来ることがあると述べています。 robots.txt はお願いであって、ファイアウォールではありません。 強制が必要なら、それはテキストファイルではなく WAF やボット管理の設定です。
名乗っているとおりのボットかを確認する
User-Agent 文字列の偽装にはコストがかからず、世の中の「GPTBot」トラフィックの かなりの部分は名前を借りたスクレイパーです。ログの行を根拠に何かする前に、 送信元 IP を各社の公開範囲と照合してください。
- OpenAI:
openai.com/gptbot.json、searchbot.json、chatgpt-user.json - Anthropic:
claude.com/crawling/bots.json - Perplexity:
perplexity.com/perplexitybot.jsonとperplexity-user.json - Apple:
search.developer.apple.com/applebot.json、または*.applebot.apple.comへの逆引き DNS - Amazon:
developer.amazon.com/amazonbotからリンクされている IP アドレスのページ - Common Crawl:
index.commoncrawl.org/ccbot.json、または*.crawl.commoncrawl.orgへの逆引き DNS - Google:クローラー説明ページの確認方法(
googlebot.comまたはgoogle.comへの逆引き DNS)
OpenAI の一覧にない IP から来た「GPTBot」は GPTBot ではなく、GPTBot 向けの robots.txt ルールでその挙動は変わりません。
Cloudflare を使っている場合
Cloudflare には、robots.txt の先頭にルールを差し込む「管理された robots.txt」 設定があります(ドキュメントは 2026 年 8 月更新)。そのページの時点で、Content-Signal 行(検索は許可、AI 学習は拒否)と、Amazonbot、 Applebot-Extended、Bytespider、CCBot、ClaudeBot、Google-Extended、GPTBot、 meta-externalagent への Disallow: / を追加します。 レシピ 2 に近い内容で、オプトイン方式、Free を含む全プランで使えます。 頼る前に生成結果を確認してください。対象ボットの一覧は変わりうるもので、 IP の検証まではしてくれません。
llms.txt の位置づけ
アクセスの判断には一切関わりません。llms.txt は、すでに入場を 許されたエージェントにサイトを説明するもの。robots.txt は 誰を入れるかを決めるもの。llms.txt の仕様は、2 つのファイルの目的が違うと 明言しています。実務上の関係は 1 つだけで、robots.txt で拒否したクローラーは llms.txt も取得しに来ません。レシピ 3 は、それらの事業者に対して このファイルを見えなくします。
どのボットがサイトに入れるかを確認する
URL を入れて診断を実行すると、robots.txt を取得して主要な AI User-Agent がどこまで読めるかを報告し、あわせて llms.txt の下書きを作ります。
診断を実行する →よくある質問
robots.txt で許可すべき AI クローラーはどれですか?
AI の回答に載りたいなら、検索用とユーザー取得用のボットを許可します。OpenAI の OAI-SearchBot と ChatGPT-User、Anthropic の Claude-SearchBot と Claude-User、Perplexity の PerplexityBot と Perplexity-User、そして従来どおり Googlebot です。学習用クローラー(GPTBot、ClaudeBot、Google-Extended、Applebot-Extended、meta-externalagent、CCBot、Amazonbot)を許可するかは別の判断で、各社のドキュメントによれば検索での表示には影響しません。
GPTBot を遮断すると ChatGPT から消えますか?
ChatGPT の検索からは消えません。OpenAI は GPTBot を「学習に使われる可能性のあるコンテンツを収集するクローラー」、OAI-SearchBot を「ChatGPT 検索でサイトを表示するためのボット」と分けて説明しています。GPTBot だけを遮断しても OAI-SearchBot と ChatGPT-User には影響しません。Anthropic(ClaudeBot と Claude-SearchBot)や Apple(Applebot-Extended と Applebot)も同じ分け方です。
Google-Extended や Applebot-Extended がログに一度も出てこないのはなぜですか?
クローラーではないからです。どちらも robots.txt 用のトークンで、実際のクローラー(Googlebot、Applebot)が取得したコンテンツを AI の学習に使ってよいかを判断するために読むものです。Google も Apple も、このトークンは検索への収録や順位に影響しないと明記しています。grep で探しても出てきません。設定だけができるものです。
AI クローラーは本当に robots.txt に従いますか?
ドキュメントのあるものは「従う」と述べていますが、意図的な例外が 1 種類あります。ユーザーの操作に応じて取得するボットです。OpenAI の ChatGPT-User、Perplexity の Perplexity-User、Meta の Meta-ExternalFetcher は、人がそのページを求めたという理由で robots.txt を無視しうると文書化されています。Anthropic は例外的に、Claude-User も robots.txt に従うと述べています。ドキュメントのないクローラーについては、何かに従うと仮定できません。
llms.txt はこの話と関係がありますか?
ありません。アクセスを制御するのは robots.txt であって、llms.txt ではありません。llms.txt の仕様自身がそう述べています。robots.txt であるクローラーを遮断すると、そのクローラーは llms.txt も取得しなくなるので、2 つのファイルはその方向でだけ関係します。
リクエストが本当に OpenAI や Anthropic からのものか、どう確認しますか?
User-Agent 文字列は信用しないでください。簡単に偽装できます。主要各社は IP 範囲を公開しています。openai.com/gptbot.json(searchbot.json、chatgpt-user.json も)、claude.com/crawling/bots.json、perplexity.com/perplexitybot.json、search.developer.apple.com/applebot.json、Amazon の amazonbot の IP ページ、index.commoncrawl.org/ccbot.json です。リクエスト元 IP をこれらと照合するか、各社が文書化している逆引き DNS で確認します。
次に読む
- → llms.txt vs robots.txt vs sitemap.xml(ルートの 3 ファイルの役割分担)
- → ChatGPT は llms.txt を読んでいるのか(OpenAI のボットが取りに来るもの、来ないもの)
- → 解説記事の一覧へ戻る