Amazon に真似る URL を用いた SEO 手法 ~ MovableType プラグイン:SEOedPermalink

Posted by
ぴろり
Posted at
2008/03/30 08:15
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
プラグイン カテゴリ

 「SEOにおいてキーワードを埋め込むべき重要な場所はどこですか?」という質問に対して、title タグや h1 タグ、meta description 以外にも"URL"と忘れずに答えられる人は少ないかも知れません。しかし、URL に含まれるキーワードは SEO を考える上でも、また、検索結果の CTR を高めるためにも重要な要素のようです。

これぞ、SEOである。URL中に入った検索ワードというのは、非常に効果が高いのである。Wikipediaやはてなキーワードが検索で上位になる理由も、これが大きいと思われる。Pagerankのおかげで被リンク数がもてはやされるようになったが、Wikipediaの全てのページがあちこちからリンクされているわけではないし、Amazonの「テール」に至っては被リンク数はたかが知れているだろう。にもかかわらずそうしたページまで検索上位になるのは、これが最も決定的な理由ではないかと私は睨んでいる。

 これをヒントに MovableType で作られたサイトでも、Amazon と同じように振舞う URL を実現できる MovableType プラグインを書いてみました。検索エンジン向けには URL に記事タイトルを含む URL をインデックスしてもらえるようになります。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  

概要

 クローキングと判断されることを懸念して自サイトで1 年くらいこっそり試験的に使ってみていますが、今のところ Google などの検索エンジンからサヨナラを言われてはいません。もし手法的にマズいのであればおそらく先に Amazon の方がどうにかなると思うので、ほとんど…いや、おそらくは…多分、大丈夫だと思います(自信なし)

 例えば Google で "記事 日記 コピー"というキーワードで検索すると mixiSync がトップにヒットするわけですが、snippet 中のキーワードと同様に URL に含まれるキーワードについてもハイライト表示されているのがわかります。基本的な動作原理については、404 Not Found で詳しく解説されています。要は検索エンジンのクローラに対して、同じコンテンツに対してインデックスして貰うべき URL にリダイレクトすることで、これを明示するようにしているだけです。一方で検索エンジンのクローラ以外の場合には、日本語文字列を含まない URL へリダイレクトを行います。これは英語圏と違って URL に日本語が含まれると、一概に日本語文字列がエンコードされてしまって、人間が使う場合には長くなりすぎて不便極まりないので、日本語を含まない短い URL でも同様に同じコンテンツにアクセスできるようにしています。また、SBM などでブックマークされる URL を一つに集約させることもできるので、一つの記事に対する被ブックマーク数を分散させにくいという効果もあります。

SEOedPermalink 動作概要図

 検索エンジンのクローラと通常のクライアントで動作が違うと云えば違うのですが、返却されるコンテンツ自体は全く同じために、クローキング行為には今のところ該当はしていないと判断してよいでしょう。現在のところ Google、Yahoo!、MSN でこの手法が有効です。その他の検索エンジン(例えば Biglobe) などではURL中の日本語がデコードされずに表示されたりしますが、特にそれ以外の影響は今のところありません。

動作環境

  • MovableType 4.x または MovableType Open Source 以上
  • サイトのページで PHP が使用可能なこと
  • Apache の mod_rewrite などによる URL 書き換えが可能なこと
  • 各ページの URL がディレクトリ形式(http://www.example.com/path1/path2/)のような形式でアクセスできること

導入方法

プラグインの導入

 ダウンロードしたアーカイブを解凍したファイルを MovableType のプラグインディレクトリにコピーします。その後、MovableType の管理画面から[システムメニュー]-[プラグイン]と進み、プラグイン一覧に表示されていることを確認します。

テンプレートアーカイブの修正

 出力される個別エントリアーカイブページは PHP として動作することを確認してください。また、生成されたページにアクセスするための URL はディレクトリ形式(http://www.example.com/path1/path2/)でアクセスできる必要があります。URL の末尾にファイル名などを含む場合などにはご利用になれません。
 個別エントリアーカイブページのアーカイブテンプレートの先頭に<MTRedirectSEOedUrl> 変数タグを記述して、全てのエントリを再構築します。この時、元の URL で従来どおりに記事が表示されることを確認してください。

mod_rewrite の設定

 .htaccess または Web サーバの設定ファイルに mod_rewrite の設定を記述します。3 行目の RewriteRule はサイト毎に個別エントリアーカイブの生成される URL に応じて適切に書き換えてください。本来の URL の末尾に何か適当な文字列を追加しても、本来のページが正しく表示できるようにします。例えば http://www.example.com/path1/path2/ が元の URL だった場合、http://www.example.com/path1/path2/hogefugapiyo でアクセスした場合にも同じページが表示できるようにします。

### Open MagicVox.net での設定の一例
### 各サイトのURLに応じてルールは異なります
RewriteCond    %{REQUEST_FILENAME} !-f
RewriteCond    %{REQUEST_FILENAME} !-d
RewriteRule    ^/archive/([0-9]+)/([0-9]+)/.+$    /archive/$1/$2/ [PT,L]

動作確認をするには?

 例えば、URL が http://www.example.com/path1/path2/ で表されるページがある場合;

  1. Web ブラウザで http://www.example.com/path1/path2/hogefugapiyo にアクセスすると、http://www.example.com/path1/path2/ にリダイレクトされることを確認してください
  2. Web ブラウザの UserAgent を Googlebot などのもので偽装した状態で、http://www.example.com/path1/path2/ にアクセスすると、http://www.example.com/path1/path2/記事タイトル にリダイレクトされることを確認してください

タグリファレンス

MTRedirectSEOedUrl 変数タグ
 検索エンジンのクローラに対して最適化された URL を返すための PHP コード片を生成します。必ず文字出力が行われるよりも前のページの最初に一度だけ記述してください。このタグの前には空白文字や改行文字さえあってはいけません。
MTEntrySEOedPermalink 変数タグ
 本来のパーマリンク(MTEntryPermalink)に UTF-8 エンコードされたタイトル文字列を付け足した URL を返します。タイトル中で使用されている半角スペースは _(半角アンダーバー)に置き換えられます。

その他

  • 個人ユーザによる非営利目的のサイトでの利用には特に制限はありません。GPL に基づいて自由にご利用頂けます。
  • 営利目的の商用サイトや営利団体・NPOによる利用については、ライセンスについてお問い合せください
  • 原則として導入方法等についての問合せはお受けしておりません。
  • 止むを得ずサポートを求められる場合にはお問い合せください
  • ある日突然、検索エンジンに嫌われるかもしれませんが、その場合の責任は持てませんので心配になさる方は使用をご遠慮ください。

ダウンロード

SEOedPermalink プラグインのダウンロード

最新版のダウンロードやバグレポートはSEOedPermalink の trac レポジトリでも行っています。

ページ下方の Download in other formats → Original Format で取得できます。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  



関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。