robots.txt(ロボッツテキスト)とは?間違うと危険!記述方法と設置の方法、注意点について

  • このエントリーをはてなブックマークに追加

この記事では、robots.txt(ロボッツテキスト)について紹介します。
robots.txtとは何か?robots.txtの機能と記述方法についてまとめています。
SEO対策としてrobots.txtの設置を提案されたので内容を理解したいSEO担当者の方や、robots.txtを設置するにあたり、設置方法に不安のある方はご覧ください。

robots.txtは誤って設置すると、検索結果からサイトへの流入が減ることもあるので、設置方法の注意点についても紹介します。
SEO対策の基本の1つでもあるので、サイトを構築したときはもちろん、サイトリニューアルの際にもあらためて、サイトが正しく検索エンジンに認識・評価されるように確認をしてください。

robots.txt(ロボッツテキスト)とは

robots.txt(ロボッツテキスト)とは、検索エンジンがサイトをクロール(巡回)する際に、クロール対象ページを指示するファイルです。
robots.txtファイルに記述された指示をもとに、クローラはサイトをクロールし、ページをインデックス(データベース化)していきます。
robots.txtファイルがなくともページはインデックスされますが、インデックスさせたいページ、させたくないページを指定できます。

通常は、サイト運用を行う担当者やサイトを作成した制作会社が設置します。

正しくサイトをクロールさせるため、また、クロール不要なページにクローラが来ないようにするために、正しく設置を行いましょう。

robots.txtの機能と記述方法

robots.txtファイルでは、クロールしてほしいページの範囲、反対にクロールされたくないページを指定するのが主な機能です。
そのほか、sitemap.xmlファイル(サイトのURLの一覧を記述し、検索エンジンにページの存在を伝えるファイル)の設置個所を伝える機能があります。
仕様として「User-agent(必須)」「Disallow(任意)」「Allow(任意)」「Sitemap(任意)」というものがあります。

サンプルとして下記、ウェブ部のrobots.txtの記述をもとに記述方法を説明します。

(ウェブ部のrobots.txt: https://webbu.jp/robots.txt
————————————————————
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://webbu.jp/sitemap.xml
————————————————————

User-agent: *
User-agentでは、クローラの種類を指定します。この記述のみ、必須の項目です。
「*」を記載すると、すべてのクローラを許可します。
Googlebotのみ対象とする場合は、次のとおり記述します。
User-agent : Googlebot

一般的には「*」で記載するケースがほとんどですが、何らかの理由で制限をしたいときは対象のみを指定します。

Disallow: /wp-admin/
Disallowは、クロールをブロックしたいページやディレクトリを指定します。
「Disallow: /wp-admin/」と記述した場合、https://webbu.jp/wp-admin/ 配下のページのクロールをブロックします。
ウェブ部のように、クロールの必要がないCMSの管理画面ページなどを指定するケースが一般的です。
特にブロックする対象がない場合は、記述不要です。

Allow: /wp-admin/admin-ajax.php
Allowは、Disallowと反対に、クロールを許可するページやディレクトリを指定します。
「Allow : /」と冒頭に記述すると、全ページをクロール対象とします。
また、ウェブ部の例のとおり、Disallowの下に記述することで、ブロックしたページの一部のクロールを許可します。

Sitemap: https://webbu.jp/sitemap.xml
sitemap.xmlの設置個所を指定し、検索エンジンに伝えます。
後述しますが、robots.txtの設置個所は指定されているのに対し、sitemap.xmlファイルは設置個所が自由に指定できます。
また、ページ数が多いサイトでは、複数のsitemap.xmlファイルを設置することもあります。
そのため検索エンジンの、どのURLにsitemap.xmlファイルがあるかを伝える必要があります。

sitemap.xmlファイルを設置した際は、必ずrobots.txtファイルに記述しましょう。

robots.txtの設置方法

robots.txtファイルは、サイトのルートドメイン(トップページ)に設置することが決められています。
ファイル名も「robots.txt」でなければいけません。
まれに「robot.txt」と「s」を抜いたファイル名を記載する誤りがありますので、注意してください。

ウェブ部でも次のように設置しています。
https://webbu.jp/robots.txt

間違うと危険!robots.txtの注意点

robots.txtファイルは、設置記述を誤ると正しくクロールされず、検索結果にページが表示されなくなってしまいます。
注意点をまとめましたので、robots.txtファイルを作成したら、チェックしてください。

間違ってクロールをブロック(Disallow)してはいけない

誤って「Disallow : /」と記述してしまうと、サイト全体をクロールブロックすることになります。
クローラがサイトを巡回せず、検索結果にサイトが表示されなくなってしまいますので、もし誤って記述してしまった場合は、すぐに修正しましょう。

インデックスしたくない(検索結果に出したくない)ページにDisallowは使用してはいけない

これはとても間違いやすいポイントなので、注意してください。
Disallowは、インデックスをブロックするのではなく、クロールをブロックする指令です。
誤った使い方として、検索結果に出したくないページをDisallowで設定した結果、検索結果に表示され、さらに説明文が表示されない、ということがあります。

別サイトから皆さんの運営サイトにリンクが貼られた場合、検索エンジンはそのリンク先のページURLを認識します(インデックスします)。
インデックスされているので、仮にそのページをDisallowで指定していたとしても、検索結果にはそのページURLは表示されてしまいます。

ただし、クロールブロックされており、ページのコンテンツ内容などHTMLソースが認識できないため、タイトルタグやディスクリプションも認識できません。
結果として、Disallowで設定されたページが検索結果に表示されると、説明文が表示されません。

検索結果表示例:

検索結果に表示させたくないページ(インデックスさせたくないページ)で、他サイトからリンクされる可能性のあるページについては、robots.txtのDisallowではなく、ページのHTMLソースにnoindexタグを設置することで、インデックス自体を拒否してください。

また、noindexタグを設置したページは必ずクロールを許可し、Disallowの設定をしないでください。
Disallowで指定してしまうと、noindexも認識されずに、検索結果に表示されてしまいます。

sitemap.xmlをSSL化したらrobots.txtも更新する

例えば、それまでサイトが非SSLだったが、サイト全体をSSL化した場合に起こりやすい間違いです。

サイトマップを、 http://sample.com/sitemap.xml に設置していたが、サイトがSSL化したために、 https://sample.com/sitemap.xml に変更となることがあります。

その際は、robots.txt内に記述されたsitemap.xmlの設置場所も更新をするようにしましょう。

Sitemap:http://sample.com/sitemap.xml

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

まとめ

この記事では、SEO対策の基本の1つでもあるrobots.txt(ロボッツテキスト)について紹介しました。
自社のサイトが正しく検索エンジンに認識・評価されるように正しく記述、設置をしてください。

  • このエントリーをはてなブックマークに追加