2016年06月08日
robots.txtとは、検索エンジンに代表されるクローラーを制御するためのテキストファイルのことです。
ただのテキストファイルなので、メモ帳などのテキストエディタで作成することができ、特別なアプリケーションを使う必要はありません。
テキストエディタでrobots.txtを作成したら、ドメインのルートディレクトリ(一番上の階層)にアップロードして公開します。
目次
robots.txtは、主に特定のファイルやディレクトリへのクロールを制限する目的で使用されます。また、サイトマップファイルの格納場所をクローラーに伝える役割も持っています。
検索エンジンのクローラーをrobots.txtでブロックすることで、そのURLを検索結果に表示させないようにすることが可能です。 ただし、そのURLに他のWebサイトからリンクが張られていたり、検索エンジンが重要なURLだと判断している場合には、仮にrobots.txtでクロールをブロックしたとしても、検索結果に表示されてしまう場合があります。
上図のように、robots.txtで指定したとしても完全に検索結果に表示させないようにすることは不可能です。
さらに、robots.txtに書いたクローラーへの指示は強制力を持ったものではありませんので、いわゆる「お行儀の悪いクローラー」の場合はrobots.txtの指示を無視することもあります。
顧客に関する情報など、本当に重要な情報を掲載しているURLを公開しなくてはいけない場合には、robots.txtでクロールを制限するだけでなく、パスワードによる認証やアクセスできるIPアドレスを制限するなどのセキュリティ対策を併用しましょう。
robots.txtを使う上で注意しなくてはいけない点がいくつかありますので解説します。
robots.txtはルートディレクトリに「robots.txt」という名前で公開する必要があり、このファイルは誰でも閲覧することが可能です。
例えば、こちらはGoogleのrobots.txt(https://www.google.co.jp/robots.txt)、こちらはみずほ銀行のrobots.txt(http://www.mizuhobank.co.jp/robots.txt)です。
先ほどご説明した通り、robots.txtにはクロールして欲しくないURL、検索エンジンのクローラーであれば検索結果に表示して欲しくないURLを指定するものですので、「このURLは秘密のURLですよ」と教えているようなものです。
仮にrobots.txtに、Webサイトを管理する画面のURLや重要な情報が掲載されたURLが指定されていたらどうなるでしょうか。 非常に危険なことはお分かり頂けると思います。
先ほども書きましたが、本当に重要なページにはパスワード認証やIP制限など、不正アクセスを防止するセキュリティ対策を万全にしておく必要があります。
noindexタグは、タグを設置したページを検索結果に表示しないようにするためのタグです。検索結果に表示される状態のページにnoindexタグを設置すると、そのページは検索結果に表示されなくなります。
しかし、robots.txtでnoindexタグを設置したURLへのクロールをブロックしてしまうと、検索エンジンはnoindexタグを認識できず、いつまで経っても検索結果に表示される状態が続いてしまいます。
noindexタグを設置したURLを検索結果から消したい場合には、クローラーは自由にアクセスできるようにしておきましょう。
現在のGoogleは、HTMLページに使用されている画像ファイルやスクリプトも一緒に読み込んでページの内容を判断することがあります。
もしそういった場合にGoogleのクローラーが画像などにアクセスできない場合、ページの内容が判断しにくくなってしまう場合がありますので、ページで使用している画像やスクリプトはrobots.txtでブロックしないようにする方がいいでしょう。
robots.txtは非常にシンプルな構造になっています。 「対象としたいクローラーのユーザーエージェントを指定」し、「クロールを拒否したいURLを指定」するだけです。
robots.txtでユーザーエージェントを指定すると、指定されたユーザーエージェントでアクセスしたクローラーが指示の対象になります。
「Google画像検索用のクローラーだけ」、「Bingのクローラーだけ」というように対象となるクローラーを絞り込むことが可能ですが、一般的にはすべてのクローラーを対象にする*(アスタリスク)を指定します。
書式 User-agent:(対象にしたいクローラーを指定)
例文 すべてのクローラーを対象にする場合 User-agent:*
Bingのみを対象にする場合 User-agent:bingbot
代表的なクローラーのユーザーエージェントは、こちらのサイトで確認することができます。(http://www.robotstxt.org/db.html)
クロールを拒否したいURLを「Disallow:」で指定します。ディレクトリを指定した場合には、そのディレクトリ以下の階層のすべてのURLが対象になります。
書式 Disallow:(クロールを拒否したいURLを指定)
例文 dir-01という名前のディレクトリ以下のURLを指定する場合 Disallow: /dir-01/
パターンマッチングも使えますので、特定のディレクトリ内のjpgファイルのみアクセスを拒否するという設定も可能です。
例文 /dir-01/img/内のjpgファイルを指定する場合 Disallow: /dir-01/img/*.jpg$
*(アスタリスク)は1文字以上の文字を表します。上記のように設定した場合、「a.jpg」も「b.jpg」も対象に含まれます。 $(ドル記号)は、末尾のマッチングを表します。上記の場合「.jpg」で終わるURLがすべて対象になります。
また、Googleのクローラーは大文字と小文字を区別しますので、「a.jpg」と「a.JPG」は別のURLとして処理されます。
Disallowを使ってクロールを拒否したURLのうちで、一部のURLはアクセスを許可したいということもあると思います。 その場合には、クロールを許可するURLを「Allow」で指定します。
書式 Allow:(クロールを許可したいURLを指定)
例文 /dir-01/ディレクトリのうち、001.htmlのみクロールを許可したい場合 Disallow: /dir-01/ Allow: /dir-01/001.html
サイトマップファイルのURLをクローラーに伝えるためには、robots.txtに以下のように記述します。
書式 Sitemap:(サイトマップファイルのURLを指定)
例文 Sitemap:http://example.com/sitemap.xml
robots.txtの構文エラーのチェックは、SearchConsoleのrobots.txtテスターを使うと簡単です。robots.txtに書いた内容をコピー&ペーストするだけで構文エラーがないかどうかをチェックしてくれます。
本番サーバーにrobots.txtを公開する前に、構文エラーがないかどうか確認しておきましょう。
ピンポイントで表示!Googleの検索結果に見るキーワードとモノゴトの結びつけ
【最新版】Ahrefsのダッシュボードを解説!※2016年9月更新
ダイバーシティアップデートとは? 概要・特徴や背景と対策を紹介
ページランクとは
どうして!? Twitterのアカウントがロックされてしまう理由と解除方法
迷ったらこうする[漢字/ひらがな編] -「出来る/できる」「事/こと」など
企業向けFacebookページ(ビジネスアカウント)の作成・管理方法
なぜNAVERまとめはサービス終了したのか!?SEO視点で調べてみた
知られざるWordの使い方「スタイル、アウトライン」編