ユーザ用ツール

ロボットはじき

ここのようなマイナーなサイトでも、ロボットはどんどんやってきます。いや、むしろマイナーだからこそロボットのアクセスが妙に目立ったりします。

検索エンジンに引っかかること自体は悪いことではありません。検索サイトからここへいらっしゃる方も少なからずいらっしゃいます。役立つ情報があるのなら、それを役立ててもらうのは喜ばしいことです。

ただ、たとえば、予定表のようなものの内容は、検索サイトに拾ってほしくないし、拾われるべきものではありません。

このような、特定の部分をはじくための指示について書きます。

&aname(robots_txt);robot**s**.txtを用いる方法

robots.txt 1)に拒否する、或いは許可する名前2)を記述します。

User-agent: Googlebot
Disallow /piCal/
User-agent: Slurp
Disallow: /piCal/

のようにUser-agent単位で拒否(或いは許可)を列記します。User-agent: * とすれば、すべてのロボットに対して要求することになります。

なお、許可の与え方は、場合によっては思わぬ副作用を持ちます。Googlebotの場合などは、Allow: のみがある場合には、Allowされているディレクトリしかスキャンしなくなるそうです。AllowはDisallowしたディレクトリの配下に部分的に許可したいものがある場合などにとどめるべきでしょう。

なお、robots.txtは、強制力を持つものではありません。ロボットがコレを読んでも無視するかもしれませんし、或いはそもそも読まないかもしれません。

なお、robot.txtではなくrobots.txtであることにも注意してください。

&aname(meta);metaタグを用いる方法

robots.txtはドキュメントルートに置く必要があるため、プロバイダに間借りしているページなどの場合設置ができません。そんなときには、ページ内に、metaタグを置くことでほぼ同等の指示ができます。ただしこれはそのタグを含むページおよび、そこに含まれるリンクに対してのみ作用するので、直接metaを含まないファイルへアクセスされた場合には無力ですし、robots.txt同様に無視するロボットもいるという弱点があります。

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

と書いておけば、そのページはインデックスしないように、また内部のリンクをたどることもしないようにという指示になります。

<meta name="robots" content="index,nofollow">

と書けばそのページはインデックスしていいけれど、リンク先は見ないようにという指示になります。

<META NAME="GOOGLEBOT" CONTENT="NOARCHIVE"> 

のようにするとGooglebotに対して、キャッシュしないようにという指示になります。問題のあるコンテンツを削除したのに、Googleのキャッシュに残ってしまって笑い物になったなどということがおきないようにできます。 (name=“robots”にすればすべてのロボットに対する要求になります。)

&aname(mod_rewrite);mod_rewriteを用いる方法

robots.txtやmetaタグではじけない悪質ロボットに対抗する効果的な方法ですが、apache + mod_rewrite という構成でしか利用できません。しかし、いずれも広く用いられているのでほとんどの場合に使えると思います。

ロボットをはじきたいディレクトリの.htaccessに次のような設定を追加します。

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} NaverBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} msnbot [NC]
RewriteRule ^.*$ - [F,L]

これは、User-agentが NaverBot(大文字小文字は無視)か、GoogleBot(大文字小文字を区別して合致する場合)であれば、そのディレクトリ内のあらゆるリソースへのアクセスを、失敗(F)にします。

robots.txtを読むがその指示に従わないNavorBotなどをはじくのに有効です。

おまけ: 行儀の悪いロボット(当サイトを襲ったものについて)

以下に、robots.txtを無視して、勝手に勝手なものを漁っていったロボットを書いておきます。この種の情報は、既にあちこちにありますので、余分かもしれませんが、参考と、自分への覚書として。

  • NaverBot

大変に評判の悪いロボットです。噂どおりrobots.txtを読んでいるのに、その内容は無視です。あるいはうがった見方をすれば、その内容こそが重要な情報のありかとばかりにアクセスに来ている可能性もあります。mod_rewirteでアクセスをとめました。

  • msnbot

これも、robots.txtを読んでいるのに、内容は無視していますね。やりたい放題はマイクロソフトの面目躍如といったところでしょうか? :-( 同じく mod_rewiteで禁止しておきました。

  • lwp-trivial

某ソーシャルサイト系のロボットという噂もありますが、こいつはrobots.txtをまったく読んでいません。今のところそれほど頻繁にアクセスしていないし、ロボットにさらってほしくないところにはアクセスしていないので、様子を見ていますが、おかしなことをしだしたら、mod_rewrite送り決定です。

Tipsへ戻る

1)
http://サイト/robots.txtのように必ずドキュメントルートに置く。
2)
一般にはディレクトリ名

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

More information