SEO/MEO対策

robots.txtの書き方|クロールを制御してSEO効率を最大化する設定方法

「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を確認・テストできます。

確認方法

  1. サーチコンソールにログイン
  2. 「設定」→「robots.txt」を選択
  3. 現在のrobots.txtの内容を確認
  4. 特定のURLがブロックされているかテスト

直接アクセスでの確認

ブラウザで直接robots.txtにアクセスして確認できます。

https://example.com/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ファイルを作成します。

手順

  1. テキストエディタでrobots.txtを作成
  2. FTPまたはファイルマネージャーでアップロード
  3. ルートディレクトリ(/public_html/など)に配置

物理的なファイルが存在すると、WordPressの仮想的なrobots.txtよりも優先されます。

Yoast SEOでの設定

Yoast SEOを使用してrobots.txtを編集できます。

手順

  1. 「SEO」→「ツール」→「ファイルエディター」を開く
  2. robots.txtの内容を編集
  3. 「robots.txtの変更を保存」をクリック

Rank Mathでの設定

Rank Mathでもrobots.txtを編集できます。

手順

  1. 「Rank Math」→「一般設定」→「robots.txtを編集」を開く
  2. 内容を編集
  3. 保存

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 SEORank 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パフォーマンスの向上に貢献します。

    ご希望サービスをすべてお選びください 必須

    業種 必須

    お名前 必須

    電話番号 必須

    メールアドレス 必須

    ご要望があれば内容をご記入ください

    使用したい写真は公式LINEよりお送りください

    タップ → @763qkbqf

    関連記事