検索エンジンのロボット訪問回数を知る
いつもお使いの検索エンジンは、日々巡回するロボット(正確にはクローラー)が、ホームページの情報を集めていることはご存知かと思います。
googleはもちろんですが、ディレクトリ検索で有名なYahoo!もYSTというロボット型検索エンジンを補助的に使っています。

クローラーはリンクを辿ってやってきますが、最初にサイトに訪れたとき、ドキュメントルート(Webサーバの最上位ディレクトリ)のrobots.txtを必ず参照します。robots.txtファイルには、下記のように書かれています。



robots.txtの中身

 User-Agent: *
 Disallow: /cgi-bin/


robots.txtファイルには、インデックスして欲しくないファイルがあるディレクトリを記述します。
上記の例ですと、すべてのクローラーを対象に、/cgi-bin/下のファイルは情報を取得して欲しくないという意味になります。

User-Agent:は個別のクローラーの名前を書くこともできますので、例えば、下記のように記述すると、googleのみこのサイトの情報は読んで欲しくないという設定になります。

robots.txtの中身

 User-Agent: Googlebot
 Disallow: /


こんな設定は普通しませんよね。(笑)


さて、robots.txtの記述で、気をつけないといけないのは、すべてのクローラーがrobots.txtの記述を守るわけではないということです。
下 手にディレクトリ名を記述してしまったことで、情報取得されたくないファイルの場所を教えてしまうことになる可能性もあるので、その点を考慮しなくてはな りません。 私の場合、情報取得されたくないファイルリンクをすべてカットし、ディレクトリ内容の一覧の表示を拒否及び、存在しないディレクトリをアクセ スされた場合、すべて別ページに転送するようにしてrobots.txtへの記述は最小限にとどめています。 
経験的にはこの方法が、一番リスクが少ないように感じています。


話は変わりますが、クローラーがどれだけ訪問されているか確認されたことがありますでしょうか? クローラーのアクセス回数は、Webサーバが出力する、生ログを検索すれば簡単にカウントすることができます。

サーバにシェルでログインできる方であれば、例えば下記のコマンドでYahoo!のクローラーをカウントできます。

# grep 'robots.txt' access.log | egrep "Yahoo! Slurp"  | cut -d ' ' -f 4 | tr -d [ | perl -pe 's/:.*//' | uniq -c


上記スクリプトを実行すると、日別にYahoo!クローラーをカウントします。

一覧を表示したいだけであれば、grepコマンド だけでも十分ですね。

# grep 'robots.txt' access.log


また、生ログのファイル(access.log)をパソコンにダウンロードすれば、もっと集計が楽になりますので、是非確かめてみてください。

このサイトでもクローラーの訪問頻度を監視していますが、ページの更新頻度に準じて、かなり敏感に反応するのが分かっています。
毎日更新しているときはのYahoo!クローラーの訪問頻度は、30回/日程度ありますが、更新を止めると、2日後には1/2、3日後には1/4といった感じで、1/2の累乗倍で訪問回数が減ることが分かります。

ク ローラーの訪問回数が、検索エンジンのランキングに直接的に影響するわけではありませんが、更新されているホームページはロボットであっても意識している ことがはっきりしています。このサイトでも、日を空けて更新するよりも毎日更新しているときの方が、インデックス化されるのが早いような感じがします。

みなさんのサイトでもクローラーがどれくらいの頻度で訪れているのか、是非確認してみて下さい。
クローラーの訪問を確認するようになると、「やはり日々更新しないと...。」と再認識できるが大変面白いところです。