robots.txtは、検索エンジンのクローラーに対して、クロールの制御を指示するファイルです。
サイト運営していくにあたって、「robots.txtをどう記述すればよいかわからない」や「記述方法があっているのかわからない」などのお悩みを抱えているケースも少なくないのではないでしょうか?
実際、クライアント様のサイトを見て記述がおかしいケースも少なからずあります。
この記事では、robots.txtとは何かから、記述方法まで解説いたします。
「SEO、何から始めればいいかわからない」という方は下記も合わせてご覧ください。⇒【これだけやればOK!】内部対策の施策を網羅的にまとめた3点セット(無料)
robots.txtとはクロールを制御するテキストファイル
検索エンジンは「クローラー」と呼ばれるボットを利用し、サイトを巡回します。
robots.txtはその「クローラー」に対して、サイト内のどのページをクロールしてよいか、あるいはクロールしてはいけないかを指示するテキストファイルです。
このファイルは、Webサイトのルートディレクトリに配置し、検索エンジンのクローラーがサイトにアクセスする際に最初に参照するものです。
クローラーがWebサイトを巡回するうえでの、ルールを設定するものなので、適切に記述しておく必要があります。
robots.txtの指示は、特定の検索エンジンのクローラーや全てのクローラーに対して適用できます。
また、Webサイトの案内版となるsitemap.xmlの場所を伝えるのにも役立ちます。
補足
ファイル名は「robots.txt(ロボッツドットテキスト)」です。
robotsの「s」が抜けてしまっていたり、ファイル名を誤ってしまうと機能しない為、気を付けましょう。
SEOにおけるrobots.txtの重要性
DB型サイトやECサイトのような大規模サイトでは、robots.txtを上手く活用することがSEO上重要になってきます。
例えば、絞り込み機能や並べ替え機能など、自動生成されるページが大量に生成されてしまう場合、検索エンジンのクローラーはすべてのページをクロールします。
クローラーは一定期間内でクロールできる上限が設定されているため、クロール対象のページが増えれば増える程、本来クロールしてほしいページがクロールされなくなってしまう可能性があります。
そうした場合、新しく上げたページがインデックスされるまでに時間がかかってしまったり、コンテンツをリライトしたのに評価されないなどの可能性があります。
また、記述を誤ってしまうと本来評価したいページがクロールされなくなり、検索結果に表示されないなどの可能性もあるため、適切に取り扱うことが重要です。
「SEO、何から始めればいいかわからない」という方は下記も合わせてご覧ください。⇒【これだけやればOK!】内部対策の施策を網羅的にまとめた3点セット(無料)
robot.txtの役割
SEOにおけるrobots.txtの役割は4つあります。
- 特定のページやファイルをクロールさせないようにする
- クロールの最適化
- サイトマップの提示
- 画像・動画・PDFファイルを検索結果に表示させないようにする
それぞれ解説します。
特定のファイルをクロールさせないようにする
ログインページ、会員ページ、ステージング環境(本番公開一歩手前のテスト環境)など、通常のユーザーに見られたくない、検索結果に表示させたくないページがWebサイト上に存在するケースがあります。
上記のような、ユーザーに見られたくないページのクロールをブロックするためにrobots.txtは使われます。
クローラビリティの最適化
DB型のサイトやECサイトなど、条件付きの絞り込み機能で大量にページが生成される場合、ページ数が膨大になるケースがあります。
クローラーが1日にクロールできる上限は限られているため、流入が見込めないページはrobots.txtでクロールを制御します。
robots.txtでクロールを制御すると、ほかの評価されたいページへのクロール頻度が多くなります。結果、ページを更新したときなど、クローラーが情報を読み取るまでの期間が短くなり、ページが評価されやすくなります。
サイトマップの提示
XMLサイトマップはrobots.txtに記載することで、XMLサイトマップの位置を検索エンジンに示せます。
XMLサイトマップをrobots.txtに記載しておくことで、クローラーがサイトマップを見つけやすくなり、効率的にサイト内のページをクロールできます。
また、GoogleサーチコンソールやBingウェブマスターツールでも、サイトマップの送信が可能ですが、サイトマップの送信ができない検索エンジンもあるため、robots.txtに記載しておくとよいでしょう。
画像・動画・PDFファイルを検索結果に表示させないようにする
動画や画像・PDFファイルなどHTMLでないページにnoindexを設定することはできません。
その際robots.txtを利用することで、検索結果に表示されないように設定ができます。
動画や画像、PDFファイルのクロール制限をする際には、disallowにURL単体で指定するもしくは、該当の拡張子を正規表現で記載するとよいでしょう。
正規表現での記述方法に関しては下記で解説しています。
robots.txtの記述方法
robots.txtの記述は主に4つの要素で構成されます。
- User-Agent
- allow
- Disallow
- sitemap
それぞれ解説いたします。
User-Agent
User-Agentは、指示の対象となるクローラーを指定します。
クローラーの種類は数多く存在します。
すべてのクローラーに指示する場合は下記のように記述します。
User-agent: *
「*」はすべてという意味です。
また、Googlebotのみを指定したい場合下記のように記述します。
User-agent: Googlebot
また、画像用Googlebotのみを指定したい場合は下記です。
User-agent: Googlebot-image
何かしらの理由がない場合はすべてのクローラーを指定する方法を使いましょう。
Disallow
Disallowはアクセス制限を意味する記述で、クロールを禁止するURLやディレクトリを指定します。
サイト全体のクロール制限
User-agent: *
Disallow: /
上記の記載ですべてのページをクロールしなくなります。
サイトを公開する前、準備中などに使われることが多いですが、公開後も残っているケースは少なくありません。
公開後この記述が残っていると、サイト全体でクローラーがクロールしなくなるため、正しく評価を得られない可能性があります。
ディレクトリ単位でのクロールを制限したい場合
User-agent: *
Disallow: /example/
この設定により、/example/ディレクトリ以下のクロールが禁止されます。
ページ単位でのクロールを制限したい場合
User-agent: *
Disallow: /example/sample.html
この設定により、特定のページへのクロールが禁止されます。
また、パラメーター付きのURLのクロール制限をしたいときは下記の記述になります。
User-agent: *
Disallow: /*?
「/?○○」のようなURLを見たことある方も多いと思います。
これがパラメーター付きのURLとなります。
DB型のサイトやECサイトなどで、並び替え機能、絞り込み機能を使用しているサイトに見られます。
上記の設定で、パラメーターを含むページのクロールを防げます。
もちろん、根拠なく上記の設定をすべきではなく、流入がまったく無いが、ユーザーによって必要なページであれば、必要に応じて使いましょう。
allow
allowはアクセス許可を示し、クロールを許可するURLやディレクトリを指定します。
基本的には記述していなくても、クロールはされるのですが、Disallowを使用してクロール制限をかけているディレクトリの中でも、特定のディレクトリ、ページはクロールしてほしいというような場合に使われます。
User-agent: *
Disallow: /example/
allow: /example/sample.html
上記は /example/配下のディレクトリは基本的にクロールしないでほしいが、/example/sample.htmlというページだけは例外的にクロールしてほしいという指示になります。
sitemap
sitemapはWebサイトのサイトマップXMLの場所を指定します。
Sitemap: https://www.example.com/sitemap.xml
これにより、クローラーにサイトマップの場所を知らせることができます。
robots.txtで使える正規表現
正規表現とは、1つの記述で複数の文字列を表現するときの方法です。
robots.txtの「allow」「disallow」でURLを指定するとき、2つの正規表現が使えます。
「*」:0文字以上の任意の文字列にマッチする
「$」:URLの末尾にマッチする
たとえば、「*」を使うと特定の拡張子を指定してクロール制御することができます。
Disallow: /*.png
「*」はワイルドカード(何が何文字入っていても良い)を指します。
クロール許可されるURL
/example/sample.html
/example2/sample.html
クロール制限されるURL
/example/sample.png
/example2/sample.png
上記のように「.png」が入っているURLのクロールを制御することができます。
また「$」は完全に一致するURLを指定し、それ以外のクロールを許可する場合に使います。
Disallow: /example/$
上記の場合、/example/はクロール制御したいが、配下はクロールしてほしいという意味になります。
クロール許可されるURL
/example/sample.html
/example/sample.png
/example/sample/index.html
クロール制限されるURL
/example/
正規表現を上手く活用することで、robots.txtへの記述を抑えられ、管理がしやすくなります。
ただ、正規表現もまた記述が誤ってしまう可能性があるため、記述が間違っていないか確認したいときには「正規表現チェッカー」を使いましょう。
記述の確認方法
robots.txtの記述が正しいかどうかを確認するには、現在有効なツールがありません。
過去Google Serch Console上で「robots.txtテスター」と呼ばれるものが存在しましたが、2023年12月に廃止となりました。
そのため、現在はrobots.txtが想定通りに機能するかどうかは公開前で確認することができません。ファイルを上げる際には注意して行うようにしましょう。
Disallowを使用するうえでの注意点
robot.txtを取り扱う上での注意点もあります。
- インデックスの制御のためには使用しない
- ユーザーのアクセス制限はできない
それぞれ解説します。
インデックスの制御のためには使用しない
コンテンツの情報量が少ないページなど、質の高くないページに「disallow」を使用しないようにしてください。
Webサイトにクローラーが入ってきた際はrobots.txtを参照しますが、外部リンクなどで直接クローラーに見つかった場合、インデックスされる可能性があります。
インデックスされた場合、disallowによりクローラーが情報を読み取れないため、検索結果で、「このページの情報はありません」のようなディスクリプションが表示されます。
基本的にコンテンツの情報量が少ないページは、リライトするか、できない場合はnoindexを使用してください。
また、noindexとの併用もできないことを認識しましょう。
disallowはクローラーにページをクロールしないように指示する設定のため、noindexと併用しても、noindexを読み取ることができないので、noindexが機能しません。
そのため、noindexを使用する場合は、disallowをしないようにしてください。
ユーザーのアクセス制限はできない
robots.txtはクローラーのアクセス制限を行うもので、ユーザーは流入す津可能性があります。
ユーザーに見せたくないページやディレクトリをdisallowで制御しても、URLが何らかの理由で広まってしまうと、URLを知っているユーザーは見れてしまいます。
そのため、クローラー以外にもアクセスを制御したい場合はベーシック認証をかけるなどの対応をしましょう。
まとめ
robots.txtは検索エンジンのクローラーにクロール制御を指示する目的で設置されるファイルです。
大規模サイトなどでは、うまく活用することでクロール効率を向上させることができますが、記述を誤ってしまうとサイトに悪影響を及ぼしてしまいます。
また、ページ数が少ない場合にはクロールの制御が不要なケースが多いため、CMSの管理画面のみdisallowに記述することが一般的です。
robots.txtは複雑なため、もし細かい調整をしたいがどうすればよいかわからないや、上手く反映できてるか確認したいなどあれば、ぜひご相談ください。
【無料】資料ダウンロード
3分でわかるSEOコンサル資料セット
資料でわかること
- SEOサービスの利用料金
- デジタリフトが成果を出せる理由
- SEO支援サービスの進め方とサービス詳細
- なぜ今SEO対策に取り組むべきなのか