SEO・GEO教科書 · Lesson 10
AIクローラー14種の一覧と、robots.txtでの書き分け
AI検索・AI学習のクローラー14種を、User-agent名・提供元・拒否したときに起きることの一覧にしました。学習だけ拒否してAI検索には出る書き方、コピーして使えるrobots.txtのひな形3種、公式IP帯でなりすましを見分ける手順まで、各社の公式ドキュメントを出典に載せています。
AI各社のクローラーをUser-agent単位で見分け、robots.txtに意図どおり書き分けられるようになる。
このレッスンで扱うこと
- AI検索用・AI学習用・検索エンジン用のクローラー14種の一覧(User-agent名・提供元・拒否したときに起きること)
- 学習には使わせずAI検索には出す書き方と、コピーして使えるrobots.txtのひな形3種
- GPTBotを名乗る偽装アクセスを、提供元公式のIP帯で見分ける手順
- llms.txtと構造化データの位置づけ(Googleが不要と明言している範囲)
2つの経路と必要な設定
生成AIの回答に載る経路は2つあり、必要な作業が違います。Google検索のインデックス経由(AIによる概要・AIモード)は SEOそのもので、追加の設定はありません。AI各社がページを取得する経路には、検索用ボットによる巡回と、 ユーザーが質問したときに ChatGPT-User などが、その質問に応じてページへアクセス(取得)することがあります。 検索用ボットはrobots.txtで許可していることが前提になります。[出典: AI 機能とウェブサイト]
Figure
経路ごとに、どこで止まるか
Step 1
経路A: Googleのインデックス
Googlebotがクロールし、通常の検索インデックスに登録される。AI機能はここを参照する。
ここで落ちると インデックスされていなければ、AIによる概要・AIモードの参照元にならない。
Step 2
経路B: AI各社によるページ取得
OAI-SearchBotなどは個別に巡回し、ChatGPT-Userなどはユーザーの質問に応じてページへアクセス(取得)することがある。どちらも回答の材料になり得る。
ここで落ちると 検索用ボットをrobots.txtで拒否すると、その事業者の検索結果に出にくくなる。ユーザー起点のアクセス(取得)はrobots.txtが適用されない場合がある。
Step 3
共通: 抜き出せる本文
見出しの直下に質問へ直答する段落があり、数値や条件が構造化されている。
ここで落ちると 取得されても、引用できるまとまりが無ければ回答に使われにくい。
つまりGEOの実装作業は、設定(クローラーを止めない)と書き方(抜き出せる形にする)の 2つに集約されます。書き方はレッスン06で扱ったので、 このレッスンでは設定を決めます。
AIクローラーの一覧と役割
AI関連のクローラーは、大きく「AI検索の回答に出るためのもの」「モデルの学習に使われるもの」「従来の検索エンジンのもの」に分かれます。同じ事業者でも用途ごとにユーザーエージェント名が分かれていることがあり、そこが書き分けの起点になります。
AI検索の回答に出るため
AIが回答を作るときにページを読み、回答内にリンクを出すためのクローラー。ブロックすると引用されなくなる。
| User-agent | 提供元 | 何をするか | 拒否すると |
|---|---|---|---|
OAI-SearchBot | OpenAI | ChatGPTの検索結果にサイトを表示するためのクローラー。学習用のGPTBotとは独立して設定できる。 | ChatGPTの検索結果に表示されなくなる。 |
ChatGPT-User | OpenAI | ユーザーの操作を起点に、ChatGPTがその場でページへアクセス(取得)することがある。自動巡回はしない。(ユーザー起点のアクセスのため、robots.txt が適用されない場合があると公式に書かれている。) | ChatGPTがページを取得できず、回答にそのページの内容が使われなくなる。 |
PerplexityBot | Perplexity | Perplexityの検索結果にサイトを出し、リンクするためのクローラー。基盤モデルの学習には使われない。 | Perplexityの検索結果に表示されなくなる。 |
Perplexity-User | Perplexity | ユーザーの質問に答えるために、Perplexityがその場でページへアクセス(取得)し、回答にリンクを添える。巡回や学習には使われない。 | Perplexityがページを取得できず、回答にそのページの内容が使われなくなる。 |
Claude-SearchBot | Anthropic | Claudeの検索結果の品質を上げるためにコンテンツを解析するクローラー。 | 検索用のインデックスに入らなくなり、Claudeの回答での露出が減る。 |
Claude-User | Anthropic | ユーザーの操作を起点に、Claudeがその場でページへアクセス(取得)する。自動巡回はしない。 | Claudeがページを取得できず、回答にそのページの内容が使われなくなる。 |
検索エンジンのインデックス
従来の検索結果に載せるためのクローラー。Googleの場合はAI Overview・AI Modeもこれで制御する。
| User-agent | 提供元 | 何をするか | 拒否すると |
|---|---|---|---|
Googlebot | Google検索のクローラー。AI Overview・AI Modeのための別トークンは無く、Googlebotがその制御になる。(検索には載せたうえで引用文だけ抑えたい場合は nosnippet / data-nosnippet / max-snippet を使う。) | Google検索に載らなくなる。AI Overview・AI Modeにも出なくなる。 | |
Bingbot | Microsoft | Bing検索のクローラー。 | Bing検索に載らなくなる。 |
AIモデルの学習に使われる
生成AIの学習データを集めるクローラー。ブロックしても検索結果やAI検索での引用には影響しない。
| User-agent | 提供元 | 何をするか | 拒否すると |
|---|---|---|---|
GPTBot | OpenAI | OpenAIの基盤モデルの学習にコンテンツを使うためのクローラー。 | OpenAIのモデル学習に使われなくなる。ChatGPTの検索結果への表示(OAI-SearchBot)とは別。 |
ClaudeBot | Anthropic | Anthropicの生成AIモデルの学習に使う可能性のあるコンテンツを集めるクローラー。 | 今後のモデル学習データから除外される。 |
Google-Extended | Geminiアプリと Vertex AI 向けの学習・グラウンディングにコンテンツを使うかどうかを制御するトークン。単独のUser-Agent文字列は持たない。(AI Overview・AI Modeへの表示は Google-Extended では止まらない(制御は Googlebot 側)。) | Geminiアプリなどの学習・グラウンディングに使われなくなる。Google検索への掲載には影響しない。 | |
Applebot-Extended | Apple | Appleの生成AIモデルの学習にコンテンツを使うかどうかを制御するトークン。 | Appleの生成AIモデルの学習に使われなくなる。Applebotによる検索用のクロールは続く。 |
meta-externalagent | Meta | AIモデルの学習、またはコンテンツのインデックスによる製品改善に使われるクローラー。 | Metaのモデル学習・インデックスに使われなくなる。 |
CCBot | Common Crawl | Common Crawlの公開アーカイブを作るクローラー。 | Common Crawlの公開データセットに含まれなくなる。 |
注意点が2つあります。1つ目は、ChatGPT-User や Perplexity-User のようなユーザー起点のアクセスは、ユーザーの質問に応じて対象ページへアクセス(取得)することがあるもので、自動巡回ではありません。 そのためrobots.txtが適用されない場合があると各社が説明しています。2つ目は、GoogleのGoogle-ExtendedはGeminiアプリの学習・グラウンディング用のトークンで、 Google検索へのサイトの登録やランキングには影響しないと明記されていることです。[出典: Google の一般的なクローラー]
なりすましをログで見分ける(公式IP一覧)
アクセスログのUser-agentは自己申告です。GPTBotやGooglebotを名乗るだけの偽装アクセスが混ざるため、AIクローラーの巡回状況を数えるときは、提供元が公開しているIPアドレス帯と照合してから数えます。ここには、IP一覧のURLを当サイトで実際に取得して確認できた提供元だけを載せます。
| User-agent | 提供元 | IPアドレス帯の一覧(JSON) | 補足 |
|---|---|---|---|
OAI-SearchBot | OpenAI | openai.com/searchbot.json | |
ChatGPT-User | OpenAI | openai.com/chatgpt-user.json | |
PerplexityBot | Perplexity | www.perplexity.com/perplexitybot.json | |
Perplexity-User | Perplexity | www.perplexity.com/perplexity-user.json | |
Googlebot | developers.google.com/static/crawling/ipranges/common-crawlers.json | 逆引きDNSで googlebot.com / google.com / googleusercontent.com のいずれかになることでも確認できる | |
Bingbot | Microsoft | www.bing.com/toolbox/bingbot.json | |
GPTBot | OpenAI | openai.com/gptbot.json | |
Applebot-Extended | Apple | search.developer.apple.com/applebot.json | Applebot-Extended は単独のクローラーではなく、Applebot と同じIP帯から来る |
照合の手順は3段階です。①ログをUser-agentで絞る、②送信元IPが一覧のCIDRに含まれるかを見る、③含まれなければ「名乗っているだけ」として集計から外す。 Googleは、IP一覧との照合のほかに、送信元IPを逆引きして googlebot.com・google.com・googleusercontent.com のいずれかになり、 さらにその名前を正引きすると元のIPに戻ることを確認する方法を案内しています。[出典: Googlebot などの Google クローラーの確認]
この照合を通さずにUser-agentだけで数えると、AIクローラーの訪問数が実際より多く出ます。 当サイトのアクセスログ29日分でこの手順を通したところ、Googlebotを名乗るリクエストの27.5%がGoogle公開のIP範囲の外にあり、 同じ期間にGoogleOtherがGooglebotの15倍(10万9,551件と1万856件)来ていました。手順と集計の内訳はIPまで照合したクローラーログ29日分に置いてあります。 巡回の有無を記事や報告に書くときは、照合後の数だけを使います。 流入側(人がAIの回答からクリックして来た分)の見分け方はレッスン11の「AI検索からの流入を測る」にあります。
robots.txtでの書き分け
AI検索の回答に引用されたいなら、検索用のクローラー(OAI-SearchBot・PerplexityBotなど)は許可します。モデルの学習に使われたくない場合は、学習用のクローラー(GPTBot・Google-Extendedなど)だけを拒否します。GPTBotを拒否してもChatGPTの検索結果からは消えません(そちらはOAI-SearchBotの担当です)。設定の方針は次の3つに分かれ、どれを選ぶかはAI経由の露出をどう扱いたいかで決まります。決めたら、robots.txtに書いてSearch Consoleのrobots.txtレポートで読み取り結果を確認します。
Figure
3つの方針
AI検索には出す/学習には使わせない
もっとも選ばれる設定
- OAI-SearchBot・PerplexityBot・Claude-SearchBotなどは許可
- GPTBot・ClaudeBot・Google-Extended・CCBotなどは拒否
- 回答内での引用は受け入れ、モデル学習からは外れる
すべて許可
露出を最大化する
- AI検索の引用も、モデル学習も止めない
- 設定としては最も単純
- 自社コンテンツが学習に使われることを許容できる場合
AI関連をすべて拒否
AI経由の流入は無くなる
- 従来の検索エンジンだけを許可する
- ChatGPTやPerplexityの回答に出なくなる
- 有料コンテンツや会員向け情報を持つ場合の選択肢
AI検索には出す・学習には使わせない
回答内での引用は受け入れつつ、モデルの学習データから外す。もっとも選ばれる設定。
# AI検索の引用は許可、モデル学習は拒否 User-agent: GPTBot Disallow: / User-agent: ClaudeBot Disallow: / User-agent: Google-Extended Disallow: / User-agent: Applebot-Extended Disallow: / User-agent: meta-externalagent Disallow: / User-agent: CCBot Disallow: / User-agent: * Disallow: Sitemap: https://example.com/sitemap.xml
すべて許可
引用も学習も止めない。露出を最大化する設定。
# すべてのクローラーを許可 User-agent: * Disallow: Sitemap: https://example.com/sitemap.xml
AI関連をすべて拒否
AI検索の引用も学習も止め、従来の検索エンジンだけを許可する。AI経由の流入は無くなる。
# AI検索・AI学習を拒否、検索エンジンは許可 User-agent: OAI-SearchBot Disallow: / User-agent: ChatGPT-User Disallow: / User-agent: PerplexityBot Disallow: / User-agent: Perplexity-User Disallow: / User-agent: Claude-SearchBot Disallow: / User-agent: Claude-User Disallow: / User-agent: GPTBot Disallow: / User-agent: ClaudeBot Disallow: / User-agent: Google-Extended Disallow: / User-agent: Applebot-Extended Disallow: / User-agent: meta-externalagent Disallow: / User-agent: CCBot Disallow: / User-agent: * Disallow: Sitemap: https://example.com/sitemap.xml
いま自分のサイトがどのボットを止めているかは、ページ診断にURLを入れると robots.txtを取得してAI検索クローラーの許可状況まで判定します。
書き換えても結果はすぐには変わりません。OpenAIはrobots.txtの変更が検索側の挙動に反映されるまでおよそ24時間かかると説明し、 Perplexityも設定の反映に最大24時間かかるとしています。変更した直後に結果が変わらないことをもって「効果がない」と判断しないでください。[出典: Overview of OpenAI Crawlers][出典: PerplexityBot]
書き分けができるのは、事業者が用途ごとにボット名を分けている場合だけです。OpenAIの場合、 検索の回答に出したいなら OAI-SearchBot を許可し、基盤モデルの学習に使われたくないならGPTBot を拒否する、という指定ができます。[出典: Overview of OpenAI Crawlers]Perplexityも PerplexityBot の許可を推奨しています。[出典: PerplexityBot]すべての事業者が分離しているわけではないため、各社の公式ドキュメントで現在のボット名を確認してください。
やらなくていいこと
GEOという言葉のまわりには、効果が確認されていない作業が多く流通しています。Googleは公式ドキュメントで、 AI機能に表示されるために新たにコンピュータが解読可能なファイルやAIテキストファイルを作る必要はなく、 特別なschema.orgの構造化データを追加する必要もないと明記しています。[出典: AI 機能とウェブサイト]
Figure
GEOで手を動かす場所
やること
- robots.txtでAI検索用クローラーを止めていないか確認する
- 見出しの直下に、質問へ1文で答える段落を置く
- 数値・条件を表と箇条書きで構造化する
- 更新日と出典をページ上に表示する
- アクセス解析でAI検索からの参照を分けて見る
やらなくていいこと
- AI機能に出るための特別な構造化データを追加する(Googleが不要と明記)
- llms.txtを設置することを、本文やサイト構造の整備の代わりにする
- AI向けと称してユーザーに見せない隠しテキストを置く
- キーワードを詰め込む(生成AIの回答での可視性にほとんど効果がないと報告されている)
| よく聞く施策 | 現時点で確認できること | 扱い |
|---|---|---|
| llms.txt の設置 | コミュニティが提案している任意の仕様。設置すれば引用されるという検索・AI事業者の公式な説明は無い。当サイトのログでは、AI系クローラーのリクエスト1万9,347件のうちllms.txtを取りに来たものが29日間で0件だった(同じ場所のrobots.txtは取得されている) | 本文やサイト構造の代わりではなく、補助として置くなら可 |
| AI向けの構造化データ | Googleは、AI機能に表示されるために特別なschema.orgの構造化データは必要ないと明記 | 不要。構造化データは通常の目的(内容を正確に伝える)で使う |
| AI可視性ツールでの計測 | ツールが投げた質問への回答を測るもので、実ユーザーが受け取った回答そのものではない | 測っているものを理解したうえでなら有用(レッスン11) |
| 引用・統計・出典を本文に足す | GEO論文が、引用の追加で最大41%、統計で約32%、出典で約28%の可視性向上を報告 | 優先度が高い。レッスン06の書き方に含まれる |
引用される形に整える
設定が済んだら、主要ページを引用される形に整えます。作業はレッスン06の書き方と同じですが、ここでは「AIが読む単位」に注目して点検します。
| 点検する場所 | 満たしている状態 | 直し方 |
|---|---|---|
| h2直下の段落 | その見出しの問いに1文で答えている | 見出しを質問形に直し、答えを冒頭に移動する |
| 指示語 | 「これ」「その」で前を参照していない | 主語を毎回書き、そのセクションだけで意味が通るようにする |
| 数値の置き場所 | 表か箇条書きになっている | 文章に埋もれている条件を表に出す |
| 出典の位置 | その記述の直後にリンクがある | 末尾の一覧に加えて、本文中にもリンクを置く |
| 更新日 | ページ上に表示されている | 公開日と更新日を分けて表示する |
| 用語の定義 | そのページ内で1度は定義している | 略語の初出で正式名称と定義を書く |
最後に、AI検索での露出を分けて見られるようにしておきます。GoogleのAIによる概要とAIモードでの表示回数は、 Search Consoleの生成AIパフォーマンスレポートで確認できます。指標は表示回数のみで、クリック数は含まれません。 元のデータは検索パフォーマンスレポート(検索結果)のウェブ検索タイプに含まれるものです。[出典: 生成 AI パフォーマンス レポート(検索)]ChatGPTやPerplexityからの流入は、アクセス解析の参照元ドメインで判別します。使い方はSearch Consoleの使い方とレッスン11で扱います。
到達チェックリスト
次の項目を自分のサイトで確認できたら、このレッスンは終わりです。1つでも「まだ」がある場合は、次のレッスンに進む前にそこを埋めてください。
- robots.txt を開き、OAI-SearchBot・PerplexityBot・Claude-SearchBotなどの扱いを把握した
- 検索用クローラーと学習用クローラーのどちらを許可するかを方針として決めた
- 主要ページの各見出し直下に、質問へ1文で答える段落を置いた
- 更新日と出典をページ上に表示している
- AI検索からの流入を、アクセス解析の参照元で分けて見られるようにした
よくある質問
AIクローラーをブロックすると何が起きますか
ボットごとに影響が異なります。OpenAIは、OAI-SearchBotを拒否したサイトはChatGPTの検索の回答に表示されないと説明し、GPTBotの拒否は基盤モデルの学習からの除外を意味するとしています。PerplexityもPerplexityBotの許可を推奨しています。GoogleのGoogle-ExtendedはGeminiアプリの学習・グラウンディング用のトークンで、Google検索へのサイトの登録やランキングには影響しないと明記されています。
学習には使われたくないが、AI検索には出たい場合はどうしますか
検索用のクローラーと学習用のクローラーが別のユーザーエージェント名で分かれている事業者では、書き分けができます。OpenAIの場合、検索の回答に出したいならOAI-SearchBotを許可し、基盤モデルの学習に使われたくないならGPTBotを拒否する、という指定が可能です。すべての事業者が分離しているわけではないため、各社の公式ドキュメントで現在のボット名を確認してください。
llms.txtを置けばAIに引用されますか
llms.txtはコミュニティが提案している任意の仕様で、設置すれば引用されると保証する検索エンジンやAI事業者の公式な説明はありません。Googleは、AI機能に表示されるために新しいAIテキストファイルを作る必要はないと明記しています。設置する場合は、本文やサイト構造の代わりではなく補助として扱うのが安全です。
GEO専用の構造化データはありますか
ありません。Googleは、AIによる概要やAIモードに表示されるために、新たにコンピュータが解読可能なファイルやAIテキストファイルを作る必要はなく、特別なschema.orgの構造化データを追加する必要もないと明記しています。構造化データは、あくまでページの内容を正確に伝えるために使います。
記事から取り入れたこと
「AIクローラーとrobots.txt」の範囲でその後に出た記事のうち、このレッスンに足すべきと判断したものです。 レッスン本文は仕組みの説明にとどめ、確認できた個別の手順・数値はここに積みます。
Sources · 一次情報
- AI 機能とウェブサイト(Google 検索セントラル)
- Google の一般的なクローラー(Google 検索セントラル)
- Overview of OpenAI Crawlers(OpenAI)
- PerplexityBot(Perplexity)
- Does Anthropic crawl data from the web, and how can site owners block the crawler?(Anthropic)
- The /llms.txt file(llmstxt.org)
- GEO: Generative Engine Optimization(arXiv:2311.09735)(Aggarwal ほか(KDD 2024))
- 構造化データの仕組みについて(Google 検索セントラル)