SEO対策をしていると、ユーザーのためには必要だけど、検索エンジンにはインデックスしたくないページも出てくると思います。
そんなときに必要なのが、robot.txt(ロボットテキスト)によるクローラーの制御です。
今回は、SEO対策をしていくうえで、理解しておきたいrobot.txt(ロボットテキスト)の書き方、使い方をご紹介します。
今回勉強する単語は「robot.txt」です。
<登場人物>
小谷れお[16卒内定者]
新人Webマーケター。16卒の内定者インターン。
入社と同時にぶっちぎりの成果を上げるために、Webマーケティング、主にSEO、コンテンツマーケティングについて勉強している。
桑原一聖
Webアナリスト。多くのクライアントサイトのアクセス解析、改善施策立案から実装までを担当している。
目次
robot.txtとは何か?
このファイルを用意することで、クロールが必要なページのクロール頻度を上げることができます。
なぜrobot.txtが必要なのか?
robot.txtの役割は大きく2つ。
ひとつ目は、クロールが不要なページとクロールしてほしいページを指定して、無駄なクロールが発生しないように制御するため。
ふたつ目はsitemap.xmlの場所をクローラーに知らせるためです。
まず前提として、クローラーは1回の訪問でサイト内の全てのページをクロールしているわけではありません。
クローラーが1回の訪問でクロールするページ数(クロールバジェット)は、サイトのオーソリティによって変動していて、そのクロールバジェットよりもページ数が多いサイトは、1回の訪問で全てのページがクロールされません。
そうなると、検索エンジンにインデックスされるのが遅くなってしまったり、古い情報のまま更新されなかったりという事態に陥る可能性が高まります。このような状態になるのを防ぐために、robots.txtでクローラーを制御するんです。
robot.txtの書き方
その4つの要素を簡単に説明すると以下のようになります。
1.User-agent
※全てのクローラーを制御したい場合は「*」と指定
2.Disallow
※「/」でサイト全体、「/example/」でexampleディレクトリ以下全てのページを指定できる
「/*.jpg$」で全てのjpgファイルに対した指定も可能
3.Allow
※基本的に全てのディレクトリ・ページはブロックされていないので、使用する機会は少ない
「Disallow」と同様にディレクトリ・ページの指定が可能
4.Sitemap
※URLは絶対パスで指定する
robot.txtの書き方例【目的別】
特定ディレクトリのクロールを拒否する
▼すべてのクローラーを対象に、「detail」ディレクトリ以下のページのクロールをブロックしたい
User-agent: * Disallow: /detail/ Sitemap: http://example.co.jp/sitemap.xml
特定のクローラーだけ、特定のURLのクロールをブロック
▼Googleのクローラーだけ「http://example.co.jp/item/01.html」へのクロールをブロックしたい
User-agent: Googlebot Disallow: /item/01.html Sitemap: http://example.co.jp/sitemap.xml
特定のパラメータがついているページのクロールをブロック
▼「type=none」のパラメータがついているページだけクロールをブロックしたい
User-agent: * Disallow: /*?type=none Sitemap: http://example.co.jp/sitemap.xml
特定のディレクトリのクロールをブロックしつつ、同ディレクトリ内の一部のURLはクロールさせたい
▼「/detail/02.html」以外の「detail」ディレクトリへのクロールをブロックしたい
User-agent: * Disallow: /detail/ Allow: /detail/02.html Sitemap: http://example.co.jp/sitemap.xml
クローラー別にクロールをブロックする部分を指定
▼全てのクローラーに対して「/detail/」ディレクトリへのクロールをブロック、Googleクローラーには「item」ディレクトリへのクロールもブロックしたい
User-agent: Googlebot Disallow: /item/ User-agent: * Disallow: /detail/ Sitemap: http://example.co.jp/sitemap.xml
robot.txtが正しく書けているか確かめる方法
ブロックするURLの指定を間違えて、ページがインデックスされなくなったら、サイトの集客に大きな影響を与える可能性もあるので、慎重に作成しましょう。
作成したrobots.txtに不備がないかを確認するときには「robots.txt テスター」というツールがよく使われます。このツールはGoogleサーチコンソールの機能のひとつです。サイトにアップしているrobots.txtの構文チェックをしてくれますが、サイトにアップする前でもチェック機能が使えます。作成したrobots.txtの内容を該当欄に貼り付け、「テストボタン」をクリックすることで、貼り付けたrobots.txtの構文チェックが可能です。
テスターの結果を確認しながらrobots.txtを修正しましょう。
robot.txtを扱う上での注意点
- metaによるクローラー制御と併用できないこと
- 必ずルートディレクトリにアップすること
1.robot.txtとmetaによるクローラー制御は併用できない
metaによるクローラー制御と併用ができない理由を簡単に説明しますね。
例えば、既にインデックスされたページをインデックスから削除するためにmetaで「noindex」に指定して、robots.txtでさらにそのページへのクロールをブロックした場合、そのページにクローラーが訪問しないため、ページ内に記載した「noindex」の指定がクローラーに伝わらず、いつまでもインデックスから削除されないという事態になる可能性があります。
そういった場合は、まずで「noindex」を指定し、インデックスから削除されたタイミングでrobots.txtでクローラーがこれ以上訪問しないように設定するなどの対応が必要になるので、併用はできないということになります。
2.robot.txtは必ずルートディレクトリにアップする
robots.txtをルートディレクトリにアップしなければならない理由についてはシンプルで、ルートディレクトリにアップしないとrobots.txtによる制御が動作しないからです。
