Moz - SEOとインバウンドマーケティングの実践情報

ロボット排除プロトコル(REP)とは?――メタタグやrobots.txtの基礎

この記事はもともとSEOmozのYOUmozセクションに掲載したものですが、非常に優れているのでこちらのブログに格上げしました。

ロボット排除プロトコル(REP:Robots Exclusion Protocol)というのは、検索ロボットの行動や検索エンジンのクロールやインデックス化を制御する標準的な手続きの総称だ。

名前に「排除」とついてはいるものの、検索インデックスに登録してもらうための仕組みもREPにはある。REPを構成するのは次のものだ。

  1. 1994年に生まれたREPの原型は、robots.txtで使用するクローラへの指示を定義したもので、1997年に拡張された。一部の検索エンジンでは、ワイルドカードを用いたURIパターンのような拡張にも対応している。

  2. 1996年の拡張では、メタタグ(meta要素)を用いたロボット制御で使用するインデクサへの指示(REPタグ)が定義された。なお、検索エンジンでは、HTTPヘッダーX-Robots-Tagを用いたロボット制御にも対応しており、PDF形式のドキュメントや画像など、HTML以外のリソースでも、HTTPヘッダーでREPを適用できるようになった。

    ※Web担編注 HTTPヘッダー

    HTTPヘッダーとは、ウェブサーバーがウェブブラウザなどのクライアントに対してデータを送る前に送信する情報のことで、通常はブラウザには表示されない。

    多くの場合、HTTPレスポンスコード、コンテンツの種類(HTMLなのかPDFなのかなど)、コンテンツのサイズ、最終更新日付などの情報が含まれている。

    HTTPヘッダーの内容は基本的にHTMLページの記述などでは変更できず、サーバーの設定や出力プログラムの設定によって変更できる。ただし、HTMLページ内の「meta http-equiv」のタグによって、HTTPヘッダーで指定する情報を記述でき、ほとんどのウェブブラウザがmeta http-equivの情報を解釈する。

  3. そして2005年に登場したサイトマッププロトコルでは、(XML)サイトマップを通じて大量のコンテンツを検索エンジンに登録する手続きが定義されている。

  4. また2005年には「rel="nofollow"」というマイクロフォーマットも加わった。これはリンクタグ(a要素)rel属性に「nofollow」という値を指定した場合、検索エンジンはそのリンク先をクロールしないというもので、「リンクコンドーム」とも呼ばれる。

重要なのは、「クローラへの指示」と「インデクサへの指示」との違いを理解しておくことだ。

クローラはコンテンツのインデックス化どころか、評価も行わない。クローラの役目はウェブサーバーからファイルやスクリプトの出力を取り出し、データプールに蓄えることだ。

インデクサは、クローラが取得してきたデータを使用して検索インデックスを作成する。

クローラへの指示(robots.txtおよびサイトマップ)は、クロールすべきサイトと、してはいけないサイトをクローラに指示するものだ。この指示は、すべての大手検索エンジンに対して有効だが、検索エンジンによって解釈が微妙に異なっており、独自の文法をサポートしている場合もある。クローラへの指示を与えることで、通常ならクローラが情報収集できないコンテンツでもインデックス化させ、検索結果に表示させることが可能になる。この場合、コンテンツのタイトルや説明には他サイトの参照から拾い出したものを用いることが多い。

インデクサに対する指示(REPタグ、マイクロフォーマット)を与えるためには、まずクロールしてもらうことが必要だ。残念なことに、(今の時点では)インデクサに対するサイトレベルの指示というものは存在しない。つまり、検索エンジンがインデクサに対する指示に従うためには、その指示を記述したリソースがクロール可能でなければならいということだ。

一度に複数のURIに関する指示を記述できるrobots.txtとは異なり、インデクサへの指示は各リソース(URI)やHTML要素群のようなページの一部に対してのみ有効だ。つまりインデクサへの指示は、いずれもページやその他のウェブオブジェクトと緊密に結びついており、それぞれ特定のリソース(HTML要素など)の一部ということだ。

検索エンジンのクロール、インデックス化、評価に対応するREPの指示は、それぞれ異なったレベルで定義されているため、検索エンジンは一種のコマンド階層をたどっていく必要がある。

ロボット排除プロトコル(REP)
サイトレベルrobots.txtクローラに対する指示
  • Disallow:(クロール禁止)
  • Allow:(クロール許可)
  • Sitemap:(サイトマップ指定)
XMLサイトマップクローラに対する指示
  • サイトマップ
ページ/URLレベルメタタグ(meta要素)
X-Robots-Tag
インデクサに対する指示
  • index/noindex
  • follow/nofollow
  • noarchive
  • nosnippet
  • noODP/noYDir
  • unavailable_after
ブロック/要素レベルなし
リンクレベルリンクタグrel="nofollow"
©01/2008 sebastians-pamphlets.com

robots.txt

ウェブサーバーのルートディレクトリに置かれ、サイト全体の門番的役割を果たす。言い換えれば、ページのメタタグなどでクロールを許可していても、robots.txtでクロールを禁止しているならば、そのページがクロールされることはない。

通常、検索エンジンは1日に1回robots.txtを読み出し、その内容をキャッシュする。つまり、robots.txtの内容を変更したとしても、それがすぐクローラの行動に反映されるわけではない。

また、サイトマップを登録すると、robots.txtのキャッシュがクリアされてしまうことがある。その場合、検索エンジンは最新のrobots.txtを読み出さなくてはならない。

(XML)サイトマップ

サイトマップは機械的に処理できるURL登録リストで、XMLやプレーンテキストなどさまざまな形式がある。

XMLサイトマップを利用すると、URLごとに異なる指示をクローラに与えたり、サイト内におけるURLの優先度やファイルの最終更新日といった詳細な指示をクローラに与えることが可能だ。XML形式の動画サイトマップを使えば、動画のタイトル、長さ、説明といったメタデータを検索エンジンに与えることができる。

サイトマップで登録しても、robots.txtによってアクセスが規制されている場合、検索エンジンはそのリソースをクロールしない。

REPタグ

REPタグ(メタタグ(meta要素)による「noindex」「nofollow」「unavailable_after」)はURIレベルで作用し、インデクサに作業の指示を出す。検索クエリの実行に関する指示を検索エンジンに与えるREPタグ(「nosnippet」「noarchive」「noodp」)もある。

クローラに対する指示の場合とは異なり、REPタグの解釈は検索エンジンによって異なる。たとえば、あるリソースに

<meta name="robots" content="noindex">

というタグがあった場合、Googleの検索結果表示ページ(SERP)には、そのURLやODPの参照すら表示されないが、Yahoo!やMSNでは、インデックス化が禁止されているURLに対する外部からのリンクがSERP上に表示される場合がある。

また、REPタグはXML/HTMLドキュメント内のメタタグだけでなく、X-Robots-Tagを使ってあらゆるウェブオブジェクトのHTTPヘッダーに付加できるため、メタタグで記述した指示と矛盾する場合、HTTPヘッダーのX-Robots-Tagsの内容を優先するというのが共通認識だ。

マイクロフォーマット

マイクロフォーマットの形で与えられるインデクサへの指示は、各HTML要素に対するページ単位の定義より優先される。たとえば、あるページのX-Robots-Tagで「follow」という指示がある場合(「nofollow」という値はない)でも、そのページ内に「rel="nofollow"」という属性を持つリンクタグがあれば、そちらに軍配が上がる。

robots.txtでインデクサへの指示を出すことはできないが、要求されたリソースにX-Robots-Tagを付加するサイトレベルのサーバーサイドスクリプトを作れば、複数のURIにまとめてインデクサへの指示を設定することは可能だ。ただし、この手法には、プログラム作成スキルに加え、ウェブサーバーとHTTPプロトコルに関する十分な知識が必要だ。

より詳しい情報、記述法の説明、サンプルコード、ヒント、コツなどなど、知りたい方は下記リンクを参照してほしい。

日本語情報
英語情報

Sebastian, 2008年1月15日

この記事が役に立ったらシェア!
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

人気記事トップ10(過去7日間)

今日の用語

LPO
リンクや広告をクリックしてユーザーが最初に着地(ランディング)するページの内容を ...→用語集へ

インフォメーション

RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]