Robots.txt
Robots.txtは、ウェブサイトのルートディレクトリ(/robots.txt)に配置される公開アクセス可能なテキストファイルで、検索エンジンのクローラーがサイト上のどのURLにアクセスできるかを案内するための標準プロトコル(Robots Exclusion Protocol)として機能します。
Robots.txtは、ウェブサイトのルートディレクトリ(/robots.txt)に配置される公開アクセス可能なテキストファイルで、検索エンジンのクローラーがサイト上のどのURLにアクセスできるかを案内するための標準プロトコル(Robots Exclusion Protocol)として機能します。
なぜ重要なのか
検索エンジンは、各ウェブサイトに割り当てられたクロールバジェットに基づいて、1日に訪問できるページ数に制限があります。適切に設定されたrobots.txtは、管理画面、APIエンドポイント、重複コンテンツなどの不要なパスをクロール対象から除外し、クロールバジェットを中核的なコンテンツに集中させることができます。数千ページ以上の大規模サイトでは、この設定がインデックス登録の速度や全体的なSEOパフォーマンスに直接影響します。
2025年以降、GPTBot、CCBot、PerplexityBot、Google-ExtendedといったAIクローラーの登場により、robots.txtの役割はさらに拡大しました。公開マーケティングコンテンツにとって最も安全なデフォルトは、クローラーのアクセスを許可し、クロールバジェットを浪費するパスや非公開の領域を露出するパスのみを制御することです。AI学習用クローラーをブロックするのは、それがコンテンツのライセンス方針やAI可視性戦略に合致する場合のみにしましょう。
主要なディレクティブ
| ディレクティブ | 説明 | 例 |
|---|---|---|
User-agent | ルールを適用するクローラーを指定します。*はすべてのクローラーを意味します。 | User-agent: Googlebot |
Disallow | クロールをブロックするパスを指定します。 | Disallow: /admin/ |
Allow | Disallowでブロックされた親パス内の特定のサブパスを許可します。 | Allow: /admin/public/ |
Sitemap | XMLサイトマップのURLを指定します。慣例的にファイルの末尾に配置されます。 | Sitemap: https://example.com/sitemap.xml |
Crawl-delay | クローラーのリクエスト間の待機時間を秒単位で設定します。Googlebotはこのディレクティブを無視します。 | Crawl-delay: 10 |
設定ガイド
公開ブログの場合、基本設定はシンプルにすべきです。
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
内部検索、管理ルート、重複したフィルターURL、APIエンドポイントなど、クロールすべきでない領域に対してのみDisallowルールを追加します。検索クローラーは開放したまま特定のAI学習用クローラーをブロックする必要がある場合は、それらのユーザーエージェントを切り分けます。
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /*?*utm_
# Block AI crawlers
User-agent: GPTBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: anthropic-ai
Disallow: /
# Sitemap
Sitemap: https://example.com/sitemap.xml
重要な留意点:
- ファイルの場所:ファイルはドメインのルート(
https://example.com/robots.txt)に配置する必要があります。サブディレクトリに配置すると、クローラーが認識しなくなります。 - 大文字・小文字の区別:URLパスは大文字・小文字を区別します。
Disallow: /Private/は/private/をブロックしません。 - ルールのマッチング:Googleは最も具体的に一致するルールを使用します。
AllowとDisallowの両方のルールがあるURLに一致する場合、より長く一致するパスが優先されます。 - HTTPステータスの扱い:404または410のrobots.txtは、制限が存在しないものとして扱われます。5xxレスポンスは、ルールが利用不可なのか意図的に制限的なのかをGoogleが判断できないため、一時的にクロールを停止させることがあります。
- テストは必須:Search Consoleのrobots.txtレポートとURL検査ツールを使用して、Googlebotがファイルを取得できること、重要なURLがブロックされていないことを確認しましょう。
- サイトマップの統合:サイトマップはGoogle Search ConsoleやBing Webmaster Toolsに直接送信することが推奨されますが、robots.txtに指定しておくことも良い習慣です。
よくある間違い
- セキュリティツールとして扱うこと:Robots.txtはクローラーへのリクエストに過ぎず、物理的にアクセスをブロックするものではありません。機密ページには、サーバー認証やIPブロックなどの別途のセキュリティ対策が必要です。
- Disallowとnoindexの混同:
Disallowはクロールのみをブロックし、インデックス登録はブロックしません。外部リンクのあるページは、クロールされなくても検索結果に表示されることがあります。ページを検索結果から完全に削除するには、noindexメタタグを使用しましょう。 - Googleが
noindexを確認する前にページをブロックすること:Disallowとnoindexを同時に追加すると、Googleがそのページを一切クロールできず、そのためnoindexディレクティブを認識できなくなる可能性があります。 - サイト全体を誤ってブロックすること:
User-agent: *の下でDisallow: /を設定すると、すべてのクローラーがサイト全体へアクセスするのをブロックします。サイトのリニューアル時やステージング環境でこの設定を使い、本番デプロイ時に元に戻し忘れるのはよくある間違いです。 - CSSとJSファイルのブロック:Googlebotはコンテンツを評価するためにページをレンダリングします。CSSやJavaScriptファイルのクロールをブロックすると、レンダリングが不完全になり、SEOスコアが下がる可能性があります。
- robots.txtで機密パスを露出すること:Robots.txtは誰でも閲覧できる公開アクセス可能なファイルです。
/secret-admin-panel/のような非公開パスをDisallowに記載すると、かえってそのパスの存在を外部に明かしてしまいます。
Sources:
- Robots.txtの概要とガイド - Google Search Central
- Robots.txtの仕様 - Google Search Central
- Robots.txtレポート - Search Console ヘルプ
- Robots.txtとSEO:知っておくべきすべて - Ahrefs
- Robots.txt解説:構文、ベストプラクティス、SEO - Semrush
関連するinblogの記事
inblogがどう役立つか
inblogはデフォルトで検索エンジンのクローラーを許可し、ダッシュボードを通じてAIクローラー(GPTBotなど)の管理機能を提供します。