リファレンス · 読了 11 分

AI クローラー一覧と robots.txt の書き方

2026 年 9 月時点で文書化されている AI の User-Agent を役割別に整理し、目的別の robots.txt を 3 パターン示します。

「AI ボットを遮断する」系の一覧の多くは、すべての User-Agent を 同じものとして扱っています。同じではありません。学習データを集めるもの、 検索インデックスを作るもの、人に頼まれてページを 1 枚取りに来るものがあり、 そのうち 2 つはそもそもクローラーではありません。間違ったものを遮断すると、 AI の回答からは消えるのに学習データには残る、という多くのサイト担当者の 意図と正反対の結果になります。

この一覧は 2026 年 9 月 24 日に、各社自身のクローラー説明ページから まとめました。ドキュメントのない事業者については、推測せずに 「ない」と書きます。

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
GPTBotOpenAI学習従う
OAI-SearchBotOpenAI検索索引(ChatGPT 検索)従う。表示には許可が必要
ChatGPT-UserOpenAIユーザー取得適用されない場合あり
ClaudeBotAnthropic学習従う。Crawl-delay も
Claude-SearchBotAnthropic検索索引従う
Claude-UserAnthropicユーザー取得従う(と明記)
GooglebotGoogle検索索引(AI Overviews 含む)従う
Google-ExtendedGoogle学習・グラウンディング用トークン。クローラーではないトークンのみ。検索に影響なし
PerplexityBotPerplexity検索索引従う
Perplexity-UserPerplexityユーザー取得原則無視(と明記)
meta-externalagentMeta学習または索引従う
Meta-WebIndexerMeta検索索引(Meta AI)従う
Meta-ExternalFetcherMetaユーザー取得無視しうる
ApplebotApple検索索引(Siri、Spotlight)従う
Applebot-ExtendedApple学習用トークン。クローラーではないトークンのみ。検索に影響なし
AmazonbotAmazon製品改善。学習に使う可能性従う。最大 30 日キャッシュ
Amzn-SearchBot / Amzn-UserAmazon検索 / ユーザー取得。学習には使わない従う
CCBotCommon Crawl公開クロールコーパス(多くの学習に利用)従う
BytespiderByteDance文書化なし事業者のドキュメントが見つからない

表の補足

  • 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 で確認します。

次に読む