robots.txtの正しい設定方法|SEOとAIクローラー対応の完全ガイド
robots.txtとは
robots.txtは、Webサイトのルートディレクトリに配置するテキストファイルで、検索エンジンやAIのクローラーに対して「どのページをクロールしてよいか」を指示する役割を持ちます。正式には「Robots Exclusion Protocol(ロボット排除プロトコル)」と呼ばれる仕組みの一部で、1990年代半ばから使われ続けている歴史ある標準です。
たとえば https://example.com/robots.txt にアクセスすると、そのサイトのrobots.txtを確認できます。GooglebotのようなクローラーがWebサイトに到着すると、最初にこのファイルを読みに行き、記載されたルールに従ってどのURLを取得し、どのURLをスキップするかを判断します。
robots.txtは強制力のある「ブロック」ではなく、あくまで「お願い」であることを理解しておくことが重要です。Google、Bing、OpenAI、Anthropicなどの行儀の良いクローラーはこのルールに従いますが、悪意あるボットが無視する可能性もあります。機密情報の保護にはrobots.txtではなく、認証やサーバーレベルのアクセス制限を使用してください。
robots.txtの基本構文
robots.txtの構文は非常にシンプルです。User-agentでクローラーを指定し、AllowやDisallowでクロール可否のルールを記述します。
# すべてのクローラーにサイト全体のクロールを許可
User-agent: *
Allow: /
# サイトマップの場所を伝える
Sitemap: https://example.com/sitemap.xml
主要なディレクティブ
| ディレクティブ | 意味 |
|---|---|
User-agent | ルールを適用するクローラーを指定 |
Allow | クロールを許可するパスを指定 |
Disallow | クロールを禁止するパスを指定 |
Sitemap | サイトマップのURLを指定 |
Crawl-delay | クロール間隔(秒)を指定(Googleは非対応) |
User-agent: * はすべてのクローラーを対象とするワイルドカードです。特定のクローラーにだけ別ルールを設けたい場合は、クローラー名を明示的に指定して個別のルールブロックを作成します。
よくある設定パターン
サイト全体をクロール可能にする(推奨)
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
最もシンプルかつ一般的な設定です。特別な理由がない限り、この設定をベースにして、必要に応じて制限を追加していくのがよいでしょう。
管理画面やAPIなど不要なパスを除外する
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /internal/
Disallow: /tmp/
Disallow: /checkout/
Sitemap: https://example.com/sitemap.xml
管理画面、APIエンドポイント、内部ツールなど、検索結果に表示する意味のないパスはDisallowで除外します。これによりクロールバジェット(クローラーがサイトに割り当てるクロール回数)を重要なページに集中させることができます。
特定のファイル種別を除外する
User-agent: *
Disallow: /*.pdf$
Disallow: /*.json$
パスのパターンマッチを使って、特定の拡張子を持つファイルをまとめて除外できます。*は任意の文字列、$はURLの末尾を表します。
サイト全体をクロール禁止にする(ステージング環境向け)
User-agent: *
Disallow: /
開発中のステージング環境など、検索エンジンにインデックスされたくないサイトで使用します。本番サイトでこの設定を残したまま公開してしまうと、検索結果から完全に消えてしまうため十分注意してください。本番環境にステージング用のrobots.txtをデプロイしてしまうミスは、最もよくある、かつ最もダメージの大きいrobots.txtの間違いの一つです。
AIクローラーへの対応(GEO視点)
2025年以降、従来の検索エンジンクローラーに加えて、AI企業が独自のクローラーを使ってWebを巡回し、学習データの収集やリアルタイム検索機能の提供を行うようになりました。robots.txtはこれらAIクローラーのアクセスを制御する主要な手段として重要性が増しています。
主要なAIクローラー
| クローラー名 | 運営 | 用途 |
|---|---|---|
| GPTBot | OpenAI | 学習データ・API向けコンテンツの収集 |
| ChatGPT-User | OpenAI | ChatGPTのブラウジング機能 |
| ClaudeBot | Anthropic | Claude向けの学習データ収集 |
| PerplexityBot | Perplexity | Perplexity AI検索向けデータ収集 |
| Bytespider | ByteDance | TikTok等のAI学習データ収集 |
| Google-Extended | Gemini等のAI学習データ収集 |
AIクローラーをすべて許可する設定
AI検索での引用やGoogle AI Overviewへの掲載を積極的に狙うなら、AIクローラーを許可する設定がおすすめです。
User-agent: *
Allow: /
# AIクローラーも明示的に許可
User-agent: GPTBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /
Sitemap: https://example.com/sitemap.xml
User-agent: * で全許可している場合、個別のAIクローラーの記述は技術的には不要です。しかし、明示的に記載することでAIクローラーへの対応意思を明確に示せるため、ポリシーが一目で分かりやすくなります。
特定のAIクローラーのみブロックする
コンテンツをAI学習に使われたくないが、検索エンジンのクロールは許可したい場合は、AIクローラーごとにDisallowを設定します。
User-agent: *
Allow: /
# AI学習目的のクロールをブロック
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
# Google検索は許可するが、AI学習は拒否
User-agent: Google-Extended
Disallow: /
Sitemap: https://example.com/sitemap.xml
ただし、AIクローラーをブロックすると、AI検索結果やAI Overviewで自サイトが引用される可能性が低くなる点に留意してください。GEOスコアの向上を目指すなら、基本的にはAIクローラーを許可する方向での設定を推奨します。
robots.txtの設置とテスト
設置場所
robots.txtは必ずドメインのルートディレクトリに配置します。それ以外の場所に置いてもクローラーには読み取られません。
https://example.com/robots.txt ← 正しい
https://example.com/files/robots.txt ← 読み取られない
Google Search Consoleでのテスト
Google Search Consoleの「robots.txtテスター」を使うと、作成したrobots.txtが意図どおりに動作するか確認できます。特定のURLがブロックされているか許可されているかをシミュレーションできるため、本番環境に変更を反映する前に必ずテストしましょう。
Next.jsでの実装例
Next.js App Routerを使用している場合、app/robots.tsファイルでrobots.txtをプログラム的に生成できます。
import { MetadataRoute } from 'next';
export default function robots(): MetadataRoute.Robots {
return {
rules: [
{
userAgent: '*',
allow: '/',
},
{
userAgent: 'GPTBot',
allow: '/',
},
{
userAgent: 'ClaudeBot',
allow: '/',
},
],
sitemap: 'https://example.com/sitemap.xml',
};
}
この方法なら、環境変数やその他の条件に基づいてルールを動的に変更することも可能です。
IndexReadyでrobots.txtをチェックする
当サイトのスコアリングツール「IndexReady」では、robots.txtの設定状況をSEOカテゴリの一項目としてチェックしています(6点満点)。具体的には以下の観点で評価します。
- robots.txtファイルがドメインのルートに存在するか
- 基本的なディレクティブが正しく記述されているか
- Sitemapディレクティブが含まれているか
さらにGEOカテゴリの「AIクローラー許可」項目(12点満点)では、GPTBot・ClaudeBot・PerplexityBotなどの主要AIクローラーがrobots.txtでブロックされていないかを確認します。SEOとGEOの両面からrobots.txtの最適化状況を把握できるので、ぜひ活用してみてください。
よくある間違いと注意点
- Disallowの先頭スラッシュの忘れ:
Disallow: adminではなくDisallow: /admin/と記述する必要があります。先頭のスラッシュはパスとして有効であるために必須です。 - noindexとの混同:robots.txtでDisallowしたページは「クロールされない」だけで、他サイトからリンクされていれば検索結果に表示される場合があります。ページのインデックスを確実に防ぎたい場合は、
<meta name="robots" content="noindex">タグを使用してください。 - 本番環境での全ブロック:ステージング用の
Disallow: /をそのまま本番にデプロイしてしまうミスは非常に多いです。デプロイ後は必ず確認しましょう。 - CSSやJavaScriptのブロック:最近の検索エンジンはページを正しくレンダリングするためにCSSとJavaScriptファイルへのアクセスを必要とします。これらのリソースをブロックすると、検索エンジンがページの表示を正しく再現できず、検索順位に悪影響を及ぼす可能性があります。
- 範囲が広すぎるルール:
Disallow: /pと書くと、/products/、/pricing/、/press/など、/pで始まるすべてのパスがブロックされてしまいます。パターンは正確に指定しましょう。
優先順位のルール
同じURLに対して複数のルールが一致する場合、クローラーはより具体的(より長い)パスのルールを優先して適用します。
User-agent: *
Disallow: /blog/
Allow: /blog/public/
この例では、/blog/public/featured-post へのアクセスは許可されます。/blog/public/ の方が /blog/ よりも具体的なルールだからです。GoogleとBingはこの「具体性に基づく優先順位」の方式に従います。判断に迷った場合は、Google Search Consoleのrobots.txtテスターでルールの動作を確認しましょう。
まとめ
robots.txtはシンプルなテキストファイルですが、SEOとGEOの両面において影響の大きい役割を果たします。検索エンジンがサイト全体のクロールリソースをどう配分するかに影響し、さらに現在ではAIクローラーのアクセスを管理する主要なツールでもあります。正しく設定すればクロール効率の最適化とAI検索への対応を同時に実現でき、誤った設定はサイトの検索パフォーマンスに深刻な影響を及ぼします。
許可ベースの設定をスタート地点として、ブロックが必要なパスだけを追加し、十分にテストを行い、サイト構造やAI戦略が変わるたびにルールを見直すことをおすすめします。
よくある質問(FAQ)
robots.txtがないとSEOに悪影響がありますか?
技術的には、robots.txtが存在しなくてもクローラーはサイト全体をクロール可能と判断するため、直接的に大きなマイナスにはなりません。しかし、robots.txtがあれば、Sitemapの場所をクローラーに伝えられる、不要なパスのクロールを防げる、AIクローラーのアクセスを明示的に管理できるといったメリットがあります。設置にかかる時間はわずか数分なので、すべてのサイトで用意することを推奨します。
robots.txtとmeta robotsタグはどう使い分けますか?
robots.txtはURL単位でクローラーの「クロール」を制御するもので、クローラーがどのパスを訪問できるかを定義します。meta robotsタグはページ単位で「インデックス」を制御するもので、検索エンジンがそのページを検索結果に含めるかどうかを指定します。クロールバジェットの最適化にはrobots.txtのDisallowを使い、特定のページを検索結果に表示させたくない場合はmeta robotsタグでnoindexを指定するのが一般的です。
AIクローラーをブロックするとGoogle検索の順位に影響しますか?
GPTBotやClaudeBotをブロックしても、Googleの検索順位には直接影響しません。ただし、Google-ExtendedをブロックするとGeminiなどGoogleのAI機能でのコンテンツ利用に影響する可能性があります。さらに重要な点として、AIクローラーをブロックすると、AI検索結果やAI Overviewで自サイトが引用される可能性が低くなります。拡大するAI検索エコシステムでの露出が減少するため、GEO対策の観点ではデメリットとなります。
robots.txtはどのくらいの頻度で更新すべきですか?
サイト構造に大きな変更があったとき(新しいセクションの追加、URLパターンの変更、AIコンテンツ戦略の見直しなど)に見直すのが基本です。一般的には、3〜6か月に一度の定期的なチェックをおすすめします。また、新しい主要なAIクローラーが登場した際にもルールの追加を検討しましょう。