第5回 セッション機能を使ったWebサイトのクローラ対策
[2004/01/07]
セッション機能をご存じでしょうか?これは PHP や JSP 等を使った Web サイトではよく使われている技術だと思います。私が管理しているサイトでセッションを使っている Web サイトがありますが、アクセス毎にセッションを開始していました。そうすると Google 等のクローラがアクセスする毎にセッションが開始され、リンク URL にセッション ID が付与されてしまいました。具体的には下記のような感じです。
1回目 http://www.su-jine.com/sample.php?PHPSESSID=325423*****saga982r
2回目 http://www.su-jine.com/sample.php?PHPSESSID=30sa43*****4370a459
3回目 http://www.su-jine.com/sample.php?PHPSESSID=wehdsa*****23dsfaw8
上記リンクをクローラがアクセスする場合はセッション ID つきの URL になってしまうため、いつまで経っても sample.php の PageRank は 0 でした。ちなみにTOPページはPageRank 5 なのでそこからのリンクは経験上 PageRank 4 位になっても良いはずです。
そこでクローラがアクセスしてきたときにセッション開始をしないようにしました。下記は PHP でのサンプルです。
if (!eregi ("クローラ名", $HTTP_USER_AGENT))
session_start ();
こうするとクローラがアクセスしたときにセッション開始をしないので、セッションIDがURLに付与されません。こうしたところ sample.php は PageRank 5 になりました。
「これってクローキングじゃないの?」と思われる方もいると思いますが、これはクローキングにはあたらないと思います。理由は Googleのガイドラインに下記のように書かれているからです。
技術関連のガイドライン - セッション ID やサイト内のパスを追跡する引数がなくても、サーチ ロボットがサイトをクロールできるようにしてください。これらのテクニックは個々のユーザーの動きを追跡する場合に便利ですが、ロボットがアクセスするパターンとはまったく異なります。これらのテクニックを使用すると、一見異なっているようで実際は同じページにリンクしている URL をロボットが排除できず、そのサイトのインデックスが不完全なものになる可能性があります。
もし、同じようなサイト構成の方で、PHP 等で作成しているページの PageRank があがらないと言う方は試してみて下さい。
|