GUIDE · 01 AIクローラー許可
AI検索のクローラーをrobots.txtで許可する方法
— 検索用と学習用を分けて考える
ChatGPT・Claude・Perplexity・Googleの各AI検索に引用されるための最初の条件は、それぞれの検索用クローラーがページを取得できることです。ところが多くのサイトで、学習用クローラーを止めるつもりの設定が検索用まで巻き込んでいます。このガイドでは両者の違いと、robots.txtの正しい書き方、robots.txtでは見えない詰まり方を整理します。
AI検索に引用されたいなら、OAI-SearchBot・Claude-SearchBot・PerplexityBot・Googlebotの4つを許可する。学習に使われたくない場合はGPTBot・ClaudeBot・Google-Extended・CCBotを別グループで拒否する。この2つは独立した判断で、片方を止めても片方には影響しない。
1. 「検索用」と「学習用」は別のクローラー
OpenAI・Anthropic・Google はいずれも、モデルの学習に使うクローラーと、検索結果の引用に使うクローラーを別のUser-agent名で運用しています。学習用を拒否しても検索用には影響せず、その逆も同じです。
| 提供元 | 検索・引用用(許可すべき) | 学習用(任意) | 補足 |
|---|---|---|---|
| OpenAI | OAI-SearchBot | GPTBot | ChatGPT検索の引用リンクはOAI-SearchBotのクロール結果から作られる |
| Anthropic | Claude-SearchBot | ClaudeBot | Claude-SearchBotは検索結果の品質向上用、ClaudeBotは学習用 |
| Perplexity | PerplexityBot | (学習用の別名なし) | Perplexityは検索インデックス構築用のみ公開 |
| Googlebot | Google-Extended | AI Overviews/AIモードはGooglebotの通常インデックスを使う。Google-Extendedは Gemini 等の学習・グラウンディング制御用で、検索順位には影響しない | |
| Common Crawl | — | CCBot | 多くのモデルの学習データ元。検索引用には関与しない |
つまり「AIに学習されたくないのでAIボットを全部止めた」という設定は、学習は止められるが、AI検索からの流入も同時に止めていることになります。両方止めるのは一つの判断ですが、意図せずそうなっているサイトが多いのが実情です。
2. robots.txtの書き方(そのまま使える例)
パターンA:AI検索は許可、学習は拒否(多くの企業サイトに向く)
# AI検索・引用用クローラーは許可
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /
# モデル学習用クローラーは拒否
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: CCBot
Disallow: /
# それ以外(Googlebot含む)は通常どおり
User-agent: *
Disallow: /admin/
Disallow: /search
Sitemap: https://example.com/sitemap.xml
パターンB:すべて許可(コンテンツを広く参照してほしい場合)
User-agent: *
Disallow: /admin/
Sitemap: https://example.com/sitemap.xml
AIボット向けの記述がまったく無ければ、各ボットはUser-agent: *のグループに従います。特別に拒否していない限り取得できるので、「何も書いていない」状態は許可と同じです。
グループの仕組み(ここを誤解すると設定が効かない)
robots.txt(RFC 9309)では、クローラーは自分の名前に最も長く一致するUser-agent行のグループだけを読みます。GPTBot向けのグループがあれば、GPTBotはUser-agent: *のグループを一切見ません。したがって、共通のDisallow: /admin/を AIボットにも効かせたい場合は、AIボットのグループ側にも同じ行を書く必要があります。
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Disallow: /admin/ # 共通の除外は各グループに繰り返す
Allow: /
3. よくある間違い
Disallow: /の巻き込み:開発環境やステージング用の全面拒否が本番に残っている。AI検索だけでなく通常の検索からも消える。- 学習用と検索用を同じグループに書いている:
User-agent: GPTBotとUser-agent: OAI-SearchBotを並べてDisallow: /にすると、検索用まで止まる。 - User-agent名の表記ゆれ:
OAI-Searchbotのような大文字小文字は仕様上は区別されないが、OAI_SearchBotやOpenAI-SearchBotのような別名は一致せず、書いたつもりの設定が無視される。 - Google-Extendedの誤解:拒否すると検索順位が下がると思われがちだが、Google検索(AI Overviews含む)の掲載・順位には影響しない。逆に、許可してもAI Overviewsに出やすくなるわけでもない。
- noindexとの併用:robots.txtで拒否したページの
noindexはクローラーに読まれない。「拒否」と「インデックスさせない」は別の道具。
4. robots.txtでは見えない詰まり方
robots.txtで許可していても、実際には取得できていないケースが少なくありません。この種の問題はrobots.txtを読むだけの診断ツールでは検出できません(当サイトのチェッカーも同様です)。
- CDN/WAFのBot対策:Cloudflareの「Bot Fight Mode」や各社WAFの既定ルールがAIボットに403やチャレンジページを返す。robots.txtは200でも本文は取れていない。CDNの管理画面で「既知のボット」の扱いを確認する。
- JavaScriptでしか本文が出ない:AI検索のクローラーはGooglebotほどJavaScriptを実行しないと考えたほうが安全。静的HTMLに本文が含まれているかを、ブラウザのJavaScriptを無効にして確認する。
- 地域制限・IP制限:海外IPを一律遮断していると、米国から来るクローラーが全滅する。
- レート制限:短時間に多数ページを取るクローラーを429で弾いている。
確認方法として最も確実なのは、サーバのアクセスログでOAI-SearchBot等のUser-agent文字列を検索し、ステータスコードが200かを見ることです。ログに一度も現れないなら、そもそも到達していない(DNS・CDN側の問題)か、サイトがまだ発見されていないかのどちらかです。
5. ユーザー操作で動くフェッチャー
上記のクローラーとは別に、利用者がAIに「このURLを読んで」と指示したときに動くユーザー起点のフェッチャーがあります(ChatGPT-User、Claude-User、Perplexity-Userなど)。これらは検索インデックスを作らず、各社でrobots.txtの扱いも異なります。AI検索の「引用」に関わるのは前述の検索用クローラーなので、robots.txtの設計はまずそちらを優先してください。
このガイドに対応する診断項目
LLMOチェッカー カテゴリ01「AIクローラー許可」(20点)
| 項目 | 配点 | 判定内容 |
|---|---|---|
| OAI-SearchBot | 5 | robots.txtで対象URLの取得が許可されているか(RFC 9309準拠で判定) |
| Claude-SearchBot | 4 | 同上 |
| PerplexityBot | 4 | 同上 |
| Googlebot | 3 | 同上 |
| llms.txt | 2 | 設置と内容の妥当性(別ガイド) |
| noindex | 2 | metaタグ・X-Robots-Tagでインデックス拒否していないか |
| GPTBot / ClaudeBot / Google-Extended / CCBot | 参考 | 学習用クローラーの許可状況。採点には影響しない |
- 2026-08-26
- 初版公開。