ロボットのアクセスやインデックス化を制御するテクニック:コンフリクトの回避(後編)
この記事は、前後編の2回に分けてお届けしている。ロボット制御テクニックについて簡単におさらいした前編に続き、今回は、複数のロボット制御テクニックを併用した場合に生じる問題について説明する。(前編を読む)
コンフリクトを回避する
検索ロボットのアクセスを制御する手法のうち、次のいずれかのうち2つ以上を同時に使うのはやめた方がいい(つまり以下のどれか1つを使うべきだ)。
- meta robotsタグの「noindex」指定
- URL正規化タグ(rel="canonical"、異なるURLを指している場合)
- robots.txtファイルのdisallow指定
- X-Robots-Tag
「検索結果にページを表示させたくない」という気持ちがどれだけ強かろうと、2つの対策を組み合わせるより1つだけのほうが常にうまくいく。では、あるURLに対して、検索ロボットのアクセスを制御するテクニックをさまざまに組み合わせた場合、何が起きるかを見てみよう。
meta robotsタグの「noindex」指定と
URL正規化タグを併用した場合
あるURLのリンクの力を別のURLにまとめることが目標で、もっと自在に使いこなせる「301リダイレクト」という手段を使えない場合は、URL正規化タグ一本に絞るといい。
くれぐれも、ここでURL正規化タグとmeta robotsタグの「noindex」指定を併用して墓穴を掘るようなことがあってはならない。もし両方のボット制御テクニックを併用してしまうと、恐らく検索エンジンはURL正規化タグをまったく認識してくれなくなってしまうだろう。
meta robotsタグで「noindex」を指定すると、URL正規化タグは確実に見てもらえなくなるので、URL正規化タグによるリンクの力の再配置という恩恵は受けられなくなってしまう。ご注意!
meta robotsタグの「noindex」指定と
X-Robots-Tagの「noindex」指定を併用した場合
これらのタグは同じ役割を果たすものだ。だから同じページに両方のタグを配置したからといって、SEOに直接ダメージを与えるような事例は確認していない。
とはいえ、HTMLの<head>部分を変更してmeta robotsタグの「noindex」指定を使えるのなら、わざわざX-Robots-Tagは使わずにおくのがいいだろう。
robots.txtファイルの「disallow」指定と
meta robotsタグの「noindex」指定を併用した場合
これはもっとも一般的に見受けられるコンフリクトだ。
私がmeta robotsタグの「noindex」指定を気に入っているのは、ページを効率よくインデックスから外せるし、それでいて、インデックス化されていないページが持つ価値を、そこからリンクされているより深層のコンテンツにちゃんと渡してくれるからだ。これはいいことづくめで、リンクの価値が失われることもない。
ところが、robots.txtファイルでdisallow指定してしまうと、検索エンジンはページ上の(高い価値を持つ可能性もあるサイト内リンクも含めて)すべてが見られなくなってしまうが、ページのURLをインデックスから外すことはしない。百害あって一利なしだではないだろうか? 以前、この話題だけについて論じた記事を投稿したことがある。
もし両方の指定が存在していると、robots.txtファイルのせいでmeta robotsタグの「noindex」指定はまったく見えなくなってしまう。つまり、robots.txtファイルのdisallow指定の効果は得られるが、meta robotsタグの「noindex」指定が持つ利点はすべて失われてしまうことになる。
この2つの指示を同時に設定した場合に何か起きるのか、以下に簡単な事例を示そう。
下のスクリーンショットは、robots.txtファイルでdisallow指定され、同時にmeta robotsタグで「noindex」に設定されているページが、グーグルの検索結果表示でどう表示されるかを示している。そもそもこのページがグーグルのインデックスに入っていることからして、問題が生じていることがうかがわれる。
このページは、meta robotsタグで「noindex」に指定されているため、インデックスされないはずだ。しかし困ったことに、robots.txtで「disallow」してされているため検索エンジンはこのページのHTMLをクロールできず、「noindex」指定されていることがわからない。
これを見ると、サブドメインのすべてがrobots.txtファイルでdisallow指定されていて、有用なmeta robotsタグ「noindex」がまったく見えていないことがわかる。
もしmail2web.comが本気で自社サイトをいっさい検索エンジンに表示させたくないと思っているのなら、meta robotsタグの「noindex」指定だけを使うのが賢明だろう。
URL正規化タグと
X-Robots-Tagの「noindex」指定を併用した場合
もし文書内の<head>要素を変更できるのなら、そもそもX-Robots-Tagはアクセスを制限する最適な方法ではないはずだ。X-Robots-Tagは、PDFやJPEGといったHTMLではないファイルタイプに使うのが望ましい手法だからだ。
これら2つを同時に設定した場合、検索エンジンがURL正規化タグを無視してしまい、リンク価値を望みどおりに再配置することはできない。
ページにURL正規化タグを追加できるなら、X-Robots-Tagを使うべきではない。
URL正規化タグと
robots.txtファイルの「disallow」指定を併用した場合
あるページをrobots.txtファイルでdisallow指定すると、検索エンジンのクローラーはそのページのHTMLを取得しないので、URL正規化タグが書かれていることすらわからない。そのため、意図した正規化先のURLにリンクジュースが渡されることもない。
残念ながら、この組み合わせも百害あって一利なしだ。
X-Robots-Tagの「noindex」と
robots.txtファイルの「disallow」指定を併用した場合
X-Robots-TagはHTTPレスポンスヘッダー内にあるので、これら2つを併用すると、2つが混じり合って両方とも検索エンジンから見えるだろう。ただし、記述は重複し、robots.txtファイルの指定によって、ページ内のリンクは見てもらえなくなってしまう。この組み合わせもよい考えではない。
ちなみに、ここで紹介するために、robots.txtファイルでdisallow指定され、かつX-Robots-Tag「noindex」指定されたPDFファイルを探したのだが、残念ながら収穫はなかった。一晩中探してみたものの、この記事の締め切りに間に合わなかった。
もし興味があれば、次のような手順で探してみるといいだろう。
- この簡単な検索クエリを使って、PDFのディレクトリかファイルが登録されたrobots.txtファイルを見つける。
- HTTPリーダーを起動する。私が使っているのはHTTPfoxだ。
- robots.txtファイルでdisallowされたPDFファイルを呼び出し、X-Robots-Tagが「noindex」になっているかどうかHTTPレスポンスヘッダーをチェックする。
ここで説明してきたコンセプトは、かなり分かりやすいものだ。ロボット制御テクニックを使うときは、調子に乗ってやり過ぎないように。シナリオにあった最良の方法を1つだけ選んで、余計な手は出さないこと。過ぎたるは及ばざるがごとし、だ。
それでは、よい最適化を!
ソーシャルもやってます!