WebサイトのSEO対策を行うときは、robots txtの設置が必要です。しかし、名前は知っているものの、robots txtを活用できていない方も多いのではないでしょうか。
robots txtは検索エンジンのクローラーを制御できる効果があり、SEOを意識したサイト運営に役立ちます。設置するときは、必要となるケースや正しい書き方を把握することが大切です。
この記事では、robots txtの基本情報や書き方を中心に解説します。注意点も併せて解説するため、robots txtのことを知りたい方は参考にしてください。
1.robots txtとは?
robots txtとは、Webサイト上に設置するテキストファイル形式のプログラムであり、検索エンジンのクローラーを制御するためのファイルです。robots txtの用途を簡単に説明すると、以下の2つに大別できます。
- クローラーが指定したディレクトリグループやURLアドレスを巡回しないよう制御する
- sitemap.xmlの場所を教えてクローラーの巡回を促進する
クローラーは検索ロボットとも呼ばれ、インターネット上に存在するページの情報を収集する機能です。
例で説明すると、WebサイトにA・B・Cのページが存在する場合、クローラーはA・B・Cそれぞれのページにアクセスします。インターネット上で公開されているページは、検索エンジンの評価により検索順位が決定するためです。
検索エンジンはクローラーが各サイトを巡回することで、検索順位を決定するための情報を取得しています。
しかし、クローラーに巡回してほしくないページがある場合は、クローラーの動きを制御することが必要です。robots txtでWebサイトのルールを定義することにより、対象ページにおけるクロール制御ができます。robots txtを設置したページは評価から除外され、検索エンジンの検索結果にも表示されません。
1-1.robots txtが必要なケース
robots txtの主な用途には、「ページをクローラーの評価対象外にする」ことがあると分かりました。ここでは、実際にrobots txtが必要なケースを紹介します。
◯CMSなどWebサイトを管理するページ
Webサイトのテキスト・画像・レイアウトなどを管理・保存するCMSには、ログインページが設置されています。CMSの管理画面やログインページは、サイト管理者のみがアクセスできればよいため、クローラーに巡回させる必要がありません。
◯会員限定ページやショッピング決済画面などの動的に生成されるページ
会員登録することでアクセスできるページやECサイトの決済画面は、アクセスしたユーザーの状態によって表示内容が異なる動的ページです。動的ページをあらかじめクローラーに見せないことで、クローラーの巡回を助けることができます。
検索エンジンのクローラーは、Webサイト内に存在する全ページを巡回するわけではありません。記事数が多い大規模サイトでは、クローラーが巡回しないページも発生します。クローラーに意味がないページを参照させず、クロールを最適化させるためにはrobots txtの設置が必要です。
2.robots txtの書き方
robots txtの設置方法や書き方は、決して難しいわけではありません。robots txtは、パソコンに最初から付属している「メモ帳」でも作成できます。
まずはファイル名を「robots.txt」にして、中は何も書かずに保存しましょう。保存後はサーバーにアクセスし、使用したいWebサイトのルートディレクトリに「robots.txt」をアップロードします。ルートディレクトリとは、TOPページが置かれている最上位の階層です。
アップロード後には「robots.txt」の中を編集して、クローラーに対する指示を書き込みます。指示内容によって使用する文字列や記述方法は異なるため、正しい書き方を把握することが重要です。以下ではrobots txtの書き方について解説します。
2-1.User-agent
最初に、User-agentを記述しましょう。
User-agentとは、robots txtを適用するクローラーの種類を指定する文字列であり、robots txtを使用するうえで記述が必須となる項目です。User-agentは以下の形式に沿って記述してください。
User-agent:●
「●」部分に対象としたいクローラーの名称を書くことで、制御するクローラーが指定できます。クローラーについて調べたうえで、制御したいクローラーが指定できる書き方をしましょう。
なお、「:」の後には半角スペースを使用して、読みやすくすることがGoogleにより推奨されています。
◯全てのクローラーを対象とする場合
以降に記述する文字列について、種類を指定せず全てのクローラーを対象とする場合は、「User-agent:」の後ろに「*」(アスタリスク)を記述します。一般的なサイトであれば、クローラーの種類を指定しなくても問題ありません。
・記述例
User-agent: *
◯特定のクローラーを対象とする場合
特定のクローラーを制御対象としたい場合は、「User-agent:」の後ろにクローラー名称を記述します。たとえば、Google検索のクローラーのみを対象とする場合は、以下の通りです。
・記述例
User-agent: Googlebot
◯複数のクローラーを対象とする場合
User-agentは1行につき1つの指定ができる文字列であるため、2つ以上のクローラーを対象とする場合、複数行にわたって書く必要があります。たとえば、Google動画検索とBing検索のクローラーを対象とする場合は、以下の通りです。
・記述例
User-agent: Googlebot-Video
User-agent: bingbot
2-2.Disallow
Disallowは、クローラーの巡回を拒否するディレクトリやファイルを記述する文字列です。robots txtに何も記述していない場合、デフォルトで巡回許可となっているため、Disallowを使用してクロール制限するページを指定します。Disallowは任意で記述する文字列であるため、巡回拒否したいページがない場合は記述の必要がありません。
巡回拒否するページを設定する場合は、以下の形式に沿って記述してください。
Disallow: /●
「●」の部分に「URLパス」または「URLパスの先頭」を記述することで、対象ページの巡回を拒否できます。Disallowの主な使い方は以下の3つです。
◯ディレクトリ全体を指定する場合
ディレクトリ全体の指定では、「Disallow:」の後にディレクトリ名をそのまま記述します。たとえば「www.example.com/A/」について、ディレクトリ「A」全体をクローラーの巡回拒否したい場合は、以下のように書きましょう。
・記述例
Disallow: /A/
◯パラメータが含まれるURLを指定する場合
ECサイトなどで使用されているパラメータを含むURLは、クローラーが巡回すると重複コンテンツと認識される可能性があります。
「/*?」を指定することで、パラメータが含まれるURL全てを巡回拒否することが可能です。
・記述例
Disallow: /*?
◯特定のファイル名が含まれるURLを指定する場合
xmlファイルやpdfファイルなど、サイト上に設置している特定のファイルを巡回拒否したい場合は、「/*」の後ろにファイル拡張子名を記述し「$」で閉じましょう。
・記述例
Disallow: /*.xml$
2-3.Allow
Allowは、Webサイト内でクローラーに巡回を許可するディレクトリやファイルを指定する文字列です。Allowの記述はDisallowと同じ書き方で行います。以下の形式に沿って、「●」部分に指定したいディレクトリ名やファイル名を記述してください。
Allow: /●/
ただし、robots txtはデフォルトでクローラーを巡回許可しているため、Allowのみを使用することは多くありません。主な用途は、Disallowで指定した上位ディレクトリ内に、巡回許可したい下層のディレクトリやファイルが存在する場合です。
たとえば、Disallowによって「top」のディレクトリは巡回拒否が指定されていて、下層にあたる「main」を巡回してほしい場合、以下のように書きましょう。「top」の下層にあるディレクトリ・ファイルは巡回拒否するものの、「main」を含むディレクトリ・ファイルは巡回許可する指示を出せます。
記述例
Disallow: /top/
Allow: /top/main/
DisallowとAllowを組み合わせることで、「あるページは巡回拒否しながら、別のページは巡回許可する」といったクローラーの制御が可能です。Webサイト内でクローラーに巡回してほしいページが限定されている場合は、積極的にDisallow・Allowの組み合わせを使用しましょう。
2-4.Sitemap
Sitemapは、XML形式のサイトマップが設置されているURLを指定する文字列です。以下のように、「Sitemap:」の後にXMLサイトマップがあるURLをそのまま記述します。
記述例
Sitemap: http://●●●.com/sitemap.xml
Sitemapの記述は任意であり、サイトマップを設置していないWebサイトの場合では、そもそも記述する必要がありません。Googleクローラーの場合は、Sitemapが指定されていなくてもサーチコンソールにより登録したサイトマップを使用できます。
ただし、サイトマップを設置しているWebサイトの場合は、なるべくSitemapを記述しましょう。Sitemapを記述することで、クローラーにサイトマップがある場所を明示できます。サイトマップを通じて巡回してほしいページURLやサイト構造を伝えられるため、クローラビリティを向上させることが可能です。
サイトマップが複数ある場合は、Sitemapの部分を改行してそれぞれ記述します。サイトマップをディレクトリごとに分けているWebサイトなどの場合は、以下のように記述しましょう。
記述例
Sitemap: http://●●●.com/sitemap.xml
Sitemap: http://●●●.com/shop/sitemap.xml
3.robots txtの確認はどうすればいい?
robots txtを設定した後は、検索エンジンのクローラーに正しく認識されているか確認する必要があります。
robots txtの確認を行うためには、「robots.txtテスター」の利用がおすすめです。
robots.txtテスターはGoogleのサーチコンソールに搭載されているツールであり、無料で利用できます。ツールがクローラーと同じように動作することで、robots txtの設定が正しいかどうかを確認可能です。
robots.txtテスターを利用するときは、以下の手順で操作しましょう。
- ①サーチコンソールにログインして、ダッシュボードの「クロール」から「robots.txtテスター」を順にクリックする
- ②現在設定しているrobots txtファイルがエディタ形式で表示される
- ③エディタの下部にある入力フォームに、robots txtの動作確認がしたいページURLをドメイン以下で入力する
- ④右下の「テスト」をクリックすると、テストが実行される
robots.txtテスターでテストを実行すると、③で入力したページURLをツールがアクセスできたか・できなかったかなどの結果が表示されます。判別方法は以下の通りです。
◯ページURLにアクセスできた場合
画面右下に「許可済み」と緑色の字で表示されます。
◯ページURLにアクセスできなかった場合
アクセスできない要因となった行が赤くハイライトされ、画面右下に「ブロック済み」と赤色の字で表示されます。
◯正しく記述されておらず、robots txtが動作していない場合
エラーを含む行が赤くハイライトされます。
4.robots txtとnoindexの違いとは?
Webサイトの編集・管理を行っている方は、robots txtとnoindexの違いが分かりにくく感じることも多いのではないでしょうか。どちらも検索エンジンの情報収集や制御に関わるものの、使い方は異なるため注意が必要です。
以下ではnoindexの概要や、robots txtとの違いについて解説します。
4-1.noindexとは
noindexとは、指定したWebページを検索エンジンがインデックスできないようにするためのタグです。インデックスできないページは検索エンジンのデータベースに記録されないため、noindexタグを付けたページは検索結果に表示されなくなります。
robots txtとnoindexの大きな違いは、検索エンジンのクローラーに対する制御です。
robots txtはクローラーの巡回拒否により検索結果を表示させない機能があります。
一方でnoindexはクローラーによる巡回を行わせて、インデックス拒否のタグを見せることで検索結果に表示させない仕組みです。
4-2.利用シーンが異なることについて
robots txtとnoindexは、サイト運営における利用シーンも異なります。それぞれの利用シーンを把握し、正しく使い分けできるようにしましょう。
◯robots txtの利用シーン
- サイト内ページをディレクトリ単位で検索結果から除外したい
- クローラーの制御により巡回効率を促進したい
robots txtの目的は、クローラーが価値の高いページへ巡回するよう制御することです。サイト内ページ数が多く、クローラーがサイト内を完全に巡回できない場合に適しています。
◯noindexの利用シーン
- 低品質なページによる検索結果への影響を避けたい
- 削除するとサイトの利便性が損なわれるページを検索結果から除外したい
noindexは、ページ単位でSEOに与える影響を制御したい場合に使用します。編集中・修正中のページや、会社概要・プライバシーポリシーなど、他ページよりもSEO価値が低いページに使用しましょう。
4-3.Disallowとの併用には注意
robots txtのDisallowとnoindexは、どちらも検索結果にページを表示させない効果があるため、併用してしまう方も少なくありません。しかし、Disallowとnoindexを併用すると、noindexの効果がなくなるため注意してください。
すでにインデックスされているページをDisallowで指定すると、クローラーによる巡回は行われなくなります。しかし、検索エンジンのインデックスは残っている状態です。ページに後からnoindexタグを入れても、クローラーはDisallowで拒否されているためnoindexの処理ができず、前のインデックスが残ってしまいます。
5.robots txt設置時の注意点とは?
robots txtの設置時にはさまざまな注意点があります。以下で紹介する5つの注意点を参考に、robots txtを正しく扱いましょう。使い方によっては目的通りの効果を発揮できなかったり、意図しない結果を招いたりする可能性があります。
◯注意点1:robots txt設置だけではSEO効果が期待できない
robots txtはクローラーを制御してページの巡回可否を決められるものの、単独ではSEO効果が期待できません。robots txtを設置する目的は、あくまでクローラーの巡回効率を促進させることです。クローラビリティ向上により検索エンジンの評価反映が早くなるものの、順位改善のためには高品質なコンテンツが必要となります。
◯注意点2:robots txtに強制力はない
robots txtは、検索エンジンのクローラーに対して巡回許可・拒否を指示できるものです。しかし、命令内容に強制力はありません。主要な検索エンジンのクローラーは記述内容に従うものの、中には指示を無視して巡回するクローラーも存在します。
robots txtに従わないクローラーには「.htaccess」など別の手段で対処しましょう。
◯注意点3:検索ユーザーのアクセスは制限できない
robots txtが制御する対象はあくまでも検索エンジンのクローラーであるため、検索ユーザーのアクセス制限・アクセス拒否はできません。ユーザーアクセスを制限したいページにはWeb認証を設置しましょう。
◯注意点4:間違えて設定するとSEOに悪影響がある
robots txtはクローラーの巡回について指示するため、設定方法を間違えるとSEOに悪影響を及ぼします。たとえば、重要コンテンツのページにDisallowを指示すると、対象ページが検索結果に表示されません。記述間違いを起こさないよう、robots.txtテスターで必ずチェックしてください。
◯注意点5:外部の参照リンクから巡回された場合はブロックできない可能性がある
Disallowによりクローラーの巡回をブロックしても、外部サイトに設置されている参照リンクから、ブロックされたページをインデックスする可能性があります。ページのインデックス登録もブロックしたい場合は、noindexタグなどを使用して対処が可能です。
6.SEO業者の選び方
robots txtはSEO対策において重要であり、設定を失敗すると検索順位に影響を与えかねません。
robots txtの失敗を防ぐためには、SEO対策のプロであるSEO業者に依頼することがおすすめです。信頼できるSEO業者の選び方として、2つのポイントを紹介します。
- 企業規模を確認する
SEO業者の企業規模はサービスを利用するうえで重要なポイントです。社員が数名しかいないなど極端に規模が小さい業者の場合、提供サービスの幅に限りがあったり、希望を反映できるスピードが遅かったりします。
規模が大きいほど優良というわけではないものの、SEO対策を安心して任せられるだけの規模があることを確認しましょう。
- 業者の評判を検索する
依頼を検討しているSEO業者がある場合は、利用前にインターネット上で評判を検索してみましょう。SEO業者の評判はランキングサイトなどで掲載されていることがあります。評判・クチコミは信頼性が低いケースもあるものの、業者が提供するサービスや費用感の参考にしてみてください。
実績豊富なSEO業者の場合、robots txtの仕様についても正しく理解しているため、クローラー制御の記述でミスは起こりません。信頼できるSEO業者にサイトの内部施策を依頼して、クローラビリティの高いサイト作りをしましょう。
まとめ
ここまで、robots txtの基本情報や書き方、また注意点などを中心に解説しました。
robots txtは、検索エンジンのクローラーが行う巡回を制御できるプログラムです。ファイル内にUser-Agent・Disallow・Allow・Sitemapと4つの指示を記述でき、制御するクローラーの種類や巡回可否などが行えます。
robots txtでクローラーの動きを制御するためには、正しい書き方や注意点を把握しなければなりません。内部施策のためにrobots txtを利用したい場合は、SEO業者に依頼しましょう。