Headline About TechLog Download Java VBA Link

May 15, 2007.

検索エンジン対応


結局自作系になってしまいました。既存サービスを利用しなかったのは、殆ど活用していなかったGoogle Adsenceを活用してみたい、ソフトの公開などを自由にやりたいという欲求から。次に利用中のサーバにOpenなCMSや高機能ブログを乗せようと思ったが断念。理由は3点。DBを使わずに済むものが少ない。perlのものが少ない。GUI開発がテキストベースで、機能が多い分自作よりも導入コストが大きい。この憤りをOpenなCMS開発への原動力に!なんてのも良いけど....ねぇ。技術より精神力の壁のほうが高いな。一人でやるなら機能ではなくニッチで勝負か。時間に見合う利益があればやりたいけどねぇ。少なくとも手を出すのが7〜8年遅い。

ってなわけで、一番手の抜ける方法を選択。以前のサイトのデザインを替えただけのサイトを作成しました。ただし、ブログ書くのにhtml叩くのはあほらしいのでそこだけちょっと自動生成のしくみを追加しつつあります。世の中には静的html吐き出し型CMSってのが存在しますが、それと動的版との中間ぐらいです。そこ、両方の良さをスポイルしているとか言わない。本人は既に気づいてますから。

閑話休題。えっとこのサイトはURLが極力".html"になるように構築しています。サイトの自動化を図ってperlのcgiでページを作ると「diary.cgi?date=20070515&xx=yy&..」のようなアドレスになる。で、これはGoogleなどの検索エンジンから無視されがち。掲示板に書き込んだ際なんかに「board.cgi?submit=xxx&name=yy...」となるため、パラメータが多すぎると、そういう掲示板などの同一ページへのアクセスとみなされ、個々のページが検索されなくなるというわけ。同じ掲示板が検索に100回引っかかっても嫌だからね。

で、世の高級CMSはどう回避しているかというと、xxx.htmlというリクエストを、それを処理するモジュールに渡して、それをパラメタとして扱い、処理を行なって結果を返すことで、あたかもCMSサイトがhtmlファイルの集合でできているかのように見せかけているわけです。で、それを真似したいのは山々ですが、自分でサーバを立てない限りそれは無理。

ベタhtmlで構築すれば何も考えなくて良いけど、メニューやカレンダ型リンクなど全頁共通の部品を毎回書いてたら気が狂います。日記のカレンダに書いた日だけ色をつけたりしようものなら、1日書くごとに1か月分更新する羽目になるし。かといってフレームに逃がすのもまずい。なぜなら複雑なフレーム構造のページは、検索からはずされる傾向にあるからです。昔はそうでもありませんでしたが、今のGoogleはかなりフレームによるページの扱いが厳しい。結果、baristaの一つ目のサイトは殆ど検索に引っかからないですから。

で、考えた苦肉の策がSSI(Server Side Include)によるページの構築。もう枯れた技術なんで説明は要らないかもしれませんが、まぁ、JSPみたいに呼び出しタグを書くことでページ内にプログラムの実行結果を出力する仕組みです。で、複数のモジュールを呼び出して、java tilesみたいに画面を組み立てているわけです。その方式で2個目のサイト(英語日記サイト)を構築した結果、見事に全ページが検索に引っかかり、まぁ、まずまずの成果ではないかと。

ただ、SSIは本来「固定ページの中身を差し替える」のに向いている方式。多数のページがあるとhtmlを書いて、そこにSSIのタグを書いて、をページ数分繰り返す羽目になります。で、このサイトはそのSSIを呼び出す親を自動生成するcgiで編集する方式にしました。というかそう構築している最中です。書いている今、表示系はほぼ完成状態。やり方が中途半端なので、静的html吐き出し方式CMSの欠点を一部内包していますが、個人利用なので手を抜いています。つまり、2.0には近づいていません。大きな変化に弱いのです。あんまり書いてるとテコ入れしたくなるので、目を瞑っておきましょう。


名前: 意見: パス:

※パスにはこの日記のタイトルをコピペして下さい。


May, 2007
SUN MON TUS WED TUR FRI SAT
12345
6789101112
13141516171819
20212223242526
2728293031