ロボットのアクセスやインデックスを制御するテクニック: 基本のおさらい(前編)
この記事の内容はすべて筆者自身の見解であり(ありそうもないことだが、筆者が催眠状態にある場合を除く)、SEOmozの見解を反映しているとは限らない。
すでにご存知だと思うが、検索エンジンのスパイダーは、ウェブサイトを訪れてインデックス化する際、常に効果的な働きをしてくれるわけではない。各検索エンジンのロボットに任せておくと、複製コンテンツ問題を生み出す、重要なページをジャンクページと見なす、ユーザーが最初に見るべきではないコンテンツをインデックスするなど、さまざまな問題が生じる可能性がある。
ただし、私たちが自由に使えて、ウェブサイト上でのロボットの活動をできるだけ効果的なものにする道具立てはたくさんある。たとえば、次のようなものだ。
- meta robotsタグ
- URL正規化タグ(rel="canonical")
- X-Robots-Tag
- robots.txt
それを踏まえて、この記事では、ロボット制御テクニックどうしの不整合(コンフリクト)を取り上げたい。ウェブマスターたちは時として、自分の狙い通りにインデックス化してもらおうとするあまり、複数のロボット制御テクニックを実装して検索エンジンがあるページにアクセスできないようにすることがある。不運なことに、これらのテクニックは時として互いに対立する場合がある。たとえば、1つのテクニックが別のテクニックの指示を覆い隠す、リンクジュースが失われる、といった具合に。
たとえば、あるページでnoindex指定とURL正規化タグを同時に使った場合、何が起きるだろう? また、robots.txtでdisallow(クロール禁止)にし、同時にメタタグ(meta要素)でnoindexに指定した場合どうだろう?
簡単なおさらいから
コンフリクトについて詳しく見ていく前に、検索ロボットのアクセスを制限する主なテクニックをそれぞれ簡単におさらいしておこう。
meta robotsタグ
meta robotsタグは、検索エンジンのロボットに対してページレベルでさまざまな指示をできるHTMLタグだ。これはHTMLドキュメントのhead要素内に書き込むべきで、こんな感じになる。
<html>
<head>
<title>記事印刷ページ</title>
<meta name="ROBOTS" content="NOINDEX" />
</head>
一般的にサポートされているコマンドとその目的を以下にまとめておく。
コマンド | 説明 |
---|---|
NOINDEX | ページがインデックスされるのを防ぐ |
NOFOLLOW | ロボットがページ上にあるリンクをたどるのを防ぐ |
NOARCHIVE | キャッシュに保存されたページのコピーが検索結果から利用されるのを防ぐ |
NOSNIPPET | 検索結果でページリンクの下に説明が表示されるのを防ぎ、なおかつページのキャッシュ化も防ぐ |
NOODP | Open Directory Project(DMOZ.org)に登録してあるページの説明が検索結果に表示されるのを防ぐ |
NODIR | Yahoo!ディレクトリに登録したタイトルと説明が検索結果に表示されるのを防ぐ |
URL正規化タグ(rel="canonical")
URL正規化タグはページレベルのロボット制御プロトコルで、検索エンジンに対して、どのURLが表示されるべき正規バージョンのページかを伝える。その目的は、複製コンテンツが検索エンジンにインデックス化されるのを防ぐとともに、複数ページの力を1つの「正規」ページに統合させることだ。
タグはHTMLドキュメントのhead要素内に置かれ、次のような感じになる(そのページからの正規化先のURLをhref属性で指定する)。
<link rel="canonical" href="http://example.com/quality-wrenches.htm" />
rel="canonical"は、HTTPヘッダー内で指定することも可能だ。
X-Robots-Tag
グーグルをはじめとする検索エンジンは、クロールやインデックス化の仕方をロボットに知らせる手段として、HTTPヘッダーでX-Robots-Tagを指定する手法を2007年からサポートしている。
HTMLのタグとして記述するのではなく、サーバーとロボットが通信する際のHTTPヘッダーで利用するX-Robots-Tagは、PDFドキュメントのようなHTMLではないメディアのインデックス化を制御するのに非常に役立つ。
たとえば、あるページをインデックスに含めたくない場合は、サーバー側の設定(またはシステム開発)で、次のようなHTTPヘッダーを出力するように指示すればよい。
X-Robots-Tag: noindex
robots.txt
robots.txtは、検索エンジンのロボットによるサイトへのアクセスをある程度制御できる仕組みで、サイトのルートディレクトリに「robots.txt」というファイル名のテキストファイルを置き、そこにロボットに対する指示を記述する。
ただしrobots.txtは、ページがクロールされたりインデックス化されたりしないことを保証するものではない。必要な場合にだけ使うようにすべきで、ビジネスやSEOの観点から確固たる理由がない限り、サイトの一部からロボットを閉め出すべきではない。
私はたいていの場合、robots.txtの代わりにmeta要素のnoindex指定でページのインデックス化を防ぐよう推奨している。
この記事は、前後編の2回に分けてお届けする。後編となる次回は、複数のロボット制御テクニックを使用することでどのようなコンフリクトが生じるのか見てみよう。
ソーシャルもやってます!