というか、ここは旅行系サイトを作成したりメンテしたりする苦労話で埋める場所なので(更新サボってしまいましたが(^^;)、せっかくだから今回行った対策を公開しましょう。
CGIやPHPのようなプログラミングを行う人は、大変おなじみが深い動的ページ。
例えば、やど達者では京都の格安ホテルを常に値段の安い順で表示するように作っている。
http://e-yado.cosmocity.net/kensaku/kakuyasu.php?kncd=26&yt=0
後にあるパラメータの数字を変えると、同じプログラムでも東京や大阪を表示したりできるようになる。kncd=13だと東京、kncd=27だと大阪になる。これが動的ページだ。
宿単位で紹介するページも動的ページで作っている。
なにせ13000軒も登録しているのだから、全部HTMLで作ったらその労力は並み大抵ではない。
なにか変更があったら、そのページを探す方が大変ではなかろうか。さらに、全部HTMLだとそのデータ量も凄まじい。1ページを20KBとすると、13000ページで260MBに達する。これではアップロードも大変だろう。
そんなわけで、大量のデータはデータベースに登録して、それを動的に表示する方が大変効率がよいのである。
しかし、SEO対策となるとどうだろう?
GoogleやYahoo!等では、パラメータも含めてインデックスに入れてくれるようになっている話もちらほら聞くが、人間ですら「この動的ページはどのくらいデータを保有しているのかなぁ」と不安になる事がある。数十件くらいならいいけど、もしかしたら数百、数千とあるかもしれない。ましてや数万件…なら途中で「見るのやーめた」となるのが人情である。
実はGoogle等のクローラーもそういう挙動をしているのだ。動的ページも途中までの何件かは採取するけれど、一定数いくと、そこからやめるのである。
全部クロールして欲しいと思うけど、「そのページはパラメータを使う動的ページだから、もうそれ以上見ないよ」と引き上げてしまうのだ。
それなら、動的ページにしないで、全部静的ページにすればいいのだが、そんな事しようものならこっちの身がもたない。
なんとかならんものかなぁと常々思っていると、実はamazonではそういう解決方法をしていた。amazonは実に巨大なサイトだが、表示するページは全部パラメータ無しの静的なHTMLページである。全部、ひとつずつ作っているのだろうかと思うのだけれども、常識で考えてもそれはありえない。
あんなに膨大なデータを全部HTMLページで作っていたら、いかな高性能なサーバでも処理しきれまい。そう、amazonは、動的ページを静的ページに見せかける技術を施していたのである。SEO対策としても非常に有効で、ここに秘密があったのである。
いったいそれはなんだ?早く教えろ〜!という人、まず落ち着いてね(^^;
それは、「mod_rewrite」を使う方法。Apacheサーバ+「mod_rewrite」の使用が許可されている環境でのみ有効な方法だ。
他のサーバでも使用できるかもしれないが、そんな人は管理者に確認してみましょう。
たとえば、
http://www.example.com/hoge.php?id=3
という動的ページがあったとする。
idには当然パラメータが入る。
こんなケースでは、hoge.phpを置いているディレクトリの.htaccessに次のような記述をする。
RewriteEngine On
RewriteRule ^hoge-([0-9]+).html+ hoge.php?id=$1
するとどうだろう?
http://www.example.com/hoge.php?id=3 で表示されるページは
http://www.example.com/hoge-3.html でも表示されるようになるのだ。
どこから見ても、静的なHTMLページでっしゃろ。
当然、GoogleやYahoo!のクローラーがこのページを見ても、「あぁ、これはhoge-3.htmlか。安心してクロールしよう」と全部クロールしてくれるわけ。
このような書き方で動的ページを静的ページに見せかけることができる。
やど達者でも早速やってみた。
アバンヴェールホテル京都
http://e-yado.cosmocity.net/kensaku2/zenkoku.php?yid=261015
だったところを
http://e-yado.cosmocity.net/kensaku2/yado_261015.html
でも同じページで見られるようにしてみた。
そうなるとと、全部クロールしてもらう為に、全国の登録宿一覧のページも大改修だ(^^;
例えば京都の登録宿一覧。このページは膨大なリンクがつながっているが、それぞれ動的ページへのリンクが入っている。
しかし、このような静的に見せかける対策をした今、リンクは全て静的ページとなった。
人間が見ても「すごい手がかかっているなぁ」と感心するかもしれない(^^;
これで堂々と検索エンジンにクロールして頂き、数ヶ月後に結果が出るようなら、その時にまた報告しましょうか(笑)

