検索ロボットの制御

検索業者や検索エンジンに「放し飼い」されている検索ロボットの制御タグである。
これには次の2種類がある。
  1. 検索拒否タグ
    ロボットがデータを収集するのを拒否する。

  2. キャッシュ禁止タグ
    ロボットが収集したデータをキャッシュ(アーカイブ)として検索する者に見せることを禁止する。
    データそのものは検索エンジン側に取得されている。
ただし、こういうタグが通用するのは一応大手の由緒正しいと思われているようなロボットだけである。
こういうものがまったく通用しない(考慮しない)ロボットやワーム(当然)も多い。実際の問題はこちらの「ナラズモノ」の方で生じる。


検索拒否/robots.txtを使う

自分のWEBサイトのすべてのファイルの検索を拒否するには以下のような内容をrobots.txtに記述して、index.html(index.htm)のあるディレクトリに置けばよい。
SAMPLE
User-agent: *
Disallow: /

特定のロボットだけを拒否する場合は、「*」の部分にそのロボット名を指定すればよい。
SAMPLE
User-agent: Yeti
Disallow: /

複数個のロボットを拒否する場合は、以下それを列挙していけばよい。
SAMPLE
User-agent: Yeti
Disallow: /

User-agent: ia_archiver
Disallow: /

User-agent: Yahoo-MMCrawler
Disallow: /

これが使える場合はもっとも簡単な方法である。普通の検索ロボットは、まずこのファイル(robots.txt)がトップページのあるディレクトリにあるかどうかを調べて、それがない場合に、サイト内をゴソゴソと嗅ぎ回るようである。ちなみに、当サイトではこの方法を使っている。


検索拒否/metaタグで指定

これは上と違って、各ページ単位で検索拒否を設定するものである。
特定のページを表示させないようにするにはそのページのヘッド部(<head>と</head>の間)に以下のようなタグを挿入する。
SAMPLE
<meta name="robots" content="noindex,nofollow">

こうすれば検索エンジンのインデックス(検索リスト)には出ない。しかし、まともに動作しないバカロボットも多い。また、このタグを守らないチンピラロボットも多い。そういう場合の自衛策は別の方法でしたほうがいいかもしれない。

content部分に記載するパラメータは次の4種類である。
  1. index
    検索データベースへの登録を許可する。こんな指定はなくてもロボットは自動的に登録する。
  2. noindex
    検索データベースへの登録を禁止する。
  3. follow
    このページに含まれるリンクをたどっていくことを許可する。こんな指定はなくてもロボットは自動的にリンクをたどる。
  4. nofollow
    このページに含まれるリンクをたどっていくことを禁止する。
したがって、明示的に記述する必要があるのは「noindex」と「nofollow」である。


キャッシュ禁止/metaタグの指定

データを検索エンジンのキャッシュに残さない方法である。
検索エンジンのリストには表示されるが、キャッシュに残るのを拒否するには、次のタグを各ページの先頭セクションに埋め込む。
SAMPLE
<meta name="robots" content="noarchive"> 

ロボットがバカではなく、正常に動作するものなら、この記述はまあまあ使える方法であるかもしれない。一切表示したくなければ、ファイルを削除すればいいだけだから、機動的に対処できることになる。

しかし、取得したデータをキャッシュとして溜め込み、キャッシュを唯一の商売道具とし(キャッシュを消さない)、しかも巡回ペースが遅いGoogleなどでは、この記述をmetaタグに埋め込んだところで効果が出るのは数年先になるだろう。実際はこの悠長な方法はGoogleにはまったく無意味である。Googleはこんなタグぐらいで消えると思っている「甘ちゃん」たちを見事に手玉にとってたくましく商売をしているのである(笑)。


注意点

検索ロボット拒否タグとキャッシュ(アーカイブ)禁止タグを使う場合はどちらか1つにしなければならない。
両方とも同時につけると動作は保障されないので注意が必要である。

検索拒否タグ

検索ロボット拒否タグの代表的書き方(多少バリエーションがある)。
SAMPLE
<meta name="robots" content="noindex,nofollow">

特定のロボットだけを拒否する場合は、metaタグのname属性の部分にそのロボット名を指定する。ロボットのバージョンは書く必要はない。たとえば、Googleのロボットだけを拒否する場合は次のようにする
SAMPLE
<meta name="GOOGLEBOT" content="noindex,nofollow">

検索ロボット拒否タグをつけていると検索エンジンの検索リストには出ない。したがってキャッシュにも残らない(ことになっている)。


キャッシュ禁止タグ

キャッシュ拒否タグの代表的書き方。
SAMPLE
<meta name="robots" content="noarchive"> 

特定のロボットだけを拒否する場合は、name属性の部分にそのロボット名を指定する。ロボットのバージョンは書く必要はない。たとえば、Googleだけキャッシュ(アーカイブ)を拒否する場合は次のようにする
SAMPLE
<meta name="GOOGLEBOT" content="noarchive"> 

キャッシュ(アーカイブ)禁止タグは、検索エンジンの検索リストには出るがキャッシュには残らない。もっとも、ページのデータ自体は検索エンジンに「溜め込まれ」ているが、検索者側にはキャッシュとして見えない(表示されない)だけのことである。

- 2014/05/01 -