検索エンジンのロボットのアクセスを制御して、特定のページをインデックスさせないようにする手段の一つとして、robots.txtを用いる方法があります。
通常、特にロボットからブロックしたいコンテンツがないときは、robots.txtは不要です。
robots.txtが存在しなければ、すべてのファイルにアクセスしてインデックス(しようと)します。
ところが、robots.txtが存在しないと、Goolgebotにクローリングされず、「サイト全体」がGoogleのインデックスから消えてしまうことがあるという恐ろしい事実がGoogle Groupsのスレッドで、明らかになりました。
ウェブページを閲覧するときは、Internet ExplorerやFirefoxのようなブラウザと、ApacheやIISというウェブサーバーの間でHTTPと規格に従った通信が行われます。
HTTP通信の状態として、HTTP Status Code(HTTPステータスコード)という情報がやりとりされます(詳しくは、こちらを)
存在しないファイルにアクセスしたときは、「404: Not Found」というステータスコードが返されます。
ロボットは、サイトにアクセスしたときにまず最初にrobots.txtを確認するように設計されています。
robots.txtが存在しなければ、サーバーは404エラーを返し、ロボットはそのままクローリングを開始します。
ところが、robots.txtがないにもかかわらず、サーバーが404エラーを返さないで、タイムアウトしたり不適切なリダイレクトを実行したりしていると、ロボットがクローリングできなくなってしまうらしいのです。
Google Groupsのスレッドの投稿者は、導入したシステムが原因でロボットがrobots.txtにアクセスを試みたときに、おかしなリダイレクトが発生していました。
これが、原因でGoogleのインデックスから完全に消滅してしまったのです。
普通に運用していれば、robots.txtがないことでインデックスから消えるということは、まずなさそうですが、気には留めておきたいですね。
存在しないrobots.txtにアクセスしようとしたら、404エラーが返るかどうか確認するにはHTTP Statusを調べるツールを利用するといいでしょう。
どれがいいということは、ないのですが、ググッたらこんなツールがありました。
● HTTP Status Codes Checker
英語です。
日本語で使えるツールがあれば、教えてください。
また、ロリポップやチカッパのようなGMO系のレンタルサーバーでは、存在しないrobots.txtファイルにアクセスすると、なにやら他のレンタルサーバー業者が使っていないような方法でエラーページへ転送するとのことです(404エラーを返さず、302リダイレクトをかけている)。
詳しくはSEO塾さんのこちらのエントリを参照してください。
以下のように記述したrobots.txtをアップしておくという、手もあります。
User-Agent: *
Allow: /
robots.txtは、普通ロボットのアクセスを禁止(Disallow)するために使います。
ですが、すべてのファイルにアクセスしてよいという許可の指示(Allow)を、あえて明示的に与えておくわけですね。
P.S.
この海外SEO情報ブログの読者さんには、初級から上級までいろんなレベルのウェブマスターがいると思います。
今日のエントリは、少し難しめでしたかね?
【追記】
日本語で使えるツールがあれば、教えてください。
読者のjakkさんが、ソッコーで日本語ツールを作ってくれました。
コメントをご覧ください。