パンプキンスパイスラテ

IT系のことが多めの日記帳です

動的URLを静的URLに偽装する場合に、ちょっとした工夫で効果的なSEO対策ができる方法

※検証はしていませんが、理論的には効果があると思います。意見求ム。

動的URLはSEO的に不利である

よく言われますよね。最近は動的URLであってもあまり影響がないという意見もちらほら目にしますが、それでも静的URLのほうが少なからず有利であることは間違いないと思います。スパムサイトは動的URLのページが多いですし。そこで取られる対策として、動的URLを静的URLに偽装するというもの。

mod_rewriteで動的URLを静的URLに偽装

Apacheの場合は、mod_rewriteで動的URLを静的URLに偽装することになると思います。そうすると、

http://www.example.com?category=products&id=1000

という動的URLを、

http://www.example.com/products/1000
または
http://www.example.com/products/1000.html

という静的URLに偽装することができます。普通はこれで終わりですが、もうちょっと踏み込んで考えてみます。

深い階層構造はSEOに不利である

4.ディレクトリの階層はなるべく浅くする

こちらも「Google's SEO Starter Guide」の「URL構造の良い習慣」の中の「シンプルなディレクトリ構造」(8ページ目)に記載されています。

「.../dir1/dir2/dir3/dir4/dir5/dir6/page.html」のような、深い階層構造を持つのは避けるべき

われわれのコンサルティングのお客様で、深いディレクトリ構造のURLを採用していたために、インデックス状況や掲載順位が芳しくないサイトがありました。これらを浅いディレクトリ構造のURLに改修した途端にインデックスされたという実績があります(単純に構造を浅くしただけではなく、永続化の観点から今まで存在していたURLから新しいURLへのリダイレクトも行いました)。

ちなみにこのケースでは、深いディレクトリのURLを採用していたころはGoogleだけの順位が不調でYahooでは問題ありませんでした。浅い構造に改修した結果、Googleの順位が改善されYahooは現状維持となりました。

URL最適化5つのSEOポイント | エンジニアのためのSEO入門 | Web担当者Forum

mod_rewriteを用いることで、動的URLを静的URLに偽装できるのは良いのですが、そもそも多くの動的生成ツール(CMS)は、コンテンツが多いサイトであればあるほど、ディレクトリの階層が深くなってしまうものです。

動的URLの例
http://www.sanspo.com/shakai/news/101218/sha1012181645018-n1.htm
http://www.sanspo.com/(社会)/(ニュース)/(2010年12月18日)/(記事ID).htm

上記、SANSPO.comのサイトも、動的URLを静的URLに偽装してSEO対策を行っています。静的HTMLの場合は、ファイル管理の観点から、ディレクトリごとに意味を分けて管理するというのが正しいと思いますが、動的URLを静的URLに偽装している場合は、元々1つのファイルにアクセスして動的にコンテンツを表示しているので、ディレクトリを分ける必要はそもそもありません。「/」を区切りとして、プログラムに値を投げているだけなので、その区切りは何だっていいハズです。それでは、どのような区切りが適切なのでしょうか。

SEOに効果のある区切りは何か

例えば、アルファベットや数字などを区切りとした場合、そのコンテンツのカテゴリ名やページ名で区切りとした文字列を使用することが考えられるのでNGです。その他URLで使用できる記号群から選択することになります。

URLの使用可能文字についてはよく質問を受けますが、RFCで明確に定義されています。このRFC3986という文章のセクション2.3に非予約文字(URLに使用可能な文字)として記載されています。

URI内に含む事が認められていて、かつ予約目的のない文字は非予約文字と呼ばれます。非予約文字には、大文字と小文字のアルファベット、数字、ハイフン、ピリオド、アンダースコア、チルダが含まれます。
http://www.ietf.org/rfc/rfc3986.txt(原文)
http://www.studyinghttp.net/rfc_ja/rfc3986(日本語参考訳)

URL最適化5つのSEOポイント | エンジニアのためのSEO入門 | Web担当者Forum

上記の通り、RFC3986によると「ハイフン、ピリオド、アンダースコア、チルダ」がURLとして使用可能な文字列となるのですが、この中のどの記号がSEOに効果があるのでしょうか。

URLを見ただけで内容がわかりやすくする

http://www.example.com/abcdefgi/jk.html
などのように、意味のない文字列の羅列だけのURLでは、コンテンツを閲覧する側も管理する側も、とても不便なものになります。通常は、
http://www.example.com/category/id.html
のように意味を付けて命名します。先ほどの記事を見ると、

検索エンジンが内部でどのような処理を行っているかはわかりませんが、いかに優秀なエンジニアが作っていたとしても思わぬ不具合はつきものです。仮にそんな不具合に巻き込まれて、本来評価されるべきものが不当な理由で評価が落ちてしまっては元も子もありません。そのため、現状多く用いられている(実績のある)、「-(ハイフン)」や「_(アンダースコア)」で構成することを推奨しているのです。

URL最適化5つのSEOポイント | エンジニアのためのSEO入門 | Web担当者Forum

ハイフンとアンダースコアがURLの区切りとして適切であるようです。では動的URLを静的URLに偽装する場合の区切りとしてSEOに効果的なのは、いったいどちらなのでしょうか。

URLの区切りとしてSEOに効果的であるのは「ハイフン」

先ほどから引用している記事を見ると

なお、ハイフンとアンダースコアは検索エンジンに対する意味合いが異なります。ハイフンは文字通り単語を分離するために使われる記号なので、ハイフンの前後の単語は個別のキーワードとして認識されます。逆に、アンダースコアは前後の単語を連結するので、アンダースコアも含めた1つのキーワードとして認識されます。

URL最適化5つのSEOポイント | エンジニアのためのSEO入門 | Web担当者Forum

とあります。「アンダースコア」は文字の連結に用いる、「ハイフン」は単語を分離するために用いるようです。つまり、動的URLの区切りは、単語を分離するための「ハイフン」を用いるのが、記号の意味としては正しく、かつ、ディレクトリの階層を浅くすることによってSEOに効果がありつつ、URLを見ただけでもそのページの内容がわかりやすい、ということになります。

まとめ

SEO対策として、

  • 動的URLを静的URLに偽装する
  • ディレクトリ階層は浅くする
  • 値の区切りには「ハイフン」を使用する

とするべし!