「SEOにおいてキーワードを埋め込むべき重要な場所はどこですか?」という質問に対して,title タグや h1 タグ,meta description 以外にも"URL"と忘れずに答えられる人は少ないかも知れません。しかし,URL に含まれるキーワードは SEO を考える上でも,また,検索結果の CTR を高めるためにも重要な要素のようです。
http://www.amazon.co.jp/ の「二枚舌」に学ぶ究極のSEO
これぞ、SEOである。URL中に入った検索ワードというのは、非常に効果が高いのである。Wikipediaやはてなキーワードが検索で上位になる理由も、これが大きいと思われる。Pagerankのおかげで被リンク数がもてはやされるようになったが、Wikipediaの全てのページがあちこちからリンクされているわけではないし、Amazonの「テール」に至っては被リンク数はたかが知れているだろう。にもかかわらずそうしたページまで検索上位になるのは、これが最も決定的な理由ではないかと私は睨んでいる。
これをヒントに MovableType で作られたサイトでも,Amazon と同じように振舞う URL を実現できる MovableType プラグインを書いてみました。検索エンジン向けには URL に記事タイトルを含む URL をインデックスしてもらえるようになります。
クローキングと判断されることを懸念して自サイトで1 年くらいこっそり試験的に使ってみていますが,今のところ Google などの検索エンジンからサヨナラを言われてはいません。もし手法的にマズいのであればおそらく先に Amazon の方がどうにかなると思うので,ほとんど…いや,おそらくは…多分,大丈夫だと思います(自信なし)
例えば Google で "記事 日記 コピー"というキーワードで検索すると mixiSync がトップにヒットするわけですが,snippet 中のキーワードと同様に URL に含まれるキーワードについてもハイライト表示されているのがわかります。基本的な動作原理については,404 Not Found で詳しく解説されています。要は検索エンジンのクローラに対して,同じコンテンツに対してインデックスして貰うべき URL にリダイレクトすることで,これを明示するようにしているだけです。一方で検索エンジンのクローラ以外の場合には,日本語文字列を含まない URL へリダイレクトを行います。これは英語圏と違って URL に日本語が含まれると,一概に日本語文字列がエンコードされてしまって,人間が使う場合には長くなりすぎて不便極まりないので,日本語を含まない短い URL でも同様に同じコンテンツにアクセスできるようにしています。また,SBM などでブックマークされる URL を一つに集約させることもできるので,一つの記事に対する被ブックマーク数を分散させにくいという効果もあります。

最新版のダウンロードやバグレポートはSEOedPermalink の trac レポジトリでも行っています。
ダウンロードしたアーカイブを解凍したファイルを MovableType のプラグインディレクトリにコピーします。その後,MovableType の管理画面から[システムメニュー]-[プラグイン]と進み,プラグイン一覧に表示されていることを確認します。
出力される個別エントリアーカイブページは PHP として動作することを確認してください。また,生成されたページにアクセスするための URL はディレクトリ形式(http://www.example.com/path1/path2/)でアクセスできる必要があります。URL の末尾にファイル名などを含む場合などにはご利用になれません。
個別エントリアーカイブページのアーカイブテンプレートの先頭に<MTRedirectSEOedUrl> 変数タグを記述して,全てのエントリを再構築します。この時,元の URL で従来どおりに記事が表示されることを確認してください。
.htaccess または Web サーバの設定ファイルに mod_rewrite の設定を記述します。3 行目の RewriteRule はサイト毎に個別エントリアーカイブの生成される URL に応じて適切に書き換えてください。本来の URL の末尾に何か適当な文字列を追加しても,本来のページが正しく表示できるようにします。例えば http://www.example.com/path1/path2/ が元の URL だった場合,http://www.example.com/path1/path2/hogefugapiyo でアクセスした場合にも同じページが表示できるようにします。
例えば,URL が http://www.example.com/path1/path2/ で表されるページがある場合;
MTRedirectSEOedUrl 変数タグMTEntrySEOedPermalink 変数タグMTEntryPermalink)に UTF-8 エンコードされたタイトル文字列を付け足した URL を返します。タイトル中で使用されている半角スペースは _(半角アンダーバー)に置き換えられます。