robots.txt はWebサイトのルートディレクトリに設置するテキストファイルで、検索エンジンのクローラーがサイト内のどのページをクロールしてよいかを伝えるための仕組みです。適切に設定することで、クロールの無駄を減らしSEO上の問題を回避できます。
基本構造
robots.txtはシンプルなテキスト形式で記述します。以下が基本的なひな形です。
User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /
Sitemap: https://example.com/sitemap.xml
各ディレクティブの意味:
| ディレクティブ | 意味 |
|---|---|
User-agent | 対象とするクローラー。* はすべてのクローラー |
Disallow | クロールを禁止するパス |
Allow | Disallow で制限した範囲の中で許可するパス |
Sitemap | サイトマップのURL(絶対URL) |
よくある設定例
用途別の記述パターンを紹介します。自サイトの状況に合わせて組み合わせてください。
管理画面・ログインページを非公開にする
WordPressの管理画面はクローラーに見せる必要がないため、アクセスを禁止します。
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Allow: /wp-admin/admin-ajax.php
admin-ajax.php は一部のプラグインがフロントエンドで使用するため Allow が必要です。
検索結果ページをクロールさせない
サイト内検索の結果ページは重複コンテンツになりやすいため、クロールを避けるのが一般的です。
User-agent: *
Disallow: /?s=
Disallow: /search/
サイト内検索の結果ページは内容が動的・重複気味になりやすく、クロールバジェットの無駄遣いになります。
特定のクローラーを完全にブロックする
SEOツールのクローラーなど、特定のボットだけをブロックしたい場合は個別に設定します。
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
Googlebotとは別に設定ブロックを作り、特定のクローラーだけブロックできます。
重要な注意点
robots.txtの設定でよく誤解される点をまとめます。期待する動作と実際の動作の違いを把握しましょう。
robots.txt はセキュリティ対策ではない
Disallow はクローラーへの「お断り通知」に過ぎません。悪意のあるボットや人間のアクセスはブロックできません。非公開コンテンツを守るには、認証や .htaccess によるアクセス制限が必要です。
インデックスを防ぐには noindex を使う
Disallow はクロール(ページの収集)を防ぎますが、インデックス(検索結果への掲載)を完全には防げません。外部リンクがある場合、クロールしなくてもURLが検索結果に出ることがあります。ページを検索結果から除外したい場合は <meta name="robots" content="noindex"> を使います。
Disallow: の末尾スラッシュ
末尾スラッシュの有無でブロック範囲が変わります。意図しないブロックを防ぐために確認してください。
Disallow: /admin→/adminも/administratorもブロックDisallow: /admin/→/admin/配下のみブロック(/admin自体はOK)
ディレクトリをブロックしたい場合は末尾スラッシュをつけるのが確実です。
確認方法
設定後はrobots.txt確認・生成ツールでGooglebotのアクセス可否・Disallowルール・サイトマップの解析ができます。Google Search Consoleの「URL検査」ツールでも個別URLのクロール可否を確認できます。