robots.txtは、検索エンジンのクローラーに対して、ウェブサイト内のどのページをクロール(巡回)すべきか、またはクロールを避けるべきかを指示するためのテキストファイルです。サイトのルートディレクトリに設置され、クローラーはサイトを訪問する前にこのファイルを読み取ります。適切に設定されたrobots.txtは、サイトのSEOに大きな影響を与えます。
例えば、ECサイトを運営している場合、商品ページはクロールしてほしいが、購入手続き中のページはクロールされたくないといった要望があるでしょう。このような場合、robots.txtで購入手続き中のページへのクロールを禁止することで、無用なページのインデックス化を防ぎ、クロールバジェットを最適化できます。
また、ニュースサイトの場合、最新記事はクロールしてほしいが、古いアーカイブ記事は頻繁にクロールされる必要がないというケースも考えられます。robots.txtで過去の記事へのクロール頻度を下げることで、サーバーの負荷を軽減しつつ、重要なページにクロールバジェットを集中させることができます。
robots.txtの基本的な書き方
robots.txtの基本的な書式は以下の通りです。
User-agent: [クローラー名]
Disallow: [クロールを禁止するディレクトリ又はページ]
Allow: [クロールを許可するディレクトリ又はページ]
Sitemap: [XML サイトマップのURL]
各ディレクティブの意味は次の通りです:
- User-agent: 指定したクローラーに対して、以下のルールを適用します。すべてのクローラーに適用する場合は
*
を使用。 - Disallow: 指定したディレクトリ又はページへのクロールを禁止します。
- Allow: 指定したディレクトリ又はページへのクロールを許可します。Disallowルールの後に記述することで、例外を設定できます。
- Sitemap: XMLサイトマップのURLを指定します。クロールすべきページを検索エンジンに知らせるのに役立ちます。
以下は、具体的なrobots.txtの記述例です:
User-agent: *
Disallow: /cgi-bin/
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.example.com/sitemap.xml
この例では、すべてのクローラーに対して/cgi-bin/
と/wp-admin/
ディレクトリ以下へのクロールを禁止しつつ、/wp-admin/admin-ajax.php
へのクロールは許可しています。また、sitemap.xml
の場所を指定しています。
robots.txtの役割と重要性
robots.txtの主な役割は以下の4つです:
- クローラーのアクセスコントロール
- サーバー負荷の軽減
- 重複コンテンツ問題の回避
- セキュリティの観点から非公開ページの保護
まず、robots.txtはクローラーのアクセスをコントロールすることで、クロールバジェットの最適化に寄与します。クロールバジェットとは、検索エンジンがウェブサイトの巡回に割り当てるリソース (時間やデータ転送量) のことです。サイトの重要なページにクロールバジェットを集中させることで、インデックス率の向上や検索順位のアップにつながります。
例えば、ECサイトには商品ページの他に、商品検索ページやカート、マイページなど多数のページが存在します。これらすべてをクロールさせると、クロールバジェットが分散してしまいます。robots.txtで商品ページ以外のクロールを制限することで、クロールバジェットを商品ページに集中させ、効率的にインデックス化を進められます。
2つ目に、robots.txtはサーバー負荷の軽減に役立ちます。大規模サイトではクローラーからのアクセスが頻繁に発生するため、サーバーに大きな負荷がかかります。重要でないページへのクロールを制限することで、サーバーリソースを節約できます。
3つ目は、重複コンテンツ問題の回避です。検索エンジンは基本的に、同一内容のページを複数インデックスすることを避けます。wwwありとなしのURLや、セッションIDの付与により動的に生成されるURLなど、同じ内容のページが複数存在する場合、robots.txtでどちらかのクロールを禁止することで、重複コンテンツとみなされるリスクを減らせます。
最後に、robots.txtはセキュリティ対策としても活用できます。管理者ページなど一般に公開されるべきでないページへのクロールを禁止することで、セキュリティホールの発見を防げます。ただし、robots.txtはあくまでクローラーに対する指示であり、悪意ある訪問者を物理的に遮断するわけではないので、認証機能など他のセキュリティ対策と組み合わせる必要があります。
robots.txtの設置方法
robots.txtの設置は以下の手順で行います:
- テキストエディタでrobots.txtファイルを作成する。
- サイトのルートディレクトリ (通常はサイトのトップページが置かれているディレクトリ) にrobots.txtをアップロードする。
- ブラウザで
https://www.example.com/robots.txt
(example.comは自サイトのドメインに置き換える) にアクセスし、robots.txtが正しく設置されていることを確認する。
robots.txtはプレーンテキスト形式で作成し、文字コードはUTF-8またはShift_JISを使用します。拡張子は必ず.txt
としてください。
以下は、WordPressサイトにrobots.txtを設置する場合の具体的な手順です:
- テキストエディタでrobots.txtを作成。
- WordPressのダッシュボードにFTPを使ってログインする。
- WordPressのインストールディレクトリ (通常は
public_html
またはwww
) を開く。 - robots.txtをアップロードする。すでに存在する場合は上書きする。
- ブラウザで
https://www.example.com/robots.txt
にアクセスし、robots.txtの内容が表示されることを確認する。
robots.txtのテストと修正
robots.txtを設置したら、正しく機能しているかテストしましょう。Googleでは、Search Consoleの「robots.txtテスター」を使ってrobots.txtの記述をチェックできます。
robots.txtテスターでは、実際にGoogleボットがrobots.txtをどのように読み取るかをテストできます。クロールを許可または禁止したいページのURLを入力すると、そのページがクロール可能かどうかが表示されます。
サイトの一般的なアクセス解析ツールを使って、クローラーの実際の挙動を併せて確認することも大切です。想定通りのページにクローラーが来訪しているか、robots.txtで禁止したページにアクセスしていないかをチェックしましょう。
もし、robots.txtの記述ミスが見つかった場合は、速やかに修正を行います。robots.txtは検索エンジンのインデックスに直接影響するため、設定ミスはサイトのSEOに大きなダメージを与える可能性があります。重要なページまでクロール禁止にしてしまったり、逆に非公開ページをクロール可能な状態にしてしまうミスに注意が必要です。
robots.txtのチェックは設置時だけでなく、定期的に見直しを行うことが大切です。サイト構造の変更に合わせてrobots.txtを更新したり、クローラーの挙動に変化がないかをモニタリングしましょう。
robots.txtの注意点
robots.txtを効果的に活用するためには、以下の点に注意が必要です:
- パスは絶対パスで記述する。
/
から始まるルート相対パスで指定します。 - 大文字と小文字は区別されます。
/sample/
と/SAMPLE/
は別のディレクトリとして扱われます。 - 記述順序に気をつける。先に書かれたルールが優先されます。より具体的なルールを先に、一般的なルールを後に書くようにしましょう。
よくある記述ミスと修正例を以下の表にまとめました:
誤った記述 | 修正例 |
---|---|
Disallow: sample/ |
Disallow: /sample/ |
Disallow: /*.php$ |
Disallow: /*.php |
Disallow: / の後にAllow: /sample/ |
Allow: /sample/ をDisallow: / の前に移動 |
また、User-agentディレクティブを複数記述する際は、記述順序に注意が必要です。以下のように、個別のクローラー向けルールを先に、全体向けルールを後に記述します。
User-agent: Googlebot
Disallow: /private/
User-agent: *
Disallow: /cgi-bin/
robots.txtとSEOの関係
robots.txtは検索エンジンのクローラーの挙動を制御することで、サイトのSEOに大きな影響を与えます。適切なrobots.txtの設定は、以下のようなSEO上の効果が期待できます。
- クロールバジェットの最適化によるインデックス率の向上
- 重要なページへのリソース集中による検索順位の改善
- 重複コンテンツ問題の回避によるペナルティリスクの低減
- サイトマップとの連携によるインデックスの効率化
一方で、robots.txtの設定ミスはSEOに悪影響を及ぼす可能性があります。最も注意すべきは、重要なページまでクロール禁止にしてしまうことです。