こんにちは、ちうぱんです。
長くブロガーをやっていると、ブログシステムを乗り換えたいと思うことがありますよね?自分も最初はライブドアブログからスタートして、その後、SeesaaやWordpressなどを転々として今に至ってます。
ブログシステムを乗り換えるとき、とても重要なのが「リダイレクト」ですよね。リダイレクトというのは、旧サイトから新サイトへのURL転送と、検索評価を引き継ぐための設定です。リダイレクトを怠ると、それまで蓄積してきた被リンク等の評価がゼロクリアとなり、アクセス数の激減につながります。
そこで今回は個人的な備忘も兼ねて、Seesaaブログから他のレンタルブログに転出する場合のリダイレクトについて成果をまとめていきたいと思います。なお、ここではSeesaaブログを例に説明しますが、<head>部分を編集することができれば、他のブログシステムでも同じことができるはずです。
レンタルブログへの引っ越しには「301リダイレクト」が使えない
ブログシステムの乗り換えにおいて、それが恒久的なURLの移転を伴う場合、標準的かつSEO的にもベストな選択肢として、まずは「301リダイレクト」の使用を検討するべきです。「301リダイレクト」とは単にURLを転送するだけでなく、移転前のURLが持っていた被リンク等の評価を引き継ぐための確実な方法です。
しかしながら、「301リダイレクト」を設定するには、ウェブサーバーの制御ファイルである「.htaccess」を編集する必要があるため、移転先がレンタルブログの場合には、基本的に「301リダイレクト」が使えません。大変残念ですが、最善のリダイレクト手法が使えないという点は、あらかじめ覚悟しなくてはなりません。
meta refreshとrel="canonical"で「疑似301リダイレクト」
上記のとおり、移転先がレンタルブログの場合には「301リダイレクト」が使えないため、meta refreshとrel="canonical"で301リダイレクトを擬似的に再現しようと考えました。
meta refreshとrel="canonical"(以下、canonical)は、どちらもhtmlの<head>内に記述するコードで、それぞれ以下の機能を持っています。
- meta refresh:指定したURLに転送する
- canonical:指定したURLを正規化する
canonicalが分かりづらいですね。canonicalは英語で「正典」を意味しています。「URLを正規化する」というのは、ネット上に同じような内容のページ(URL)が他にもある場合、どのURLが正当なのかを宣言するということです。
canonicalはウェブ検索で類似コンテンツを排除することが本来の目的ですが、googleでは被リンク評価の引き継ぎに関して、301リダイレクトと同様の効果を持つものとしています。このあたりの詳しい事情は下記サイトを参照してください。
Seesaaブログの特定の記事にのみ、meta refreshとcanonicalを設定する方法
上で説明したとおり、meta refreshとcanonicalを設定することで、301リダイレクト的な機能を擬似的に実現することが可能です。
しかし、そこで問題となるのが、meta refreshとcanonicalで指定できるURLは1つのみという点です。<head>内のコードはブログ内の全てのページに適用されるので、旧サイトのどのページにアクセスしても、meta refreshで指定したURLのページに転送されてしまいます。さらにcanonicalについては、被リンク評価を引き継ぐどころか、SEO的に全くの逆効果にもつながりかねません。
そのような問題に対する解決策として、条件分岐を利用して、特定のURLにのみmeta refreshとcanonicalを設定することにしました。なお、以下ではSeesaaブログを例に説明しますが、条件分岐の書き方が分かれば、他のブログシステムでも応用可能と思われます。
まずは結論から、Seesaaブログの<head>内に書き込むコードは以下のとおりです。
<% if:extra_title eq 'ここに記事名を入力' -%> <link rel="canonical"ここに移転先記事のURLを入力" /> <meta http-equiv="refresh" content="0;url=ここに移転先記事のURLを入力" /> <% /if -%>
コードの意味は「指定した記事名の旧サイトのページにアクセスした場合、指定したURLに転送し、さらにそのURLを正当とする」ということです。記事名は日本語でOKです。移転先記事のURLは後ろにスラッシュ(/)不要です。Seesaaブログで<head>の修正方法が分からない人は、下記公式サポートを参照してくださいね。
上記のコードは<head>内に何度でも記述できますから、リダイレクトしたい記事が複数ある場合は、その数だけコードを記述してください。ただし、コードが増えるほど読み込みに時間がかかること、また、今回紹介した方法ではトップページのリダイレクトができないことが課題です(トップページには記事名が無いので、上記の条件分岐では対応できません。また、この点に関して今のところ解決策は確認できていません)。
ちなみに、<% -%>で囲まれたコードはSeesaaブログ独自のコードで条件分岐させています。他のブログシステムへ応用する場合には、この部分を書き換えてください。
なお、Seesaaブログで使用可能な変数や関数は公式サポートで公開されています。ただし、上記コードの条件分岐で使用している「extra_title(記事名)」など、公式には公開されていないタグもあるようです。
というわけで、今回は以上です。