robots.txt 完全ガイド — クローラー制御の書き方と設定例
robots.txtはWebサイトのルートに置くテキストファイルで、検索エンジンのクローラー(Googlebot など)にどのページをクロールしてよいかを指示します。適切に設定することでクロール予算を最適化し、意図しないページのインデックスを防げます。
robots.txtの基本構文
robots.txtはUser-agent(対象ボット)、Allow(許可するURL)、Disallow(禁止するURL)のディレクティブで構成されます。User-agent: *はすべてのボットを意味します。Disallow: /は全ページのクロール禁止です。Disallow: (空欄)は全ページの許可になります。1ファイルに複数のUser-agentブロックを記述できます。各ブロックは空行で区切ります。
Googlebot向けの設定例
User-agent: Googlebot / Disallow: /admin/ / Disallow: /private/ / Allow: / のように管理ページやプライベートエリアを除外しつつ、一般ページを許可するのが基本パターンです。Sitemap: https://example.com/sitemap.xmlを追記するとGoogleがサイトマップを自動検出します。検索Console での認証なしにサイトマップを知らせる最も簡単な方法です。
Crawl-delay でクロール頻度を制御
Crawl-delay: 10のように秒数を指定すると、クローラーがページ間でその秒数だけ待機します。サーバー負荷が高い場合に有効ですが、Googleはこのディレクティブを現在無視しています(Google Search Consoleのクロールレート設定を使う)。Bingは対応しています。過剰なCrawl-delayはインデックス速度の低下につながります。
robots.txtとnoindexの違い
robots.txtのDisallowはクロールを禁止しますが、インデックスを保証しません。他のサイトからリンクされていれば、クロールせずにURLをインデックスする場合があります。インデックスを完全に防ぐにはmetaタグのnoindexかX-Robots-TagヘッダーにnoindexをHTTPレスポンスで含める必要があります。Disallowしたページにnoindexは届かないため、両方を組み合わせることが重要です。