WEBマーケティングをもっと身近に。
SEO対策 2024/03/06

robots.txtとは?書き方のルール・設定方法を解説

robots.txtとは?書き方のルール・設定方法を解説のサムネイル画像です

「robots.txt」とは検索エンジンのクローラーがページをクロールするのを管理するためのファイルです。「どのような場面で使用するのか?」「どのように設定するのか?」「noindexタグとの違いは何か」など、疑問に感じている方も多いのではないでしょうか?本記事では、robots.txtの意味や使い方について詳しく解説します。

1

robots.txtとは

robots.txtは、検索エンジンのクローラーが自社のWEBサイトを読み込む際にアクセスするページを制御するためのテキストファイルで、「ロボッツ・テキスト」と読みます。

主に、WEBサイトの管理者が検索エンジンに対して特定のページや、ディレクトリグループへのクロールを拒否することを指示するために使用されます。

Googleのクローラーは、インターネットを通じて世界中のWEBページをクロールしてページの情報を集めています。

クローラーは、ページにアクセスしたら最初にrobots.txtファイルにアクセスしてクロールが許可されているかを確認するため、クロールしてほしくないページがある場合は、robots.txtファイルに記述してクロールを拒否することが出来ます。

2

robots.txtを使うケース

通常robots.txtを使う場面は多くはありませんが、以下に該当するケースではrobots.txtを使ってクロールを制限します。

  • クロールバジェットに悪影響が出ている場合
  • クローラーのアクセスがサーバーの負荷になっている場合

尚、一部のサイトではrobots.txtはインデックスを防ぐために使用すると紹介されていますが、それは誤りです。

robots.txtでクロールを拒否しても外部サイトのリンクなどからインデックスされる可能性があるため、インデックスを完全に拒否したい場合はnoindexタグを使うか、WEBページにパスをかける必要があります。

2-1

クロールバジェットに悪影響が出ている場合

クロールバジェットとは、Googleのクローラーが1つのWEBサイトをクロールできる上限を指します。Googleの検索エンジンもリソースには限りがあり、世界中で日々増加するWEBページを全てクロールすることはできません。

小規模なサイトではクロールバジェットを特に心配する必要はありませんが、100万ページを超えるような大規模なサイトでは、クロールバジェットの制限によりクローラーが新しいページを巡回しない可能性があります。

そのため、クロールバジェットに悪影響を与えないように、検索結果に表示する必要がないページはrobots.txtを使って拒否し、重要なページを優先的にクロールしてインデックスさせる対策を行います。

2-2

クローラーのアクセスがサーバーの過負荷になる場合

robots.txtの使用は、検索エンジンのクローラーによるアクセスがサーバーに過負荷をもたらしている場合に有効です。

通常、Googleのクローラーがサーバーに高い負荷をかけることは少ないですが、稀に大量のアクセスが発生することがあります。(大規模サイトのSEO担当者の方はサーバーログなどで確認しているはず)

そのような状況を防ぐため、robots.txtを利用して不要なページのクローリングを禁止し、サーバーへの負担を事前に軽減させることができます。

3

robots.txtの書き方

robots.txtの書き方は、テキストエディタを開き、「User-agent: 」でクローラーを指定し、「Disallow:」でアクセス禁止するパスを設定します。ファイル名を「robots.txt」で保存し、WEBサイトのルートディレクトリにアップロードして完了です。

具体的には、下記の流れで作成からアップロードまで行います。

  1. robots.txtという名前のファイルを作成する
    「メモ帳」や「Crescent Eve」などのテキストエディタで、ファイル名をrobots.txtにしたファイルを作成します。

  2. ファイル内にクローラーに対する指示を書く
    作成したrobots.txtファイルにクローラーのアクセスを拒否・許可する指示を書きます。

  3. サイトのルートにrobots.txtファイルをアップロードします
    FTPソフトや、コントロールパネルを使用して、サーバーからWEBサイトのルートディレクトリ(最上位のディレクトリ)にアップロードします。

  4. 正しく設定されているかテストをします
    robots.txtテスターを使って正しく設定されているかを確認します。
4

robots.txtファイル内に記載するルールの書き方

robots.txtを設定する流れを理解したら、実際に作成したファイル内に記載するルールについて解説します。

robots.txtファイル内に記載するクローラーに対しての指示(ルール)は、

  • 「User-Agent」
  • 「Disallow」
  • 「Sitemap」

の3つの要素で構成されています。

robots.txtファイル内の記入例は以下になります。

User-agent: *
Disallow: /
Sitemap: http://www.○○.com/sitemap.xml

それぞれの要素についての意味と書き方について解説します。

4-1

User-agent

「User-agent」は、制御するクローラーを指定する項目でrobots.txtの最初の行に必ず記述する必要があります。

基本の形は以下になります。

User-agent: ●●bot

User-agent:の後ろに指定するクローラー名を記述します。尚、User-agentの行では、大文字と小文字の区別はされません。

■ 全てのクローラーに対する指示
全てのクローラーに対して指示を出す場合は、「*」アスタリスクを記述します。

User-agent: *


■ 特定のクローラーに対する指示
特定のクローラーに対して指示を出す場合は、User-agent:の後にクローラー名を記載します。
以下の例では、Googleのクローラー「Googlebot」にのみ適用する記述方法です。

User-agent: Googlebot


Googlebotの代わりに別のクローラーの名前を使用すれば、そのクローラーに特化したルールを設定できます。

■ 複数のクローラーに対する指示
複数のクローラー(検索エンジンのロボット)を対象とする場合、robots.txtファイル内でそれぞれのクローラーに対して異なる指示を出すことが可能です。

User-agent: Googlebot
# ここにGooglebotに対する指示を書く

User-agent: Bingbot
# ここにBingbotに対する指示を書く

4-2

Disallow

【Disallow】は、クロールを拒否するページを指定する項目です。特定のページだけでなく、範囲を指定して拒否することもできます。Disallow:に記載したディレクトリやファイルはクロールされません。

Disallow:の後に何も記述しない場合は、そのUser-agentに対して何も禁止しないことを意味するため全てのページがクロールされます。尚、Disallowに記述するかどうかは任意です。

■ サイト全体をクロールから除外する場合
クローラーがサイト内の全てのページへのアクセスを禁止するように指示する場合は、以下のように記述します。

Disallow: /


特定のディレクトリをクロールから除外する場合
特定のディレクトリ全体をクロールから除外する場合は、/の後にディレクトリ名を記述します。
例えば、/seo/のディレクトリをクロールから除外する場合は以下のように記載します。

Disallow: /seo/


■ 特定のファイルをクロールから除外する
特定のファイルをクロールから除外する場合は、/の後にファイル名を記述します。
例えば、/directory/file.htmlをクロールから除外する場合は以下のように記載します。

Disallow: /directory/file.html

4-3

allow

【Allow】は、クロールを許可するページを指定する項目です。記述するかどうかは任意です。前提としてクローラーはすべてのページをクロールするため、クロールを許可したいページのすべてを【Allow】で許可する必要はありません。

前述した【Disallow】で拒否した範囲の中で、特定のページのクロールを許可したい場合に【Allow】で指定します。

【Allowの記述例】

User-agent: *
Disallow: /(ディレクトリ名)/
Allow: /(ディレクトリ名)/(ページURL)

4-4

Sitemap

【Sitemap】は、クローラーにXMLサイトマップ(sitemap.xml)の場所を伝えるために記述します。ただし、robots.txtファイルにSitemapを記述するかどうかは任意のため、sitemap.xmlファイルを作成していない場合は未設定でも問題ありません。

Sitemapを指定するには、下記のように「Sitemap:」の後ろにサイトマップのファイル名を記載します。

Sitemap: http://www.○○.com/sitemap.xml


■ 複数のサイトマップを指定する場合
複数のサイトマップを持っている場合は、下記のように「Sitemap: 」を複数記述することでサイトマップを指定できます。

  • Sitemap: http://www.○○.com/sitemap1.xml
  • Sitemap: http://www.○○.com/sitemap2.xml

XMLサイトマップはGoogleサーチコンソールから送信していればクローラーに認識してもらえますが、他の検索エンジンのクローラーに対しては、robots.txtに記述することでXMLサイトマップの存在を知らせることができます。

5

robots.txtの確認方法

robots.txtファイルをサーバーにアップロードしたら、記述ミスが無いかを確認しましょう。robots.txtが正しく設定できているかどうかは「サーチコンソール」の「robots.txtレポート」で動作確認を行います。

robots.txtの確認

※ 以前はrobots.txtテスターから動作確認を行うことが出来ましたが、2023/12/12で廃止となっています。

確認方法は、サーチコンソールログイン→設定→robots.txtをクリックしてステータスを確認します。正しく設定されている場合は、取得ステータス に「取得済み」のステータスが表示されます。

「未取得 - 見つかりませんでした(404)」や「未取得 - その他の理由」が表示された場合は、正しい場所にアップロード出来ていない可能性があります。

robots.txtレポートについての詳細は、Googleサーチコンソールの公式ヘルプをご確認ください。

robots.txt レポート

6

robots.txtの注意点

robots.txtを作成・設置する際に注意することは以下の5点です。

  1. インデックスを拒否することはできない
  2. ユーザーはページを見る事ができる
  3. robots.txtの内容は外部に見られる
  4. robots.txtを設定してもSEO効果はない
  5. robots.txtは全ての検索エンジンに対して強制力があるわけではない
6-1

インデックスを拒否することはできない

robots.txtは、クローラーがページをインデックスするのを拒否するために設置するファイルではありません。特定のページのクロールを拒否する指示をrobots.txtで指定しても、外部サイトにURLが貼られている場合、クローラーがリンクを辿ってページをクロールし、インデックスする可能性があります。

特定のページをインデックスしたくない場合は、robots.txtではなくnoindexタグを設置しましょう。

6-2

ユーザーはページを見る事ができる

robots.txtを使って特定のページのクロールを拒否しても、ユーザーはそのページを閲覧できます。robots.txtはクローラーのページクロールを拒否するだけで、ユーザーのページアクセスを直接防ぐことはできません。

そのため、ユーザーによるページの閲覧を完全に防ぎたい場合は、ページを削除するか、サイト全体または特定のページにパスワードを設定し、アクセスを許可されたユーザーのみが閲覧できるようにしてください。

6-3

robots.txtの内容は外部に見られる

サイトに設置しているrobots.txtにどのような内容が記述されているかは、下記のようにサイトのURLの末尾に「robots.txt」を付け加え、ブラウザのアドレスバーに入力することで、サイトの運営者だけでなく誰からでも確認することができます。

【例】

https://○△■.com/robots.txt

6-4

robots.txtを設定してもSEO効果はない

robots.txtを設定したからといって、SEO効果が高まることはありません。なぜならrobots.txtはクローラーが巡回する効率を高めるためのものであり、ページの品質を高めるものではないからです。

SEO効果を高めるためには高品質なコンテンツの作成、適切なキーワードの使用、サイトのパフォーマンスの最適化、被リンクの獲得など、多方面にわたる取り組みが必要です。

6-5

robots.txtは全ての検索エンジンに対して強制力があるわけではない

robots.txtは検索エンジンのクローラーに対するクロールの指示を提供するものであり、全ての検索エンジンに対して強制力を持つわけではありません。Google等の一般的な検索エンジンは指示に従いますが、悪意のあるボットやクローラーがrobots.txtを無視する場合があります。

そういった悪意を持った検索エンジンのクロールを拒否するには、.htaccessを使って制限する必要があります。

7

robots.txtとnoindexタグの違い

robots.txtとnoindexタグの違いは、そもそもの役割が異なります。

robots.txtはクロール自体を制限するファイルなのに対して、noindexタグはHTMLタグに記載するメタタグで、クロールを制御するものではなく、インデックス自体を拒否するために使用します。

【robots.txtとnoindexの違い】

robots.txtnoindexタグ
役割の違いクロールを拒否するインデックスを拒否する
インデックスの有無インデックスされる可能性があるインデックスされない
クロールの有無クロールを拒否できるクロールされる


尚、Googleのクローラーはページを読み込む前にrobots.txtを確認してクロールの拒否許可を確認します。そのため、noindexタグを設定してもrobots.txtでクロールを拒否している場合、クローラーがnoindexを読み込むことが出来ないためインデックスされます。

ぺージを検索結果に表示させたくない場合は、robots.txtではなくnoindexタグを使用しましょう。

8

まとめ

今回は、robots.txtの概要からSEO効果、設置する目的、作成・記述方法について解説しました。

ページをrobots.txtでクロール拒否しておくことで、クロールが効率化します。また、画像や動画など100万ページを超えるような大規模なサイトではクローラーの負担が大きくなるため、必要のないデータ量が大きいファイルを多数設置しているサイトでも効果的です。

一方、ページ数が少ないサイトでは、robots.txtの設置が必須なわけではありません。

また、robots.txtに記述ミスがあると、ページのインデックスが遅れたり、アクセス数が低下する恐れもあります。robots.txtを設置する必要があるかを確認し、適切な方法で作成・設置しましょう。

ホワイトリンク 記事内用バナー


この記事を書いたライター

SEO施策部

SEMを軸にSEOの施策を行うオルグロー内の一部署。 サイト構築段階からのSEO要件のチェックやコンテンツ作成やサイト設計までを一貫して行う。社内でもひときわ豊富な知見を有する。またSEO歴15年超のノウハウをSEOサービスに反映し、3,000社を超える個人事業主から中堅企業までの幅広い顧客層に向けてビジネス規模にあった施策を提供し続けている。

RECOMMENDED ARTICLES

ぜひ、読んで欲しい記事

  • 構造化データとはのサムネイル画像です
    SEO対策
    2024/11/27
    構造化データとは?SEO効果とメリット・書き方を解説

    2024/11/27

  • 被リンクとはのサムネイル画像です
    SEO対策
    2024/11/27
    被リンクとは?SEO効果の高いリンクをわかりやすく解説

    2024/11/27

  • SEOの外部対策とは?のサムネイル画像です
    SEO対策
    2024/11/25
    SEO外部対策とは?やり方と注意点を徹底解説

    2024/11/25

  • 内部リンクとは?のサムネイル画像です
    SEO対策
    2024/11/25
    内部リンクとは?貼り方とSEO効果について解説

    2024/11/25

  • 更新頻度とSEOの関係のサムネイル画像です
    SEO対策
    2024/10/28
    更新頻度とSEOの関係は?最適なコンテンツの管理方法を解説

    2024/10/28

  • ブラックハットSEOとは?のサムネイル画像です
    SEO対策
    2024/10/17
    ブラックハットSEOとは?ホワイトハットSEOとの違いと手法一覧

    2024/10/17

backtotop