URLの擬似静的化で動的サイトをインデックスさせるには
スキルセットや共通言語が異なる
エンジニアとWeb担当者をつなぐための手引書
前回の記事では、URLの正規化ができていない実例をその対処法とともに示しました。URLの最適化シリーズ、3つ目のポイントは「URLの静的化」です。また、これまで解説してきたURL最適化のためのさまざまな取り組みにも関係してくる、Apacheの主要なモジュールである「mod_rewrite」の記述方法も併せて解説していきます。
- エンジニアさんへ
検索エンジンに対するクローラビリティが重要なのはこれまで述べてきたとおりです。クローラビリティ向上ためのURLの静的化を怠ってはいけません。今回の記事の対象者 - Web担当者さんへ
今回は技術的な説明が多く、実際に設定ファイルを操作できない場合もあるかと思います。リダイレクト関連の設定は一歩間違えると致命傷です。場合によっては、対策が必要かどうかの検討が必要になるでしょう。
動的URL、静的URLとは何か
URLには大きく分けて、動的URLと静的URLの2種類があります。
- 動的URL(ダイナミックURL)の例:
http://www.example.com/dir1/file.html?query1=param1 - 静的URL(スタティックURL)の例:
http://www.example.com/dir1/file/query1/param1/
その違いは、URL中に「?」「=」「&」などのパラメータが含まれているかどうかです。
SEOの世界では、コンテンツが動的に生成されるケース、つまり特定の条件に対するページが単一のHTMLファイルで用意されておらず、その都度データベースを参照して新たなページを生成している場合などであっても、URLにパラメータを含んでいなければ静的なURLとみなされます。もちろん、静的なURLであれば通常のインデックスに支障をきたすことはありません。
参考:動的URLとみなされるURL(Yahoo! サイトエクスプローラーヘルプ)
参考:動的URL VS 静的URL――SEO的には、やはり静的URLに軍配(SEOmoz)
検索エンジン側での動的なURLの取り扱い
上記をふまえて、検索エンジンに対する動的URL、静的URLの取り扱いを解説していくことにしましょう。SEOにおける動的URLの相性については、よく質問や議論になるポイントの1つです。最近では、検索エンジン側でも動的URLを処理するツールを公開しています。
サイトエクスプローラーの管理サイトに自分のサイトを登録すると、左側の「管理サイト詳細」に「動的URL設定」というメニューが表示されます。この設定を利用することで、検索エンジン(Yahoo!)に対して不要なクエリパラメータ(セッションID「jsessionid」など)を非表示に指定できます。また、そのクエリのパラメータを固定化することも可能です。
ただし、動的URLの設定はすべてのサイトに必要な操作ではありません。Yahoo! 検索のヘルプに詳しいので設定の際には一度ご確認ください。
一方、Googleの場合、動的URLと静的URLについて以下のようにまとめています。また、動的URLをどのように静的URLにすればよいかというサンプルも掲載されています。
- 動的URLもちゃんとクロールする(できるようになっている)
- 静的URLが多少有利なのは、エンドユーザーに対する可読性が高いから
- すでに動的URLでサイトを構成している場合は、無理に変更しなくてもよい(変更すると失敗する可能性があるから)
上記のようにYahoo! やGoogleでは動的URLに対して、「努力」してクローリングを行おうとしていることが理解できると思います。しかし、セッションIDのようなパラメータがURLに付加されてしまうと、検索エンジンがサイトをクロールするたびに異なるセッションIDを持つ同じページがたくさんクロール(クローラートラップ)されてしまいます。またURLにパラメータが多くなると、クローラー側の負荷が増大することなどを理由に、インデックスされないことがあります。
エンジニアなら積極的に疑似静的化を
では、この動的URL、静的URLの問題に対してエンジニアはどのように取り組めばいいのでしょうか。
Googleの説明にもあるように、確かにURLの擬似静的化(動的URLを静的URLへの変換すること)は技術要素が多いため、一般的なWeb担当者にとってはハードルが高いように思われます。しかし、技術者にとってみれば実にシンプルな要件ではないでしょうか。「動的URLのパラメータが1つくらいなら対策は必要ないだろう」と検索エンジン側の解析技術に依存せず、きっちり疑似静的化をしていきましょう。
Webサイトを何かのシステムで生成している場合、その多くはPHPやJava、ASPなどのプログラムで作成されているはずです。動的に生成されたURLを擬似的に静的なURLにしていくには、Apacheの場合は「mod_rewrite」、IISの場合は「ISAPI_Rewrite」というモジュールを使用するのが一般的です。
ソーシャルもやってます!