ほとんどのrobots.txtは、重要なクローラーがひとつしかなかった時代に書かれたものです。今では1本の記事に対して、学習データを集めるボット、AI検索のインデックスを作るボット、そしてそのページについて質問したユーザー1人の代わりにアクセスするボットが、それぞれやって来ます。同じ会社が名前を変えて送ってくることも多く、ブロックしたときの影響はボットごとに異なります。
「AIをブロックするか、許可するか」という問いの立て方自体が間違っています。判断の単位は目的です。本記事では、誰がクロールしているのか、それぞれをブロックすると何を失うのかを整理したうえで、社内の会議で根拠をもって説明できるrobots.txtテンプレートを3つ紹介します。GEO・AEOガイド(英語)のクローラーポリシーの節よりも、はるかに踏み込んだ内容です。
AIアクセスの3つの種類
AIエージェントは3種類に分けられ、それぞれの損得はまったく逆です。
- モデル学習用クローラーは、学習データになり得るページを収集します。価値は一方通行で、コンテンツはモデルの改善に使われますが、リンクは返ってきません。
- AI検索用インデクサーは、AIの回答が出典を引用するときに使うインデックスを構築します。ブロックすれば引用の候補から外れます。
- ユーザー起点のフェッチャーは、ユーザーがアシスタントに頼んだことをきっかけに、特定のページを1つだけ開きます。クロールというより、一段階離れたところで動くそのユーザーのブラウザに近い存在です。
| エージェント | 運営元 | 目的 | ブロックすると |
|---|---|---|---|
GPTBot |
OpenAI | モデル学習 | 今後のページが学習対象外に。ChatGPT検索には影響なし |
ClaudeBot |
Anthropic | モデル学習 | 今後のページが学習対象外に |
CCBot |
Common Crawl | 公開ウェブアーカイブ(学習データとして広く利用) | 多くのモデル開発者が使うコーパスから外れる |
meta-externalagent |
Meta | AI学習とプロダクトのインデックス作成 | 今後のページがそれらの用途から外れる |
Bytespider |
ByteDance | ByteDanceのAI製品に関連するクロール | 遵守されれば対象外に。遵守状況に関する運営者の報告はまちまち |
OAI-SearchBot |
OpenAI | ChatGPT検索のインデックス | ChatGPT検索の回答に出典として表示されない |
Claude-SearchBot |
Anthropic | Claude検索のインデックス | Claudeの検索回答での露出が減る |
PerplexityBot |
Perplexity | Perplexity検索のインデックス | Perplexityで引用されにくくなる |
ChatGPT-User |
OpenAI | ユーザーの依頼によるページ取得 | 依頼したユーザーのためにChatGPTがページを開けない場合がある* |
Claude-User |
Anthropic | ユーザーの依頼によるページ取得 | そのユーザーのためにClaudeがページを読めない場合がある* |
Perplexity-User |
Perplexity | ユーザーの依頼によるページ取得 | そのユーザーのためにPerplexityがページを開けない場合がある* |
* ベンダーがユーザー起点のリクエストにもrobots.txtを適用している場合に限ります。詳しくは後述します。
つまり、同じベンダーでも、ある種類は許可して別の種類は拒否できます。GPTBotはブロックしOAI-SearchBotは許可する、という方針は筋が通っており、引用を重視するパブリッシャーの多くが最終的にたどり着く形です。また、効果はすべて将来に対してのみ働きます。robots.txtが制御するのはこれからの取得であり、収集済みのデータや学習済みのモデルには及びません。
ログに現れない制御トークン:Google-ExtendedとApplebot-Extended
AIポリシーに登場する名前の中には、クローラーではなくプロダクトトークンであるものがあります。ベンダーの通常のクローラーが、コンテンツを特定の目的に使う前に参照するrobots.txt上の名前です。
| トークン | 実際に取得するボット | 制御するもの | 制御しないもの |
|---|---|---|---|
Google-Extended |
Googlebot | Geminiモデルの学習、GeminiアプリとVertex AIでのグラウンディング | Google検索への掲載や順位(Googleの公式説明) |
Applebot-Extended |
Applebot | Appleの基盤モデルの学習 | SiriやSpotlightなどAppleの検索機能での表示 |
落とし穴はここです。AI OverviewsとAIモードはGoogle検索の一部なので、Google-Extendedの対象ではありません。これらを制御するのは通常の検索向けの手段、つまりnosnippet、data-nosnippet、max-snippet、最終的にはnoindexであり、いずれも通常のスニペットにも同じように影響します。執筆時点では、AI Overviewsだけから外れるスイッチは存在しません。Googleの最新ドキュメントを確認してください。
これらのトークンがアクセスログに現れることはありません。また、ファイアウォールで強制しようとしてはいけません。実際のトラフィックはGooglebotとApplebotなので、ブロックした瞬間に検索から消えてしまいます。
ベンダーごとの違い:特に-User系エージェントに注意
エージェント名は執筆時点で正確ですが、それを取り巻くルールは名前ほど安定していません。
- ユーザー起点のフェッチャーはグレーゾーンです。 これらのエージェントにもrobots.txtを適用すると明言するベンダーがある一方、人が直接依頼したリクエストなのでrobots.txtが適用されない場合があると明記するベンダーもあります。
-User系エージェントのブロックは、保証ではなく「お願い」だと考えてください。 - エージェントは分割され、改名され、追加されます。 古いポリシーは新しいエージェントを取りこぼします。
- すべてのクローラーが名乗るわけではありません。 robots.txtが届くのは、耳を傾けるつもりのあるボットだけです。
各ベンダーのクローラー関連ドキュメントをブックマークして四半期ごとに読み直し、robots.txtには確認日を記載しておきましょう。
robots.txtのつまずきやすい仕様
robots.txtはRFC 9309として標準化されています。AIポリシーの失敗の多くは戦略の問題ではなく、構文解析のルールに対する誤解から生まれます。
クローラーが従うのは自分のグループだけ
クローラーは、User-agentが自分の名前に一致するグループだけに従います。User-agent: *は専用グループを持たないボットのためのフォールバックであり、他のグループが継承するベースレイヤーではありません。最もよくあるバグはこのような形です。
# WRONG: GPTBot ignores the * group entirely
User-agent: *
Disallow: /dashboard/
Disallow: /account/
User-agent: GPTBot
Allow: /
これでGPTBotは/dashboard/と/account/をクロールできてしまいます。名前を指定したすべてのグループに、すべての制限を繰り返し書く必要があります。
# RIGHT: each named group carries the full set of restrictions
User-agent: *
Disallow: /dashboard/
Disallow: /account/
User-agent: GPTBot
Disallow: /dashboard/
Disallow: /account/
Allow: /はそもそも不要です。禁止されていないものはすべて許可されるからです。ボットにAllow: /を与えるスニペットを既存ルールの下に貼り付けると、そのボットは既存ルールすべてから黙って除外されます。1つのルールセットの上にUser-agent行を複数重ねると1つのグループになるため、共通ルールを1か所で管理できます。
パスは前方一致、最も長いルールが優先
Disallow: /appは/apple-pieもブロックします。前方一致を意図していないなら/app/と書きましょう。*は任意の文字列、$は末尾を表します。例:Disallow: /*.pdf$AllowとDisallowの両方が一致した場合は長いほうのルールが優先され、同じ長さならAllowが優先されます。
robots.txt自体のステータスコードも指示になる
RFC 9309では、404は「ルールなし」、5xxは「すべて禁止とみなす」と扱われます。デプロイのミスひとつで、サイト全体が開いたり閉じたりしかねません。また、クローラーはこのファイルを最大24時間キャッシュすることがあります。
鍵ではなく、ドアの貼り紙
robots.txtはあくまで任意のお願いです。従うのは準拠したクローラーだけで、それ以外に強制する手段はありません。非公開の領域は認証で守ってください。さらにこのファイルは公開されているため、Disallow: /internal-admin-2024/と書けば、その場所を宣伝しているのと同じです。
3つのポリシーテンプレート
例のパスは自社のものに置き換えてください。どのテンプレートも、共通の制限を必要なすべてのグループに記述しています。
A.「引用は歓迎、学習はお断り」
学習データは提供せずに、引用はされたいパブリッシャー向けです。
# AI crawler policy - reviewed 2026-09-24
# Training crawlers and training tokens: opt out
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
User-agent: meta-externalagent
User-agent: Bytespider
User-agent: Google-Extended
User-agent: Applebot-Extended
Disallow: /
# AI search indexers: welcome, minus the product
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Disallow: /app/
Disallow: /account/
Disallow: /api/
# Everyone else, including user-triggered fetchers
User-agent: *
Disallow: /app/
Disallow: /account/
Disallow: /api/
Sitemap: https://www.example.com/sitemap.xml
検索グループの内容は現時点では*と同じですが、ボット名を明記しておくことで意図が記録として残ります。なおGoogle-Extendedは学習だけでなくグラウンディングもカバーしているため、ブロックするとGeminiアプリでのグラウンディングからも外れます。Google検索とAI Overviewsには影響しません。
B.「編集コンテンツは開放、プロダクトは非公開」
学習も含めて公開コンテンツのリーチを最大化し、アプリケーション部分は一切クロールさせない構成です。
# AI crawler policy - reviewed 2026-09-24
# One group for every bot: nothing to bypass
User-agent: *
Disallow: /app/
Disallow: /account/
Disallow: /settings/
Disallow: /api/
Disallow: /search
Sitemap: https://www.example.com/sitemap.xml
名前付きのグループがないので、うっかり除外されるボットも生まれません。特定のクローラーを完全に締め出したい場合は、Disallow: /のグループを追加します。全面ブロックなら漏れようがありません。特定のクローラーだけ一部の扱いを変えたい場合は、まず*の全行をそのグループにコピーしてください。
C. 全面オプトアウト
# AI crawler policy - reviewed 2026-09-24
# Opt out of AI training, AI search and user-triggered AI fetches
User-agent: GPTBot
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: ClaudeBot
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
User-agent: CCBot
User-agent: meta-externalagent
User-agent: Bytespider
User-agent: Google-Extended
User-agent: Applebot-Extended
Disallow: /
User-agent: *
Disallow: /app/
Disallow: /account/
Sitemap: https://www.example.com/sitemap.xml
失うもの:ChatGPT検索、Claude、Perplexityからの引用と流入、そしてユーザーに頼まれたときにこれらのアシスタントがページを開く能力。得られないもの:AI Overviewsからの除外、収集済みデータの削除、robots.txtを無視するボットからの保護。オプトアウトが好みの問題ではなく法的な要件であれば、robots.txtは意思表示であり、強制するのはCDNの役割です。
アクセス元の検証:User-Agentは信用しない
文字列だけでは何も証明できない
どんなスクリプトでもUser-agent: GPTBotを名乗れます。スクレイパーが有名クローラーになりすますのは、まさにサイト側がその名前を通してしまうからです。ベンダーを疑う前に、本当にそのベンダーなのかを確認しましょう。
逆引きDNS、正引き確認、公開IPレンジ
Googlebotの場合は、逆引きを行ったあと、正引きで同じIPが返ることを確認します。
$ host 66.249.66.1
1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com.
$ host crawl-66-249-66-1.googlebot.com
crawl-66-249-66-1.googlebot.com has address 66.249.66.1
OpenAIとGoogleはクローラーのIPレンジを機械可読な形式で公開しており、同様に公開しているベンダーはほかにもあります。何も公開されていない場合、ユーザーエージェントは身元の証明ではなく自己申告にすぎません。
エージェント別にログを読む
# Hits per AI agent (combined log format)
grep -oiE 'gptbot|oai-searchbot|chatgpt-user|claudebot|claude-searchbot|claude-user|perplexitybot|perplexity-user|ccbot|meta-externalagent|bytespider' access.log \
| tr '[:upper:]' '[:lower:]' | sort | uniq -c | sort -rn
# Top paths requested by one agent
grep -i 'gptbot' access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -20
禁止したパスへのリクエスト(グループ設定のバグか、なりすまし)、見慣れないエージェント、帯域の急増を探します。クロールバジェットのガイド(英語)と同じく、URL単位ではなくパスのパターン単位で集計してください。次に、実際のURL一覧にポリシーを当てはめてみます。robots.txtとサイトマップを両方読むクロール、たとえばDeepAnalyzerを使えば、サイトマップのURLや引用されたいページが禁止プレフィックスの下に入っていないかがすぐにわかります。
本当に必要ならエッジで強制する
ルールに従わないボット、帯域の問題、契約上の義務がある場合は、CDNやWAFで強制します。たとえばCloudflareはAIクローラーをブロックする機能を提供しており、多くのボット管理製品は生の文字列ではなく検証済みの身元でマッチングします。逆に、robots.txtで招き入れているボットをエッジの設定がブロックしていないかも確認してください。
noai・llms.txtなどrobots.txt以外のシグナル
noaiとnoimageai
<meta name="robots" content="noai, noimageai">はどの標準にも含まれておらず、主要なAIクローラーが広く遵守を約束しているわけでもありません。入れても害はありませんが、頼るべきではありません。IETFのAI Preferencesの取り組みのように利用意向を標準化する動きはありますが、ベンダーが遵守を約束するまでは補助的な手段と考えてください。
llms.txt
llms.txtは、Answer.AIのJeremy Howard氏が2024年に提案したコミュニティ発の仕様案です。/llms.txtに置くMarkdownファイルで、推論時に言語モデルを重要なコンテンツへ案内します。権限を定めるファイルではなく、厳選された地図のようなものです。
# Example Docs
> Example is an API for scheduling background jobs.
## Docs
- [Quickstart](https://www.example.com/docs/quickstart.md): Install the SDK and run a first job
- [API reference](https://www.example.com/docs/api.md): Endpoints, parameters, errors
## Optional
- [Changelog](https://www.example.com/changelog.md): Release history
開発者向けドキュメントであれば、低コストで有用です。ただし公開されている情報の範囲では、主要なAI検索事業者のうち、これをランキングや引用のシグナルとして使うと表明したところはありません。半日あれば作れるので用意しておき、トラフィックは期待しない、というのが妥当なスタンスです。
効果測定:AIリファラーとクロール量
AIからの流入。 アナリティクスで、リファラーを条件にしたセグメントを作成します。
chatgpt\.com|perplexity\.ai|claude\.ai|gemini\.google\.com|copilot\.microsoft\.com
ChatGPTからのリンクにはutm_source=chatgpt.comが付くことが多いため、キャンペーンのソースも確認してください。実際より少なく計測される前提で見るべきです。アプリ経由のトラフィックはダイレクトに分類され、AI Overviewsからのクリックは通常のGoogle自然検索と区別がつきません。
クロール量。 エージェント別の月間リクエスト数、転送バイト数、禁止パスへのリクエスト数を確認します。あるベンダーのクロール量と、そのベンダーの製品から送られてくる流入を並べて比較しましょう。
読めているか。 すべてのAIクローラーがJavaScriptを実行するわけではありません。ポリシーを開放しても、ボットが中身のないHTMLしか受け取れなければ意味がありません。生のHTMLとレンダリング後の結果を比較し(Strong Modeはヘッドレスブラウザでページをレンダリングします)、JavaScriptレンダリングとクロール可能性(英語)も参考にしてください。
四半期ごとに、次のルーティンを回しましょう。ベンダーのドキュメントを読み直す。エージェント別のリクエスト数を数え、上位のIPを検証する。禁止パスへのリクエストを1件ずつ追う。AIからの流入を前四半期と比較する。主要なアシスタントに代表的な質問を10個投げ、誰が引用されているかを記録する。robots.txtの確認日を更新する。
AIクローラー方針のチェックリスト
- 引用されたいコンテンツと学習から外したいコンテンツが文書化され、責任者が決まっている
- 名前を指定したすべてのAIグループに、
*の制限が漏れなく繰り返されている /robots.txtが200を返し、デプロイのたびに確認している- 非公開領域は認証が必要で、robots.txtに秘密のパスを書いていない
- ファイアウォールで
Google-ExtendedやApplebot-Extendedを「ブロック」しようとしていない - AI Overviewsへの露出を、検索向け制御手段の問題として意識的に判断している
- CDNのボット設定がrobots.txtと矛盾していない
- AIリファラーのセグメントがあり、ログを毎月エージェント別に確認している
- 四半期ごとの見直しが予定に組み込まれている
よくある質問
GPTBotをブロックすると、ChatGPTから自社のコンテンツは消えますか?
消えません。今後の学習用の収集が止まるだけで、収集済みのデータは削除されません。ChatGPT検索での表示はOAI-SearchBot、ユーザーの依頼による訪問はChatGPT-Userが担うため、3つを個別に判断してください。
Google-Extendedをブロックすると、順位が下がったりAI Overviewsから外れたりしますか?
Googleは、Google-ExtendedがGoogle検索への掲載や順位に影響しないと説明しています。AI Overviewsは検索の一部であり、nosnippetやmax-snippetといった検索向けの制御に従います。このトークンが制御するのは、Geminiの学習とGeminiアプリでのグラウンディングです。
禁止したパスをボットがクロールしているのはなぜですか?
多くの場合、そのボットに制限の抜けた専用のUser-agentグループがあり、*のルールがそもそも適用されていません。そうでなければ、なりすましです。まずグループ設定を確認し、次に逆引きDNSかベンダーの公開IPレンジでIPを検証してください。
llms.txtは追加すべきですか?
開発者向けドキュメントを公開しているなら、追加をおすすめします。半日で作れて、アシスタントが適切なページを見つける助けになります。ただし、主要なAI検索事業者でこれをランキングや引用のシグナルとして使うと公に表明したところはないため、トラフィックの変化は期待しないでください。
ポリシーはどのくらいの頻度で見直すべきですか?
四半期ごと、そしてベンダーが新しいエージェントを発表したときです。エージェント名やrobots.txtの扱いは、特にユーザー起点のフェッチャーを中心に変わり続けています。ログで後から気づくより、定期的に見直すほうがはるかに低コストです。