「robots.txt」の記述例とサンプル

「robots.txt」は、検索エンジンなどのロボットのアクセスを制御するためのテキストファイルのことです。検索エンジンのロボットはクローラー(Crawler)とも呼ばれていますが、自動化されている機械的なプログラムのため、人間による実際のアクセスではありません。

例えば、当ホームページのアクセス解析をのぞいてみると、このようなクローラーによるアクセスが確認できます。

GoogleやBingなどの検索エンジンをはじめ、Baiduや海外Yahoo!などの様々なクローラーがサイトにやってきます。クローラーには約300程度の種類が存在しますが、大半はGoogleやMSNなどの検索エンジンによるアクセスが多いかと思います。

これらのクローラーが「新しいページはあるかな?」とサイト内を探し回り、発見するとそのページを検索エンジンのデータベースに登録していきます。登録された後にグーグルなどの検索結果でも表示されるようになり、人間による実際のアクセスへとつながっていきます。

けれども、「robots.txt」でクローラーのアクセスを拒否している場合は検索エンジンにインデックスされなくなってしまうため、検索結果でもヒットしなくなってしまいます。

また、TwitterやFacebookにてシェアされた際にきれいに表示されるOGPタグがありますが、「Twitterbot」や「Facebot」などのクローラーも拒否しているとSNSできれいに表示されないこともあります。

そのため、「robots.txt」にてクローラーのアクセスを許可しておくことをおすすめします。

「robots.txt」でクローラーのアクセスを許可する方法

デフォルトの状態でクローラーのアクセスは「許可」されていますので、robots.txtを設定しなくても特に問題はありません。

ロボットアクセスを許可する方法

クローラーのアクセスを許可する場合、以下の方法があります。

何も設置しない → 一番多い
②Disallowのスラッシュなしで許可 → わりと多い
③Allowで明示的に許可 → 少数派
④空のrobotsファイルを作成 → ??


①アクセスを許可する一番確実な方法は「robots.txt」を設置しないことです。実際にいくつかのサイトでrobots.txtを確認してみると、このケースが一番多いかと思います。

②についてですが、robotstxt.orgのこちらのページの中段あたりにて、許可する場合の書き方(To allow all robots complete access)が掲載されています。一応はこれが正式な書き方かと思われます。

つまり、全てのロボット「*」に対して、クロールを許可しない(disallow)ページは何もないという意味で、全部許可するという意味になります。

ただし、スラッシュを入れてしまうと全てのページ「/」で「許可しない」というまったく逆の意味になってしまうので注意が必要です。

③についてですが、②の方法は何かと紛らわしいため、許可するの(allow)を使って書いているサイトもあります。

意味は全てのロボット「*」に対して、全てのページ「/」のアクセスを許可(allow)するという意味になります。

また、④の空のファイルを作成する方法については、上記のrobotstxt.orgの許可する場合の書き方の箇所に以下の記述があり、空のファイルでも許可の意味になります。

(or just create an empty "/robots.txt" file, or don't use one at all)

いずれにしても、アクセスを許可する場合の一番確実な方法は①の何も設置しないことです。

sitemap付きの「robots.txt」

また、sitemapの場所についてもrobots.txtに記載することができます。この場合、②の方法と合わせて、このように記述しているケースが多いです。

ちなみに、この「http://www.example.com/sitemap.xml」の箇所は、あなたのホームページのサイトマップのある場所になります。

ロボットのアクセスを拒否する方法

一方、アクセスを拒否する場合はスラッシュを入れて以下のように記述します。

意味は全てのロボット「*」に対して、全てのページ「/」へのアクセスを許可しない(disallow)という意味です。これは②の許可の方法と似ているため注意しましょう。


ちなみに、robots.txtでアクセスを拒否した場合についてですが、中小の検索エンジンによってはこの記述を完全に無視するクローラーもありますし、そもそも書いてることをちゃんと読んでくれてるのかどうかも怪しいです。

また、Googleなどの大手検索エンジンの場合でもまれに検索結果に表示されたり、インデックスされてしまうことがあり、検索結果にはこのような形で表示されてしまいます。

そのため、robots.txtでの拒否は不確実性があるため、より確実に拒否するには「.haccess」でパスワードを設定して対応するとよいでしょう。

設置する場所はルートディレクトリ

設置する場所はそのドメインやサブドメインの一番上の階層のルートディレクトリになります。

www.example.com/robots.txt

そのため、ディレクトリ下にフォルダ分けで作成している「サブディレクトリタイプ」のサイトの場合、「robots.txt」を設置することはできません。フォルダ分けでのサイトは無料ブログなどで多いですが、ジオシティーズなどの無料ホームページスペースでも設置することができないかと思われます。

http://www.geocities.jp/robots.txt → 設置可能
http://www.geocities.jp/サイト名/robots.txt → NG

http://blog.livedoor.com/robots.txt → 設置可能
http://blog.livedoor.com/ブログ名/robots.txt → NG

NGというか、設置しても意味がないということです。

一方、「サブドメインタイプ」のサイトの場合、普通にルートディレクトリに設置することができます。ただし、なくても特に問題はないため、「robots.txt」を設置できないからといって何かデメリットがあるというわけではありません。

SEO対策上、robots.txtの有無はあまり重要ではない

この「robots.txt」を設置しなくても勝手にクロールされますので、意図的にクローラーのアクセスを拒否をしていない限り、SEO対策上の意味はほとんどありません。

ただし、不必要なページがインデックスされている場合には、そのページへのアクセスを拒否しておくことをおすすめします。

例えば、テストで作成した意味のないページがインデックスされてしまった場合など、質の低いページがインデックスされてしまうとサイト全体にもSEO的な影響が出る可能性があります。

そのようなページへのクロールは拒否しておくとよいでしょう。

特定のページ「example.html」へのアクセスを拒否する場合は以下のように記述します。

また、特定のディレクトリ全体「/example/」を拒否する場合は以下のように記述します。

この場合、その他の拒否していないページについてはクロールされます。

また、「クローラーによるアクセス回数」と「実際の検索エンジン経由のアクセス数」は比例する傾向にあります。そのため、クローラーのアクセス回数が増えれば増えるほど、結果として検索エンジン経由のアクセスアップにもつながるといえます。

何度アクセスしても新しいページがない場合、そのうちクローラーも飽きてやってこなくなってしまうため、定期的に最新情報を追加して更新することをおすすめします。