robots.txtの正しい設定方法|SEOとAIクローラー対応の完全ガイド
robots.txtとは
robots.txtは、Webサイトのルートディレクトリに配置するテキストファイルで、検索エンジンやAIのクローラーに対して「どのページをクロールしてよいか」を指示する役割を持ちます。正式には「Robots Exclusion Protocol(ロボット排除プロトコル)」と呼ばれる仕組みの一部です。
たとえば https://example.com/robots.txt にアクセスすると、そのサイトのrobots.txtを確認できます。クローラーはサイトを巡回する前にこのファイルを最初に読みに行き、記載されたルールに従ってクロール範囲を決定します。
robots.txtは強制力のある「ブロック」ではなく、あくまで「お願い」です。行儀の良いクローラーはこのルールに従いますが、悪意あるボットが無視する可能性もあります。機密情報の保護には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
最もシンプルかつ一般的な設定です。特別な事情がない限り、この設定をベースに必要なDisallowルールを追加していくのがよいでしょう。
管理画面やAPIなど不要なパスを除外する
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /internal/
Disallow: /tmp/
Sitemap: https://example.com/sitemap.xml
検索エンジンにインデックスさせる意味のないパスはDisallowで除外します。これによりクロールバジェット(クローラーがサイトに割り当てるクロール回数)を重要なページに集中させることができます。
特定のファイル種別を除外する
User-agent: *
Disallow: /*.pdf$
Disallow: /*.json$
パスのパターンマッチを使って、特定の拡張子を持つファイルをまとめて除外できます。*は任意の文字列、$はURLの末尾を表します。
サイト全体をクロール禁止にする
User-agent: *
Disallow: /
開発中のステージング環境など、検索エンジンにインデックスされたくないサイトで使用します。本番サイトでこの設定を残したまま公開してしまうと、検索結果から完全に消えてしまうため十分注意してください。
AIクローラーへの対応(GEO視点)
2025年以降、従来の検索エンジンクローラーに加えて、AIサービスが独自のクローラーでWebを巡回するようになりました。robots.txtはこれらAIクローラーのアクセスを制御する手段としても重要性が増しています。
主要なAIクローラー
| クローラー名 | 運営 | 用途 |
|---|---|---|
| GPTBot | OpenAI | ChatGPT・API向けのデータ収集 |
| ChatGPT-User | OpenAI | ChatGPTのブラウジング機能 |
| ClaudeBot | Anthropic | Claude向けのデータ収集 |
| PerplexityBot | Perplexity | Perplexity AI向けのデータ収集 |
| Bytespider | ByteDance | TikTok等のAI向けデータ収集 |
| Google-Extended | Gemini等のAI学習データ収集 |
AIクローラーをすべて許可する設定
AI検索での引用や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/pages/robots.txt ← 間違い
Google Search Consoleでのテスト
Google Search Consoleの「robots.txtテスター」を使うと、作成したrobots.txtが意図どおりに動作するか確認できます。特定のURLがブロックされているか許可されているかをシミュレーションできるため、公開前に必ずテストしましょう。
Next.jsでの実装例
Next.js App Routerを使用している場合、app/robots.tsファイルで動的に生成できます。
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/と記述する必要があります - AllowとDisallowの優先順位:同じUser-agent内では、より具体的な(長い)パスのルールが優先されます
- noindexとの混同:robots.txtでDisallowしたページは「クロールされない」だけで、他サイトからリンクされていれば検索結果に表示される場合があります。インデックスを確実に防ぐには
meta robotsタグのnoindexを使用してください - 本番環境での全ブロック:ステージング用の
Disallow: /をそのまま本番にデプロイしてしまうミスは非常に多いです。デプロイ後は必ず確認しましょう
まとめ
robots.txtはシンプルなテキストファイルですが、SEOとGEOの両面において重要な役割を果たします。正しく設定すればクロールバジェットの最適化とAI検索への対応を同時に実現でき、誤った設定はサイトの検索パフォーマンスに深刻な影響を及ぼします。
まずは基本的な設定から始めて、AIクローラーへの対応方針を決めた上で、定期的に内容を見直していくことをおすすめします。
よくある質問(FAQ)
robots.txtがないとSEOに悪影響がありますか?
robots.txtが存在しなくても、クローラーはサイト全体をクロール可能と判断するため、直接的に大きなマイナスにはなりません。ただし、Sitemapの場所をクローラーに伝えられない、不要なパスのクロールを防げないなどのデメリットがあります。設置コストは非常に低いので、すべてのサイトで用意することを推奨します。
robots.txtとmeta robotsタグはどう使い分けますか?
robots.txtはクローラーの「クロール」を制御するもので、meta robotsタグは「インデックス」を制御するものです。特定のページを検索結果に表示させたくない場合はmeta robotsタグでnoindexを指定し、クロールバジェットの最適化にはrobots.txtのDisallowを使うのが一般的です。
AIクローラーをブロックするとGoogle検索の順位に影響しますか?
GPTBotやClaudeBotをブロックしても、Googleの検索順位には直接影響しません。ただし、Google-ExtendedをブロックするとGeminiなどGoogleのAI機能でのコンテンツ利用に影響する可能性があります。また、AIクローラーをブロックするとAI検索やAI Overviewでの引用機会が減るため、GEO対策の観点ではデメリットとなります。
robots.txtはどのくらいの頻度で更新すべきですか?
サイト構造に大きな変更があったとき(ディレクトリ構成の変更、新規セクションの追加など)に見直すのが基本です。また、新しいAIクローラーが登場した際にもルールの追加を検討しましょう。定期的な確認の目安としては、3〜6か月に一度のチェックをおすすめします。