higuchi.com blog

The means justifies the ends

検索エンジンとの付き合い方 [mod_rewriteの術]

[PR] 本ブログの商品紹介リンクには広告が含まれています

blogをサイトの「上のほう」の階層に置くようになってから、Googleをはじめとする検索エンジンのロボットが頻繁に訪れるようになりました。検索エンジンのロボットは更新頻度が少ないサイトにはたまにしか訪問しないようにして動作効率を上げているので、更新が頻繁に行われるサイトにはマメにやってくるのです。
ところが、Google様で検索してみると、このblogのトップページはキャッシュしていて検索の対象になっているのですが、個々の記事のページまでは掘り下げてくれないらしく、インデックスに入っていません。
なぜでしょう。 世の中で広く使われているblogのシステムは、記事ページの生成方法によって大きく2つに分類できます。
記事を書くたびに、その記事を入れた通常のHTMLファイルを生成して、それをサイトの上にそのまま保存する「静的」なシステムと、記事をデータベースや別形式のファイルに保存しておいて、ブラウザで閲覧するたびに、その元ファイルとテンプレートをベースに表示用のHTMLを生成する「動的」なシステムです。
MovableTypeやGreyMatter、それからこれまたちょっと仕組みが違いますがRadio Userlandなどは前者、このサイトで使っているNucleusやpMachineなどは後者にあたります。
このサイトのように動的にページを生成する仕組みは、ページのデザインを変更するときにテンプレートを変更すれば瞬時にすべてのページが変わる(静的なシステムでは、一旦全部のページを生成しなおすプロセスが必要)などといった利点があるのですが、サーバーに負荷がかかるという欠点もあります。
で、その欠点のひとつが、検索エンジンに無視されやすいということです。
できのいい検索エンジンのロボットは、動的に生成されるページを掘り下げて検索対象にしないように設計されています。そうしないと同じページをいろんなURLで検索対象にしてしまってぐるぐるたどり続ける「無限ループ」に入ってしまったりして、自分自身や相手のサーバーに迷惑なことになってしまうからです。
このページのURLをみるとわかるように、Nucleusの場合も、ほとんどのページを同じURL (index.php) の後ろのパラメータを変えるだけで表示し分けているので、Googleのロボットはパラメータのついたページを検索対象にしてくれません。
せっかく知のネットワークにつながっているblogなのにこれではつまりませんから、これを回避する方法はないかと思ったら、ちゃんとNucleusのマニュアルに載っていました。
これです。
Apacheに標準でついている、特定のURLを別のURLに読み替えて表示対象のページを引っ張ってくるmod_rewriteというモジュールを使って、全部のページに「なんとか.html」という別名をつけるという仕掛けです。
というわけで、このサイトにもこの仕掛けを加えました。Apacheでmod_rewriteが使えることを確認して、.htaccessでarchive-nn-yyyy-mm.htmlというURLをindex.php?archive=yyyy-mm&blogid=nnと読み替えるように指定します。
あとは、トップページにあるアーカイブページへのリンクや、アーカイブページにある月の一覧からのリンクが、この別名URLへのリンクになるようにテンプレートやスキンを書き換えると、見た目はアーカイブがすべて静的なHTMLファイルだけでできているかのようになります。
あとは、次回のGooglebot様のご来臨を待つだけです。
さて、検索結果にどのぐらい影響するでしょう……。

コメント

樋口 理さんのコメント:

mod_rewriteを有効にしているディレクトリではFrontPage Extensionが使えなくなることがわかりました(FrontPage Extension を使っています。だって便利なんだもの)。
そこで、/blogというサブディレクトリを作って、その中だけRewrite Engineを使うように変更しました。
今は/blog/archive-nn-yyyy-mm.htmlを/index.php?archive=yyyy-mm&blogid=nnに読み替えています。
2002/10/22 23:49

樋口 理さんのコメント:

Nucleus 2.0 からの新機能でFancy URLという機能が付きました。
上のようなワザを自分で施さなくても、従来 .../index.php?itemid=1234 と表記されていた URL へのリンクを、全部 .../item/1234 という形式に書き換えて表示してくれる機能で、mod_rewrite と組み合わせて使うことで、検索エンジンからのロボットがより確実に巡回してくれるようになります。

Nucleus 2.0 の概要は http://www.nucleuscms.org/i...
2003/7/16 01:12

Tatsuya-SOGAさんのコメント:

Fancy URLを使ってみました。
これでGoogleのボットも読み込んでくれるみたいですね。英語のドキュメントはしっかりしてて助かります。
2003/7/29 17:50

さんのコメント:

勉強になりました。
有難うございました。
2004/10/17 23:05

コメントを書く

このアイテムは閲覧専用です。コメントの投稿、投票はできません。

関連するかもしれない記事

もったいない [Google Mobile Gateway を排除するサービス]

Google Mobile Gateway っていうサービス、ご存じですか? PC ブラウザ用の大きなページを、携帯電話...

この記事を読む »

First come, ever served [Google Adsenseの基本特許]

このブログに検索エンジン経由でやってきたときの検索キーワードを表示するプラグインを試しているとき...

この記事を読む »

寄ってらっしゃい [Google Sitemaps]

このところ、Yahoo!の新検索エンジンであるYSTのクローラー(インターネット上のページをリンク伝いに読...

この記事を読む »

将軍様はミリタリーおたく? [金正日のジャンパー]

将軍様はミリタリーおたく? [金正日のジャンパー]

写真は本文と関係ありませんってば  とある方から...

この記事を読む »

If you build it, he will come. [フィールド・オブ・ドリームズ症候群]

フィールド・オブ・ドリームズという映画があります。 ケヴィン・コスナー扮するアイオワかどこかの...

この記事を読む »

Yahoo!リニューアル記念緊急リリース [NP_SearchedPhrase]

リニューアルしたYahoo!の検索エンジンであるYSTからのトラフィックを調べていて、気がつきました。 ...

この記事を読む »

いっそ、入試を「ネット持ち込み可」にしちゃえば? [教育事情と入試について思うこと]

以前に何度か話題にしたことがありますが、このブログの周年イベントで『秋の修理再生業祭り』というの...

この記事を読む »

輪廻転生 [LUNARRとPLATO Notes]

とある筋からLUNARRのアルファ版へのご招待をいただいたので試してみています。 LUNARRってどんなも...

この記事を読む »

探し物はなんですか その2 [検索キーワードプラグイン]

以前に書いたとおり、検索サイト経由でどこかのページにたどり着いた場合、たどり着いた先のページがあ...

この記事を読む »

Belkin TuneBase

かくも長き不在 [iPodとカーステレオ、その後 - Belkin TuneBase]

えー、長らくご無沙汰をしておりましたが、またのこのこと出て参りました。 しばらくブログの更...

この記事を読む »