robots.txtとは
robots.txtは、Webサイトのルートディレクトリ(https://example.com/robots.txt)に配置するテキストファイルで、検索エンジンのクローラーに対して「どのページをクロールしてよいか」「どのページをクロールしないでほしいか」を指示するものです。Robot Exclusion Protocol(REP)と呼ばれる標準規約に基づいています。
robots.txtの基本構文
基本的な書き方
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Allow: /admin/public/
Sitemap: https://example.com/sitemap.xml
主なディレクティブ
- User-agent: 対象とするクローラーを指定。
*はすべてのクローラーを意味する - Disallow: クロールを禁止するパスを指定
- Allow: Disallow内の例外として、クロールを許可するパスを指定
- Sitemap: XMLサイトマップのURLを指定
実践的な設定例
WordPressサイトの一般的な設定
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-includes/
Disallow: /?s=
Disallow: /search/
Sitemap: https://example.com/sitemap.xml
ECサイトでの設定
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /*?sort=
Disallow: /*?filter=
Sitemap: https://example.com/sitemap.xml
robots.txtとSEOの関係
クロールバジェットの最適化
大規模サイトでは、不要なページ(管理画面、検索結果ページ、フィルタページなど)へのクロールをブロックすることで、重要なページにクロールバジェットを集中させることができます。
重要な注意点
robots.txtはクロールを制御しますが、インデックスを制御するものではありません。robots.txtでブロックされたページでも、外部リンクがあればURLだけがインデックスされることがあります。
よくある間違いと対策
CSSやJavaScriptのブロック
以前はCSS/JSファイルをブロックすることが一般的でしたが、現在のGooglebotはページのレンダリングにCSS/JSを必要とします。これらをブロックすると、ページが正しく評価されない可能性があります。
テスト環境のrobots.txt
ステージング環境ではDisallow: /で全ページをブロックすることが一般的ですが、本番公開時にこの設定を解除し忘れると、サイト全体がクロールされなくなる重大な事故につながります。
robots.txtの検証
Google Search Consoleの「robots.txtテスター」を使って、設定が意図通りに機能しているか必ず検証しましょう。