robots.txt はWebサイトのルートディレクトリに設置するテキストファイルで、検索エンジンのクローラーがサイト内のどのページをクロールしてよいかを伝えるための仕組みです。適切に設定することで、クロールの無駄を減らしSEO上の問題を回避できます。
基本構造
User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /
Sitemap: https://example.com/sitemap.xml
各ディレクティブの意味:
| ディレクティブ | 意味 |
|---|---|
User-agent | 対象とするクローラー。* はすべてのクローラー |
Disallow | クロールを禁止するパス |
Allow | Disallow で制限した範囲の中で許可するパス |
Sitemap | サイトマップのURL(絶対URL) |
よくある設定例
管理画面・ログインページを非公開にする
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/
サイト内検索の結果ページは内容が動的・重複気味になりやすく、クロールバジェットの無駄遣いになります。
特定のクローラーを完全にブロックする
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
Googlebotとは別に設定ブロックを作り、特定のクローラーだけブロックできます。
重要な注意点
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のクロール可否を確認できます。