「robots.txtって何?どう書けばいいの?」
「クロールを制御してSEO効率を上げたい」
「robots.txtの設定を間違えたらどうなる?」
robots.txtは、検索エンジンのクローラーに対して「どのページをクロールしてよいか」を指示するためのファイルです。適切に設定することで、クロールバジェットを効率的に使い、SEOパフォーマンスを最大化できます。
一方で、robots.txtの設定を間違えると、重要なページがクロールされなくなり、検索結果から消えてしまう可能性があります。正しい知識を持って設定することが重要です。
本記事では、robots.txtの書き方を徹底解説します。基本的な構文から、SEO効率を最大化する設定方法、WordPressでの実装、よくある間違いと対処法まで、robots.txtを正しく活用するための知識をお伝えします。
robots.txtとは
まず、robots.txtの基本的な概念を理解しましょう。
robots.txtの定義
robots.txt(ロボッツテキスト)とは、Webサイトのルートディレクトリに配置するテキストファイルで、検索エンジンのクローラー(ロボット)に対して、どのURLをクロールしてよいか、してはいけないかを指示するためのものです。
配置場所:https://example.com/robots.txt
robots.txtは「Robots Exclusion Protocol(ロボット排除プロトコル)」という標準に基づいており、ほとんどの主要な検索エンジン(Google、Bing、Yahooなど)がこのファイルを尊重します。
robots.txtの役割
robots.txtは、以下の役割を果たします。
役割1:クロールの制御として、特定のページやディレクトリへのクローラーのアクセスを制限できます。
役割2:クロールバジェットの最適化として、不要なページのクロールを防ぎ、重要なページにクローラーのリソースを集中させることができます。
役割3:サーバー負荷の軽減として、大量のクロールによるサーバー負荷を軽減できます。
役割4:サイトマップの通知として、XMLサイトマップの場所をクローラーに伝えることができます。
robots.txtの重要な注意点
robots.txtについて、重要な注意点があります。
注意点1:ブロック≠インデックス防止として、robots.txtでクロールをブロックしても、外部からのリンクがあれば、そのページはインデックスされる可能性があります。インデックスを確実に防ぎたい場合は、noindexタグを使用してください。
注意点2:指示であり強制ではないとして、robots.txtはクローラーへの「お願い」であり、強制力はありません。悪意あるボットは無視する可能性があります。
注意点3:公開されているとして、robots.txtは誰でもアクセスできるため、機密情報を含むディレクトリ名などを記載すると、逆にその存在を公開してしまうことになります。
robots.txtとnoindexの違い
robots.txtとnoindexの違いを理解しておきましょう。
robots.txtは、クロール自体をブロックする指示です。クローラーはページにアクセスしないため、noindexタグを読み取ることもできません。外部リンクがあれば、インデックスされる可能性があります。
noindexは、インデックスをブロックする指示です。クローラーはページにアクセスして、noindexを読み取り、インデックスしません。確実にインデックスを防ぎたい場合に使用します。
重要:インデックスを防ぎたい場合は、robots.txtでブロックせずに、noindexを使用してください。robots.txtでブロックすると、クローラーがnoindexを読み取れません。
robots.txtの基本構文
robots.txtの基本的な書き方を解説します。
基本的な構造
robots.txtは、以下の基本的な構造で記述します。
User-agent: [クローラー名]
Disallow: [ブロックするパス]
Allow: [許可するパス]
Sitemap: [サイトマップのURL]
User-agent(ユーザーエージェント)
User-agentは、指示の対象となるクローラーを指定します。
すべてのクローラーに適用:
User-agent: *
特定のクローラーに適用:
User-agent: Googlebot
User-agent: Bingbot
User-agent: Googlebot-Image
主要なクローラー名として、Googlebot(Google検索)、Googlebot-Image(Google画像検索)、Googlebot-News(Googleニュース)、Bingbot(Bing)、Slurp(Yahoo)、Applebot(Apple)などがあります。
Disallow(ブロック)
Disallowは、クロールをブロックするパスを指定します。
特定のディレクトリをブロック:
Disallow: /admin/
Disallow: /private/
特定のファイルをブロック:
Disallow: /secret-page.html
特定のパラメータを含むURLをブロック:
Disallow: /?
Disallow: /*?sessionid=
サイト全体をブロック:
Disallow: /
何もブロックしない:
Disallow:
(Disallowの後に何も指定しない)
Allow(許可)
Allowは、Disallowでブロックした範囲内で、例外的にクロールを許可するパスを指定します。
例:/admin/以下をブロックするが、/admin/public/は許可:
Disallow: /admin/
Allow: /admin/public/
注意:Allowは、Disallowと組み合わせて使用します。単独で使用しても意味がありません。
Sitemap(サイトマップ)
Sitemapは、XMLサイトマップの場所を指定します。
Sitemap: https://example.com/sitemap.xml
複数のサイトマップ:
Sitemap: https://example.com/sitemap-posts.xml
Sitemap: https://example.com/sitemap-pages.xml
サイトマップインデックス:
Sitemap: https://example.com/sitemap_index.xml
コメント
コメントは、#(シャープ)で始まる行に記述します。
これはコメントです
User-agent: *
Disallow: /admin/ # 管理画面をブロック
Crawl-delay(クロール遅延)
Crawl-delayは、クロールの間隔を秒数で指定します。
Crawl-delay: 10
注意:GoogleはCrawl-delayをサポートしていません。Googleのクロール頻度を調整したい場合は、Googleサーチコンソールを使用してください。
robots.txtの記述例
具体的なrobots.txtの記述例を紹介します。
基本的な設定例
最もシンプルな設定(すべてのクロールを許可):
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xml
一般的な設定例:
すべてのクローラーに適用
User-agent: *
管理画面をブロック
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
検索結果ページをブロック
Disallow: /*?s=
Disallow: /search/
プライベートディレクトリをブロック
Disallow: /private/
サイトマップ
Sitemap: https://example.com/sitemap.xml
WordPressサイトの設定例
WordPressサイトでの一般的な設定例です。
User-agent: *
WordPress管理画面
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
WordPressシステムファイル
Disallow: /wp-includes/
検索結果ページ
Disallow: /?s=
Disallow: /search/
フィード
Disallow: /feed/
Disallow: /comments/feed/
トラックバック
Disallow: /trackback/
カテゴリ・タグの重複(必要に応じて)
Disallow: /tag/
サイトマップ
Sitemap: https://example.com/sitemap_index.xml
Sitemap: https://example.com/sitemap-posts.xml
Sitemap: https://example.com/sitemap-pages.xml
ECサイトの設定例
ECサイトでの設定例です。
User-agent: *
カート・チェックアウト
Disallow: /cart/
Disallow: /checkout/
マイページ
Disallow: /my-account/
Disallow: /wishlist/
内部検索結果
Disallow: /search/
Disallow: /*?s=
フィルター・ソートパラメータ(重複コンテンツ対策)
Disallow: /?sort= Disallow: /?filter=
Disallow: /?color= Disallow: /?size=
ただし、主要なフィルターは許可
Allow: /category/
管理画面
Disallow: /admin/
サイトマップ
Sitemap: https://example.com/sitemap.xml
大規模サイトの設定例
大規模サイト(数万ページ以上)での設定例です。
User-agent: *
管理・システム
Disallow: /admin/
Disallow: /cgi-bin/
Disallow: /tmp/
重複・低品質ページ
Disallow: /print/
Disallow: /pdf/
Disallow: /?print= Disallow: /?format=
セッション・パラメータ
Disallow: /?sessionid= Disallow: /?tracking=
Disallow: /*?ref=
内部検索
Disallow: /search/
古いコンテンツ(必要に応じて)
Disallow: /archive/2010/
Disallow: /archive/2011/
Googlebot専用設定
User-agent: Googlebot
Disallow: /internal/
Crawl-delay: # Googleはサポートしていない
Bingbot専用設定
User-agent: Bingbot
Crawl-delay: 5
サイトマップ
Sitemap: https://example.com/sitemap_index.xml
パターンマッチング
robots.txtでは、パターンマッチングを使用して、柔軟にパスを指定できます。
ワイルドカード(*)
アスタリスク(*)は、任意の文字列にマッチします。
例1:パラメータを含むURLをブロック:
Disallow: /*?
例2:特定のパラメータを含むURLをブロック:
Disallow: /*?sessionid=
例3:特定の文字列を含むパスをブロック:
Disallow: /private
末尾指定($)
ドル記号($)は、URLの末尾を示します。
例1:特定の拡張子で終わるURLをブロック:
Disallow: /*.pdf$
例2:特定のファイル名で終わるURLをブロック:
Disallow: /*-old$
パターンマッチングの組み合わせ
例:.phpファイルをブロック:
Disallow: /*.php$
例:特定のディレクトリ内の画像をブロック:
Disallow: /private/.jpg$ Disallow: /private/.png$
robots.txtの配置と確認
robots.txtの配置方法と確認方法を解説します。
配置場所
robots.txtは、Webサイトのルートディレクトリに配置します。
正しい配置:
https://example.com/robots.txt
間違った配置:
https://example.com/folder/robots.txt(ルートディレクトリ以外)
https://www.example.com/robots.txt(サブドメインは別ファイル)
サブドメインの場合:
サブドメインごとに別々のrobots.txtが必要です。
・https://example.com/robots.txt
・https://blog.example.com/robots.txt
・https://shop.example.com/robots.txt
ファイル形式
エンコーディング:UTF-8を使用
改行コード:LF(Unix形式)を推奨
ファイル名:必ず「robots.txt」(小文字)
Googleサーチコンソールでの確認
Googleサーチコンソールでrobots.txtを確認・テストできます。
確認方法:
- サーチコンソールにログイン
- 「設定」→「robots.txt」を選択
- 現在のrobots.txtの内容を確認
- 特定のURLがブロックされているかテスト
直接アクセスでの確認
ブラウザで直接robots.txtにアクセスして確認できます。
ファイルが正しく配置されていれば、内容が表示されます。404エラーが表示される場合は、ファイルが存在しないか、配置場所が間違っています。
robots.txtテスターツール
オンラインのrobots.txtテスターツールを使用して、構文や動作を確認できます。
Googleのrobots.txtテスター(サーチコンソール内)
その他のオンラインツール:Robots.txt Checker、Technical SEO robots.txtテスターなど
WordPressでのrobots.txt設定
WordPressでのrobots.txt設定方法を解説します。
WordPressのデフォルト動作
WordPressは、デフォルトで仮想的なrobots.txtを生成します。
デフォルトの内容:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/wp-sitemap.xml
物理的なrobots.txtファイルを作成
カスタマイズが必要な場合は、物理的なrobots.txtファイルを作成します。
手順:
- テキストエディタでrobots.txtを作成
- FTPまたはファイルマネージャーでアップロード
- ルートディレクトリ(/public_html/など)に配置
物理的なファイルが存在すると、WordPressの仮想的なrobots.txtよりも優先されます。
Yoast SEOでの設定
Yoast SEOを使用してrobots.txtを編集できます。
手順:
- 「SEO」→「ツール」→「ファイルエディター」を開く
- robots.txtの内容を編集
- 「robots.txtの変更を保存」をクリック
Rank Mathでの設定
Rank Mathでもrobots.txtを編集できます。
手順:
- 「Rank Math」→「一般設定」→「robots.txtを編集」を開く
- 内容を編集
- 保存
functions.phpでのカスタマイズ
functions.phpでWordPressの仮想robots.txtをカスタマイズすることも可能です。
function custom_robots_txt($output, $public) {
$output .= “Disallow: /private/\n”;
$output .= “Disallow: /temp/\n”;
return $output;
}
add_filter(‘robots_txt’, ‘custom_robots_txt’, 10, 2);
クロールバジェットの最適化
robots.txtを活用してクロールバジェットを最適化する方法を解説します。
クロールバジェットとは
クロールバジェットとは、検索エンジンがサイトに対して割り当てるクロールのリソース(回数・頻度)のことです。
重要性として、大規模サイトでは、クロールバジェットが限られる、不要なページへのクロールは、重要なページのクロール機会を奪う、効率的なクロールはSEOパフォーマンス向上につながるなどがあります。
ブロックすべきページ
クロールバジェットを効率的に使うために、以下のようなページをブロックすることを検討します。
管理・システムページとして、管理画面、ログインページ、システムファイルなどがあります。
重複・低品質ページとして、検索結果ページ、フィルター・ソートページ、印刷用ページ、パラメータ付きURLなどがあります。
ユーザー専用ページとして、カート、マイページ、お気に入りなどがあります。
一時的・テストページとして、開発中のページ、テストページなどがあります。
注意:ブロックのしすぎに注意
クロールバジェットの最適化は重要ですが、ブロックのしすぎは逆効果です。
ブロックすべきでないページとして、重要なコンテンツページ、SEOで集客したいページ、内部リンクの起点となるページ、被リンクを多く受けているページなどがあります。
大規模サイトでの注意点
大規模サイト(数万ページ以上)では、クロールバジェットの最適化が特に重要です。
対策として、不要なページを積極的にブロック、サイトマップで重要なページを通知、サイト構造の最適化、ページ速度の改善(クロール効率向上)などがあります。
robots.txtのよくある間違い
robots.txt設定でよくある間違いと対処法を解説します。
間違い1:サイト全体をブロック
間違った設定:
User-agent: *
Disallow: /
問題点:サイト全体がクロールされなくなり、検索結果に表示されなくなります。
対処法:意図しない場合は、Disallowの後に何も指定しないか、必要なパスのみをブロックします。
間違い2:重要なページをブロック
問題:SEO上重要なページを誤ってブロックしてしまう。
対処法:robots.txtの設定を見直し、重要なページがブロックされていないか確認します。サーチコンソールのrobots.txtテスターで確認できます。
間違い3:noindexとの混同
間違った理解:robots.txtでブロックすれば、インデックスされない。
正しい理解:robots.txtでブロックしても、外部リンクがあればインデックスされる可能性があります。インデックスを防ぎたい場合はnoindexを使用します。
重要:noindexを設定するページは、robots.txtでブロックしないでください。クローラーがnoindexを読み取れなくなります。
間違い4:構文エラー
よくある構文エラーとして、User-agentの後にコロン(:)がない、DisallowやAllowのスペルミス、パスの前にスラッシュ(/)がない、大文字・小文字の間違いなどがあります。
対処法:robots.txtテスターで構文を確認します。
間違い5:配置場所の間違い
間違った配置:
・サブディレクトリに配置
・ファイル名が大文字(Robots.txt)
対処法:必ずルートディレクトリに「robots.txt」(小文字)で配置します。
間違い6:サブドメインの設定忘れ
問題:メインドメインのrobots.txtがサブドメインには適用されない。
対処法:サブドメインごとに個別のrobots.txtを設置します。
間違い7:ワイルドカードの誤用
間違った設定:
Disallow: private(スラッシュがない)
正しい設定:
Disallow: /private
対処法:パスは必ずスラッシュ(/)から始めます。
セキュリティとrobots.txt
robots.txtとセキュリティの関係について解説します。
robots.txtは公開されている
robots.txtは誰でもアクセスできる公開ファイルです。
問題点:
・ブロックしているディレクトリの存在が公開される
・攻撃者にとってヒントになる可能性がある
例:
Disallow: /admin-secret-panel/
→ 「admin-secret-panel」というディレクトリの存在がバレる
機密情報の保護にはrobots.txtを使わない
robots.txtは、機密情報の保護には適していません。
推奨される方法として、認証・アクセス制限を設定、.htaccessでのアクセス制限、ファイアウォールでの保護などがあります。
クローラーを装った攻撃
User-agentを偽装したボットによる攻撃の可能性があります。
対策として、IPアドレスでの検証、Googlebot等の公式ドキュメントで正規のIPを確認、WAF(Web Application Firewall)の導入などがあります。
業種別のrobots.txt設定
業種ごとのrobots.txt設定例を紹介します。
ECサイト
ECサイトでの設定ポイントです。
ブロックすべきページとして、カート・チェックアウト、マイページ・ログイン、ウィッシュリスト、検索結果ページ、細かいフィルター条件ページなどがあります。
ブロックすべきでないページとして、商品ページ、カテゴリページ、ブランドページなどがあります。
メディア・ブログ
メディアサイトやブログでの設定ポイントです。
ブロックすべきページとして、管理画面、プレビューページ、検索結果ページ、フィードページ(場合による)などがあります。
検討が必要なページとして、タグアーカイブ、著者アーカイブ、日付アーカイブなどがあります。これらはnoindexで対応することも検討してください。
BtoB企業サイト
BtoB企業サイトでの設定ポイントです。
ブロックすべきページとして、顧客専用ページ、社内向けドキュメント、テスト・開発ページ、フォーム送信完了ページ(場合による)などがあります。
会員制サイト
会員制サイトでの設定ポイントです。
ブロックすべきページとして、ログイン・登録ページ、会員専用コンテンツ、マイページ、決済関連ページなどがあります。
robots.txtに関するよくある質問(FAQ)
robots.txtに関するよくある質問にお答えします。
Q1. robots.txtがないとどうなりますか?
A. robots.txtがない場合、クローラーはサイト全体を自由にクロールします。
特にブロックしたいページがなければ、robots.txtがなくても問題ありません。ただし、サイトマップの通知のためにも、基本的なrobots.txtを設置することを推奨します。
Q2. robots.txtでブロックしたページは検索結果に表示されませんか?
A. 必ずしもそうではありません。
外部サイトからリンクがある場合、ページタイトルやURLが検索結果に表示される可能性があります。確実にインデックスを防ぎたい場合は、noindexを使用してください。
Q3. robots.txtの変更はすぐに反映されますか?
A. 即時ではありません。
Googleはrobots.txtを定期的に(通常24時間以内に)再取得します。急ぎの場合は、サーチコンソールの「robots.txtの送信」機能を使用できます。
Q4. Googlebot以外のクローラーもrobots.txtを尊重しますか?
A. 主要な検索エンジンのクローラーは尊重しますが、すべてのボットが尊重するわけではありません。
悪意あるボットや一部のクローラーは、robots.txtを無視する可能性があります。
Q5. robots.txtでJavaScriptやCSSをブロックしても大丈夫ですか?
A. ブロックしないことを推奨します。
Googleはページをレンダリングするためにリソース(JS、CSS、画像など)を取得します。これらをブロックすると、ページの正確な評価ができなくなる可能性があります。
Q6. サブドメインごとにrobots.txtは必要ですか?
A. はい、必要です。
robots.txtはドメイン(サブドメインを含む)ごとに個別に設置する必要があります。
Q7. robots.txtのサイズに制限はありますか?
A. Googleは500KiBまでのrobots.txtを処理します。
通常の使用では制限に達することはありませんが、非常に長いrobots.txtは避けてください。
まとめ:robots.txtでクロール効率を最大化しよう
本記事では、robots.txtの書き方について解説しました。最後に、重要なポイントをまとめます。
robots.txtの役割
クロールの制御、クロールバジェットの最適化、サーバー負荷の軽減、サイトマップの通知などに役立ちます。
基本的な書き方
User-agentでクローラーを指定、Disallowでブロックするパスを指定、Allowで例外的に許可、Sitemapでサイトマップを通知などがポイントです。
重要な注意点
ブロック≠インデックス防止、インデックスを防ぎたい場合はnoindexを使用、noindexページはrobots.txtでブロックしない、構文エラーに注意、配置はルートディレクトリなどに注意しましょう。
クロールバジェットの最適化
不要なページ(管理画面、検索結果、パラメータ付きURLなど)をブロックして、重要なページにクロールを集中させましょう。
robots.txtは、テクニカルSEOの基本要素です。本記事で紹介した方法を参考に、適切なrobots.txt設定を行い、クロール効率を最大化してください。
関連記事として、noindexタグの使い方、XMLサイトマップの作成、クロールバジェットの最適化も合わせてご覧ください。
robots.txtの高度な活用法
robots.txtのより高度な活用法を紹介します。
クローラー別の設定
異なるクローラーに対して、異なる設定を適用できます。
例:Googlebotには許可、他のボットにはブロック:
User-agent: Googlebot
Disallow:
User-agent: Bingbot
Disallow:
User-agent: *
Disallow: /
例:画像クローラーをブロック:
User-agent: Googlebot-Image
Disallow: /private-images/
User-agent: *
Disallow: /admin/
AIクローラーへの対応
近年、AIサービスがWebコンテンツを学習データとして収集するケースが増えています。
主なAIクローラーとして、GPTBot(OpenAI)、Google-Extended(Google AI)、CCBot(Common Crawl)、anthropic-ai(Anthropic)などがあります。
AIクローラーをブロックする例:
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: CCBot
Disallow: /
注意:AIクローラーのブロックは、コンテンツの権利保護の観点から検討してください。ただし、Google検索のクロール(Googlebot)には影響しません。
動的パラメータの制御
ECサイトなどでよく使われる動的パラメータの制御方法です。
セッションID・トラッキングパラメータ:
Disallow: /?sessionid= Disallow: /?tracking=
Disallow: /?utm_ Disallow: /?ref=
フィルター・ソートパラメータ:
Disallow: /?sort= Disallow: /?order=
Disallow: /?filter= Disallow: /&sort=
Disallow: /*&filter=
ページネーションパラメータ(深いページのみブロックする場合):
注意:ページネーションのブロックは慎重に
重要なコンテンツがブロックされないよう確認
Disallow: /?page=10 Disallow: /?page=11
以下続く…
複数の条件を組み合わせた設定
AllowとDisallowを組み合わせて、複雑な制御を行います。
例:/products/配下をブロックするが、特定のサブディレクトリは許可:
User-agent: *
Disallow: /products/
Allow: /products/featured/
Allow: /products/new/
評価順序:Googleは、より具体的な(長い)パスを優先して評価します。
テスト環境とrobots.txt
開発・ステージング環境でのrobots.txt設定です。
テスト環境のrobots.txt:
User-agent: *
Disallow: /
本番環境への移行時の注意として、本番公開時にrobots.txtを必ず更新する、テスト環境の設定が本番に影響しないよう確認、環境変数やビルドプロセスで自動切り替えを検討などがあります。
robots.txtのトラブルシューティング
robots.txt関連の問題と解決方法を解説します。
問題1:重要なページがインデックスされない
症状:robots.txtの設定後、重要なページが検索結果に表示されなくなった。
原因として、意図せず重要なページをブロックしている、ワイルドカードの設定が広すぎる、パスの指定ミスなどがあります。
解決方法として、サーチコンソールのrobots.txtテスターで確認、設定を見直して修正、修正後、サーチコンソールでクロールをリクエストなどがあります。
問題2:robots.txtが読み取れない
症状:サーチコンソールで「robots.txtを取得できませんでした」というエラー。
原因として、ファイルが存在しない、サーバーエラー(500エラーなど)、アクセス制限がかかっている、文字エンコーディングの問題などがあります。
解決方法として、ファイルの存在を確認、サーバーログを確認、.htaccessなどのアクセス制限を確認、UTF-8エンコーディングを使用などがあります。
問題3:構文エラー
症状:robots.txtが期待通りに動作しない。
原因として、スペルミス、コロンの欠落、パスの形式ミスなどがあります。
解決方法として、構文を確認、robots.txtテスターで検証、一から書き直すなどがあります。
問題4:変更が反映されない
症状:robots.txtを変更したが、効果が見られない。
原因として、クローラーがまだ新しいrobots.txtを取得していない、キャッシュの問題、ファイルが正しくアップロードされていないなどがあります。
解決方法として、サーチコンソールでrobots.txtを送信、24〜48時間待つ、ブラウザでrobots.txtに直接アクセスして確認などがあります。
問題5:noindexが効かない
症状:noindexを設定したのに、ページがインデックスから消えない。
原因:robots.txtでそのページをブロックしているため、クローラーがnoindexを読み取れない。
解決方法:noindexを設定するページは、robots.txtでブロックしないでください。
robots.txtのチェックリスト
robots.txt設定のチェックリストをまとめます。
基本設定チェック
ファイルがルートディレクトリに配置されているか確認してください。ファイル名が「robots.txt」(小文字)か確認してください。UTF-8エンコーディングを使用しているか確認してください。構文エラーがないか確認してください。サイトマップのURLが正しく記載されているか確認してください。
ブロック設定チェック
重要なページがブロックされていないか確認してください。管理画面・システムファイルがブロックされているか確認してください。noindexを設定するページはブロックしていないか確認してください。JS・CSS・画像などリソースをブロックしていないか確認してください。
動作確認チェック
サーチコンソールのrobots.txtテスターで確認したか確認してください。主要なURLがブロックされていないかテストしたか確認してください。サブドメインごとに設定が正しいか確認してください。
定期的な見直しチェック
サイト構造の変更に合わせて更新しているか確認してください。新しいディレクトリ・機能のブロック設定を追加しているか確認してください。不要になったブロック設定を削除しているか確認してください。
robots.txtとサイト構造の関係
robots.txtとサイト構造の関係について解説します。
サイト構造に基づいたブロック設計
効率的なブロック設定は、サイト構造に基づいて行います。
推奨されるディレクトリ設計として、ブロックしたいファイルは特定のディレクトリにまとめる、例:/private/、/internal/、/admin/など、こうすることで、robots.txtの設定がシンプルになるなどがあります。
URL設計との連携
URL設計とrobots.txtを連携させます。
連携のポイントとして、ブロックしやすいURL構造を設計、パラメータの命名規則を統一、静的URLと動的URLを区別しやすくするなどがあります。
内部リンクとの関係
robots.txtでブロックしたページでも、内部リンクの影響を考慮します。
ポイントとして、ブロックしたページへの内部リンクを減らす、重要なページへのリンクを優先、内部リンク戦略全体と調整などがあります。
robots.txtと他のSEO施策の連携
robots.txtを他のSEO施策と連携させる方法を解説します。
XMLサイトマップとの連携
XMLサイトマップとrobots.txtを連携させます。
連携のポイントとして、robots.txtにサイトマップのURLを記載、robots.txtでブロックしたURLはサイトマップに含めない、両方で一貫した情報を提供などがあります。
noindexとの連携
noindexとrobots.txtの適切な使い分けです。
使い分けとして、インデックスを確実に防ぎたい→noindex(robots.txtでブロックしない)、クロール自体を防ぎたい(リソース節約)→robots.txt、両方の目的がある→noindexを優先(robots.txtでブロックしない)などがあります。
canonicalとの連携
canonicalタグとrobots.txtの関係です。
ポイントとして、canonicalを設定するページはrobots.txtでブロックしない、クローラーがcanonicalを読み取れるようにする、重複コンテンツ対策はcanonicalを優先などがあります。
リダイレクトとの連携
301リダイレクトとrobots.txtの関係です。
ポイントとして、リダイレクト元のURLをrobots.txtでブロックしても、リダイレクトは機能する、ただし、クローラーがリダイレクトを発見しにくくなる可能性がある、リダイレクト設定後は、robots.txtでのブロックは不要などがあります。
robots.txtの監視と保守
robots.txtの監視と保守について解説します。
定期的な見直し
robots.txtは、サイトの変更に合わせて定期的に見直す必要があります。
見直しのタイミングとして、新しいディレクトリ・機能の追加時、サイト構造の変更時、URL設計の変更時、定期的な棚卸し(四半期ごとなど)などがあります。
監視ツールの活用
Googleサーチコンソールとして、robots.txtの状態を確認、エラーの検出、特定URLのブロック状況をテストできます。
サードパーティツールとして、Screaming Frog SEO Spider(クロール時にrobots.txtを確認)、ContentKing / Lumar(変更監視)などがあります。
変更管理
robots.txtの変更を適切に管理します。
推奨される方法として、バージョン管理(Git等)を使用、変更履歴を記録、変更前にテスト環境で検証、変更後の影響を監視などがあります。
robots.txtに関する追加FAQ
robots.txtに関する追加の質問にお答えします。
Q. robots.txtでブロックしているページへの被リンク効果はどうなりますか?
A. robots.txtでブロックしているページでも、外部からの被リンクは受けられます。
ただし、クローラーがそのページにアクセスできないため、ページの内容は評価されません。被リンクの効果が正しく伝わらない可能性があります。
Q. robots.txtとmeta robotsの優先順位は?
A. robots.txtが先に評価されます。
robots.txtでブロックされているページには、クローラーがアクセスしないため、meta robots(noindexなど)を読み取ることができません。
Q. サイト移行時のrobots.txt設定は?
A. 移行先のrobots.txtを適切に設定し、移行元では必要に応じて更新します。
移行時のポイントとして、移行先で新しいrobots.txtを準備、移行元は通常、リダイレクト設定で対応、移行後、両サイトのrobots.txtを確認などがあります。
Q. 画像や動画専用のrobots.txt設定は?
A. 画像検索や動画検索からの除外には、専用のUser-agentを使用します。
例:
User-agent: Googlebot-Image
Disallow: /private-images/
User-agent: Googlebot-Video
Disallow: /private-videos/
Q. robots.txtの最大ファイルサイズは?
A. Googleは500KiBまでのrobots.txtを処理します。
通常の設定では制限に達することはありませんが、非常に大きなファイルは避けてください。
まとめ:robots.txtでクロール効率を最大化しよう
本記事では、robots.txtの書き方について徹底解説しました。
robots.txtの役割
クロールの制御、クロールバジェットの最適化、サーバー負荷の軽減、サイトマップの通知などに役立ちます。
基本的な書き方
User-agentでクローラーを指定、Disallowでブロックするパスを指定、Allowで例外的に許可、Sitemapでサイトマップを通知などがポイントです。
重要な注意点
ブロック≠インデックス防止、インデックスを防ぎたい場合はnoindexを使用、noindexページはrobots.txtでブロックしない、構文エラーに注意、配置はルートディレクトリ、定期的に見直すなどに注意しましょう。
robots.txtは、テクニカルSEOの基本要素です。本記事で紹介した方法を参考に、適切なrobots.txt設定を行い、クロール効率を最大化してください。
関連記事として、noindexタグの使い方、XMLサイトマップの作成、クロールバジェットの最適化も合わせてご覧ください。
robots.txt設定の実践例
実際のrobots.txt設定事例を紹介します。
事例1:大規模メディアサイトのクロール最適化
状況:月間1億PVのメディアサイトで、不要なページへのクロールがクロールバジェットを圧迫していた
施策として、検索結果ページをブロック、タグページ(1000件以上)のうちSEO価値の低いものをブロック、印刷用ページ・PDF版をブロック、古いアーカイブをブロックしました。
結果として、クロールバジェットの効率が向上、重要な記事ページのクロール頻度が増加、新規記事のインデックス速度が改善しました。
事例2:ECサイトのパラメータ制御
状況:ECサイトで、絞り込み・ソート条件により大量のURLが生成され、重複コンテンツの問題が発生
施策として、ソート・フィルターパラメータをブロック、セッション・トラッキングパラメータをブロック、カート・チェックアウトをブロック、ただし主要カテゴリページは許可しました。
結果として、インデックスされるURLが適正化、重複コンテンツの問題が軽減、主要商品ページの検索順位が安定しました。
事例3:誤った設定の修正
状況:サイトリニューアル後、robots.txtの設定ミスでサイト全体がブロックされていた
問題として、「Disallow: /」の設定が残っていた、全ページがクロールされなくなった、検索流入が激減しました。
対処として、即座にrobots.txtを修正、サーチコンソールでrobots.txtを再送信、主要ページのクロールをリクエストしました。
結果として、約1週間でクロールが回復、約3週間でインデックスが回復、再発防止のためチェック体制を強化しました。
CMS別のrobots.txt設定詳細
主要なCMSでのrobots.txt設定の詳細を解説します。
WordPress詳細設定
WordPressでのrobots.txt設定の詳細です。
デフォルトのrobots.txtとして、WordPressは物理的なファイルがない場合、仮想的なrobots.txtを生成します。内容は基本的な設定のみです。
プラグインでの管理として、Yoast SEOやRank Mathでは、管理画面からrobots.txtを編集できます。バージョン管理や検証機能も提供されます。
Shopifyでのrobots.txt設定
Shopifyでのrobots.txt設定についてです。Shopifyはデフォルトでrobots.txtを生成し、カート、チェックアウト、管理画面などを自動的にブロックします。カスタマイズは制限されています。
robots.txtの将来展望
robots.txtの今後の展望について解説します。
AIクローラーの増加
AIサービスの普及により、AIクローラーが増加しています。OpenAI、Google、Anthropicなど各社がAI学習用クローラーを運用し、robots.txtでのAIクローラー制御が一般化しています。コンテンツの権利保護の観点から重要性が増しています。
標準化の動向
Googleはrobots.txtの仕様を標準化(RFC 9309)し、より一貫性のある解釈が期待されています。新しいディレクティブの追加の可能性もあります。
robots.txtのセキュリティ考慮事項
robots.txtに関するセキュリティ上の考慮事項を解説します。
情報漏洩のリスク
robots.txtは公開ファイルであるため、ブロックしているディレクトリ名が公開されます。攻撃者に対してヒントを与える可能性があります。
対策として、機密ディレクトリは robots.txt に記載しない、認証・アクセス制限を優先、一般的なディレクトリ名を使用などがあります。
クローラーの検証
正規のクローラーかどうかを検証するには、IPアドレスの逆引き(DNS)、Googlebot等の公式ドキュメントでのIP確認、WAF(Web Application Firewall)の導入などの方法があります。
本記事で紹介したrobots.txtの設定方法とベストプラクティスを実践し、クロール効率を最大化してください。適切なrobots.txt設定は、クロールバジェットの最適化とSEOパフォーマンスの向上に貢献します。