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

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

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

このように、グーグルやbingなどの検索エンジンをはじめ、baiduや海外ヤフーなどさまざまなクローラーがサイトにやってきます。約300程度のクローラーの種類が存在しますが、大半はグーグルやMSNなどからのアクセスになります。

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

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

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

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

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

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

何も設置しない → 一番多い
②Disallowのスラッシュなしで許可する → 一応は正当派?
③allow で明示的に許可する → 少数派?
④空のrobotsファイルを作成 → ??


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

②についてですが、robotstxt.orgによると、こちらのページで、許可する場合の書き方がのっています。一応、これが正式な書き方かと思われます。

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

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

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

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

sitemap付きrobots.txt

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

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

「robots.txt」によるアクセス拒否の仕方

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

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

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

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

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

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的な影響がありますので、そのようなページへのクロールは拒否しておくとよいでしょう。

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

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

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

ただ、過去ログなどの単に重複しているようなページについては、特に拒否しなくても大丈夫かと思われます。

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

何度アクセスしても新しいページがない場合、そのうちクローラーも飽きてやってこなくなってしまいますので、エサをやる感覚で新しいページを定期的に追加していき、サイトの更新頻度を高めることをおすすめします。


ちなみに、robots.txtでアクセスを拒否した場合についてですが、中小の検索エンジンによってはこの記述が無視されるケースもありますし、大手のロボットの場合でもインデックスされてしまうケースがあります。

また、検索結果にはこのような形ではっきり表示されてしまいます。

なので、robots.txtでの拒否はあまり意味ないですので、より確実に拒否するには、.haccessでパスワードを設定するなりするとよいでしょう。