robots.txtとは?役割・用途・書き方とSEOで注意したいポイント

robots.txtの役割と検索エンジンのクロール制御を表したイラスト

Webサイトを運営していると、「robots.txt」というファイル名を見かけることがあります。検索エンジンに関係する設定ですが、何のために存在し、SEOにどのような影響があるのか分かりにくいと感じる方もいらっしゃるでしょう。

robots.txtは、検索エンジンのクローラーがWebサイトのどこへアクセスできるかを伝えるための仕組みです。正しく理解すれば、不要なURLへのクロールを制御できますが、設定を間違えると重要なページの巡回を妨げるおそれがあります。

ここでは、robots.txtの役割と用途を中心に、基本的な書き方やWordPressでの扱い方、SEOで注意したいポイントを順番に解説します。

 

目次

robots.txtとは?基本的な役割と仕組み

robots.txtとは、検索エンジンのクローラーに対して、Webサイト内のどのURLへのアクセスを許可・制限するかを伝えるテキストファイルです。

クローラーとは、Googleなどの検索エンジンがWebページを発見し、情報を収集するために使用する自動プログラムを指します。

robots.txtは、Robots Exclusion Protocol(クローラーのアクセス制御に関する共通規約)に基づく仕組みで、RFC 9309として標準化されています。

Webサイトの管理者は、このファイルにルールを記述することで、対応するクローラーへアクセス方針を伝えられます。

 

robots.txtはどこに設置される?

robots.txtは、通常Webサイトのドメイン直下に設置します。例えば、サイトのURLが「https://example.com/」であれば、robots.txtのURLは次のとおりです。

https://example.com/robots.txt

ブラウザのアドレスバーにこのURLを入力すると、公開されているrobots.txtの内容を確認できます。

なお、robots.txtはプロトコル(HTTPとHTTPSなどの通信方式)、ホスト名、ポート番号ごとに適用範囲が区別されます。サブドメインにも同じルールが自動的に適用されるわけではありません。

 

検索エンジンはrobots.txtをどのように利用する?

Googlebotなどの対応クローラーは、サイトを巡回する際にrobots.txtを取得し、記載されたルールに従ってURLへのアクセス可否を判断します。

例えば、特定のディレクトリ(ファイルを分類するフォルダーに相当する領域)へのアクセスを禁止すれば、そのルールに従うクローラーは対象URLをクロールしません。

ただし、robots.txtはアクセスを強制的に遮断するセキュリティ機能ではありません。ルールを守らないクローラーまで制御できる仕組みではないことを理解しておく必要があります。

 

robots.txtの主な用途とは?

robots.txtの用途は、単に検索エンジンを拒否することではありません。Webサイトの構成や運営方針に合わせて、クロール対象を調整するために使用します。

 

1. 不要なURLへのクロールを制限する

Webサイトには、検索結果からの流入を必要としないURLが存在する場合があります。

例えば、大量の検索結果ページや、パラメータ(URLの末尾に付ける追加情報)によって生成される類似URLなどです。

こうしたURLへのアクセスが多いサイトでは、robots.txtによる制御がクロール負荷の軽減につながる場合があります。

ただし、すべての検索結果ページやパラメータ付きURLを一律に禁止すべきという意味ではありません。必要なコンテンツまで制限しないよう、URLの役割を確認して判断します。

 

2. サーバーへのアクセス負荷を調整する

大規模なWebサイトでは、クローラーが多数のURLへアクセスすることで、サーバーの処理負荷が増える場合があります。

robots.txtを利用すると、クロールする必要性が低い領域へのアクセスを制限できます。

特に、同じ内容を異なる条件で表示するURLが大量に存在するサイトでは、クロール対象の整理が役立つことがあります。

一方、小規模なブログでは、robots.txtを細かく調整する必要がないケースも少なくありません。不要な制限を増やすより、重要なページを正常にクロールできる状態に保つことが優先です。

 

3. XMLサイトマップの場所を伝える

robots.txtには、XMLサイトマップ(検索エンジンにサイト内のURL情報を伝えるファイル)の場所を記載することもできます。

例えば、次のような記述です。

Sitemap: https://example.com/sitemap.xml

この記述により、対応する検索エンジンへサイトマップのURLを知らせられます。

ただし、サイトマップを記載しただけで、すべてのページのクロールやインデックス登録が保証されるわけではありません。

 

4. 特定のクローラーに異なるルールを指定する

robots.txtでは、クローラーの種類ごとにアクセスルールを分けることも可能です。

例えば、一般的なクローラーに適用するルールと、特定の検索エンジンのクローラーに適用するルールを分けられます。

ただし、実際の対応状況はクローラーごとに異なるため、個別の制御が必要な場合は対象サービスの仕様に合わせて設定する必要があります。

 

robots.txtの基本的な書き方

robots.txtは通常のテキスト形式で記述します。HTMLやCSSのような複雑な構造は必要ありません。

基本的には、User-agentで対象クローラーを指定し、DisallowやAllowでアクセスルールを記述します。

記述 役割 意味
User-agent 対象の指定 ルールを適用するクローラーを指定します。
Disallow アクセス制限 指定したURLパスへのクロールを禁止します。
Allow アクセス許可 指定したURLパスへのクロールを許可します。
Sitemap サイトマップ案内 XMLサイトマップのURLを伝えます。

 

User-agent:対象のクローラーを指定する

User-agentは、どのクローラーにルールを適用するかを指定する項目です。

例えば、次の記述は、特定のクローラー名を指定しない一般的なルールの開始を表します。

User-agent: *

アスタリスク(*)は、個別に指定されたクローラーグループがない場合に適用する共通の対象を意味します。

Googlebotを個別に指定する場合は、次のように記述できます。

User-agent: Googlebot

個別指定と共通指定がある場合、クローラーは自分に適用されるグループを判断します。単純にすべてのグループのルールを合算するわけではありません。

 

Disallow:クロールを禁止する

Disallowは、クローラーにアクセスしてほしくないURLパスを指定するための記述です。

例えば、次のように設定すると、対応するクローラーに対して「/private/」から始まるパスへのアクセスを禁止します。

User-agent: *
Disallow: /private/

ただし、この設定はフォルダーへの認証制限ではありません。ブラウザからの直接アクセスや、ルールを無視するプログラムによるアクセスを防ぐものではないため、機密情報の保護には使用しないでください。

 

Allow:特定のパスを許可する

Allowは、クロールを許可するURLパスを指定する項目です。

例えば、ある領域へのアクセスを制限しながら、その中の特定のファイルだけを許可する場合に利用できます。

User-agent: *
Disallow: /sample/
Allow: /sample/public.html

この例では「/sample/」配下を原則禁止しながら、「/sample/public.html」へのアクセスを許可する意図を表しています。

ルールが競合した場合は、より具体的に一致するパスが優先されます。同じ長さでAllowとDisallowが競合した場合、GoogleはAllowを優先します。

 

Sitemap:サイトマップのURLを指定する

サイトマップの場所は、次のように絶対URL(https://から始まる完全なURL)で記載します。

Sitemap: https://example.com/sitemap.xml

Sitemapはクロールの許可・禁止を定めるルールとは異なり、検索エンジンにサイトマップの所在を知らせるための記述です。

 

robots.txtの記述例と設定結果

基本的な用途を理解するために、代表的な記述例を確認してみましょう。以下は説明用のサンプルであり、そのまま実際のサイトへ適用することを推奨するものではありません。

 

すべてのクロールを許可する例

User-agent: *
Disallow:

Disallowの値が空の場合、アクセスを禁止するパスは指定されていません。

この記述は、すべてのURLを検索結果へ登録する指示ではなく、robots.txtによるクロール制限を設けないことを意味します。

 

サイト全体のクロールを禁止する例

User-agent: *
Disallow: /

この記述は、対応するクローラーに対してサイト全体のクロールを禁止します。

公開中のWebサイトで誤って設定すると、Googlebotが重要なページへアクセスできなくなるおそれがあります。

特に、本番サイトと検証用サイトで設定を流用する際には注意が必要です。

 

特定のディレクトリを禁止する例

User-agent: *
Disallow: /test/

この例では「/test/」から始まるURLパスへのクロールを禁止します。

一方、「/test-page/」は「/test/」から始まらないため、このルールの対象外です。ただし、「Disallow: /test」のように末尾のスラッシュを省略すると、「/test/」と「/test-page/」の両方が制限対象になります。意図しないURLまで制限しないよう、パスの指定方法に注意してください。

 

複数のディレクトリを禁止する例

User-agent: *
Disallow: /sample/
Disallow: /backup/

複数のDisallowを記述すると、複数のURLパスを制限できます。

ただし、ファイル名やディレクトリ名から機密性が推測できる場合もあるため、robots.txtへ機密情報の保存場所を記載すること自体にも注意が必要です。

 

robots.txtとnoindexの違い

robots.txtを理解するうえで、特に重要なのがnoindexとの違いです。

robots.txtはクロールを制御する仕組みですが、noindexは検索エンジンに対して、ページを検索結果へ登録しないよう伝える指示です。

「クロールさせたくない」のか、「検索結果に表示させたくない」のかによって、使用する方法が異なります。

比較項目 robots.txt noindex
主な目的 クロールの制御 検索結果への登録防止
指定場所 ドメイン直下のrobots.txt HTMLのmetaタグやHTTPレスポンスヘッダー
ページへのアクセス 対応クローラーのアクセスを制限 通常はクロールを妨げない
検索結果への表示 URLが表示される可能性あり 検索エンジンが指示を確認できれば登録を防止
機密情報の保護 不可 不可

 

robots.txtで禁止しても検索結果に表示されることがある

Googleは、robots.txtでクロールを禁止されたページであっても、外部サイトなどからURLを発見する場合があります。

そのため、ページの内容を取得できなくても、URLだけが検索結果に表示される可能性があります。

つまり、robots.txtのDisallowは検索結果からの完全な除外を保証しません。

 

検索結果に表示させたくない場合はnoindexを使う

HTMLページでnoindexを指定する基本的な記述例は次のとおりです。

<meta name="robots" content="noindex">

Googleがページをクロールしてこの指示を認識できれば、検索結果への登録を防ぐことができます。

ただし、robots.txtで同じページのクロールを禁止していると、Googleがnoindexを読み取れない場合があります。

noindexを認識させたいページをrobots.txtで同時に遮断しないことが重要です。

また、パスワードや個人情報などを含むページは、noindexだけに頼らず、認証や適切なアクセス制御で保護する必要があります。

 

robots.txtはSEOにどのような影響がある?

robots.txt自体が検索順位を直接上げる設定というわけではありません。

SEOへの影響は、主に検索エンジンが必要なページやリソースを適切にクロールできるかどうかに関係します。

 

重要なページをブロックするとクロールに影響する

検索エンジンに評価してほしいページへのアクセスを禁止すると、そのページの内容をGooglebotが取得できなくなります。

新しいページの発見や既存ページの更新内容の認識にも影響する可能性があるため、重要なURLは原則としてクロール可能な状態に保ちます。

特に、サイト全体を禁止する「Disallow: /」は、本番サイトで意図せず設定しないよう注意してください。

 

CSSやJavaScriptのクロールも重要

Googleは、ページの内容を理解するためにCSS(見た目を指定するファイル)やJavaScript(画面の動作を制御するプログラム)などのリソースを利用することがあります。

これらを不必要にブロックすると、Googleがページを正しくレンダリング(ブラウザに近い形で表示内容を処理すること)できなくなる可能性があります。

そのため、単にファイルの種類だけで一律にアクセスを禁止するのではなく、ページの表示や内容理解に必要なリソースかどうかを判断することが大切です。

 

クロールバジェットとの関係

クロールバジェットとは、Googlebotが一定期間にサイトをクロールできる量を考える際の概念です。

大量のURLを持つサイトでは、不要なURLへのアクセスを制限することで、クロールの効率化につながる場合があります。

ただし、robots.txtで特定のURLを禁止したからといって、ほかのページのクロール頻度が必ず増えるわけではありません。

小規模なWebサイトでは、クロールバジェットを過度に意識して複雑な制限を設ける必要性は一般に高くありません。

 

WordPressでrobots.txtを確認する方法

WordPressでは、実際のrobots.txtファイルを設置していなくても、仮想的なrobots.txtが出力される場合があります。

そのため、まずは現在どのような内容が公開されているかを確認することが重要です。

 

1. ブラウザでrobots.txtのURLを開く

自分のサイトのドメインの末尾に「/robots.txt」を付けてアクセスします。

https://example.com/robots.txt

内容が表示されたら、User-agentやDisallowの記述を確認してください。

特に「Disallow: /」のような広範囲の制限が存在しないかを確認します。

 

2. WordPressの検索エンジン向け設定を確認する

WordPressの管理画面では、通常「設定」から「表示設定」を開くと、検索エンジンでの表示に関する設定を確認できます。

「検索エンジンがサイトをインデックスしないようにする」という項目が有効になっている場合は、サイトの公開方針と一致しているか確認してください。

ただし、この項目はrobots.txtの個別ルールを直接編集するための設定ではありません。検索エンジンに対するサイト全体の公開方針に関係するため、robots.txtとは区別して扱います。

 

3. robots.txtを変更する場合の注意点

WordPressのrobots.txtは、サーバー上の実ファイルやプラグインなどによって管理されている場合があります。

編集する場合は、まず現在の内容を保存し、どの仕組みから出力されているのかを確認してください。

実ファイルを設置する方法もありますが、既存の仮想robots.txtやプラグインの設定との関係を把握せずに変更することは避けます。

特に、複数のSEOプラグインやサーバー側の設定が関係している環境では、表示されているrobots.txtの内容を基準に判断する必要があります。

 

robots.txtの設定でよくある間違い

Disallow: /を誤って設定する

サイト全体のクロールを禁止する設定を、本番環境へ誤って適用してしまうケースです。

設定後は、サイトのトップページだけでなく、主要な記事URLがクロール可能な状態かどうかを確認することが大切です。

 

robots.txtを非公開設定の代わりに使う

robots.txtの内容は一般に公開されており、誰でも閲覧できます。

アクセスを禁止したパスも記述内容から分かるため、非公開資料や個人情報を守るための仕組みとしては使用できません。

機密性の高いコンテンツは、パスワード認証やアクセス権限の管理など、別の方法で保護してください。

 

noindexとDisallowを混同する

検索結果に表示したくないページをrobots.txtで禁止しても、URLが検索結果に残る可能性があります。

また、Disallowとnoindexを併用すると、クローラーがnoindexを確認できない場合があります。

検索結果から除外する目的であれば、対象ページをクロール可能な状態にしたうえでnoindexを認識させる方法を検討します。

 

ルールを変更した直後に反映されたと判断する

robots.txtの内容は、クローラー側で一定期間キャッシュ(一時保存)されることがあります。

そのため、ファイルを変更しても、すべてのクローラーが即座に新しいルールへ切り替わるとは限りません。

変更後は、Google Search Consoleなどでクロール状況を確認し、時間を置いて反映状況を判断します。

 

robots.txtについてよくある質問

robots.txtがないとSEOに悪影響がありますか?

robots.txtが存在しないこと自体が、直接的なSEO上の問題になるわけではありません。

クロール制限が不要なサイトでは、robots.txtを新しく作成する必要がない場合もあります。

ただし、ファイルが存在しない場合と、サーバーエラーなどによって取得できない場合では、検索エンジン側の扱いが異なることがあります。

 

robots.txtを設定すると検索順位は上がりますか?

robots.txtを設置しただけで検索順位が上がるわけではありません。

主な役割はクロールの制御であり、検索順位を直接改善するための設定ではないためです。

重要なコンテンツを検索エンジンが取得できる状態に保つことが、基本的な考え方となります。

 

robots.txtでAIクローラーも制限できますか?

robots.txtに対応しているAI関連のクローラーであれば、対象のUser-agentを指定してアクセス方針を伝えることができます。

ただし、すべてのAIクローラーが同じルールに対応しているわけではありません。また、robots.txtによって過去に取得されたデータの削除や、すべてのAI学習の停止が保証されるわけでもありません。

個別のAIサービスを対象にする場合は、クローラーの正式名称や用途、制御方法を区別する必要があります。

 

robots.txtとXMLサイトマップは同じものですか?

両者は異なる役割を持っています。

robots.txtはクローラーのアクセスを制御するためのファイルであり、XMLサイトマップは検索エンジンにサイト内のURL情報を伝えるためのファイルです。

robots.txt内にサイトマップのURLを記載できますが、どちらか一方がもう一方の代わりになるわけではありません。

 

まとめ:robots.txtはクロールを適切に制御するための仕組み

robots.txtは、検索エンジンのクローラーに対して、Webサイト内のどのURLへアクセスしてよいかを伝えるためのファイルです。

不要なURLへのクロールを制限したり、XMLサイトマップの場所を知らせたりする用途がありますが、検索結果への登録を直接禁止する仕組みではありません。

robots.txtを設定する際は、クロール制御とインデックス制御の違いを理解し、重要なページへのアクセスを誤って禁止しないことが大切です。

WordPressでサイトを運営している場合は、まず公開中のrobots.txtを確認し、必要な制限がある場合だけ慎重に変更することをおすすめします。

PR記事一覧

Ads Blocker Image Powered by Code Help Pro

広告ブロックを検出しました!

ブラウザの拡張機能を使用して広告をブロックしていることが検出されました。

ブラウザの広告ブロッカーなどの機能を無効にして「更新」をクリックして下さい。

You cannot copy content of this page