【FC2ブログからロリポップWordPressへ引っ越し】リダイレクト方法とconfでハマった話

やっとブログの引っ越しが落ち着いた。

俺がブログを始めた2009年当時、FC2ブログは自由度が高くて玄人好みだった。
その後、アメブロ全盛期もFC2ブログにこだわって使ってきた。
共有テンプレートも作ってたから、偶然訪れた他人のブログが俺が作ったテンプレートを使ってたりする。

といっても熱しやすく冷めやすい性格なので、極めたら興味が薄れてしまうので、ほとんど更新はしてなかった。
Wordpressは仕事でもプライベートでも使っていて、いつかブログも移行しようとは思っていたけれど面倒で放置してた。

先日、VAPEのサイトを閉鎖。
余裕もできたし、また熱が上がってきたので、重い腰を上げてブログを移行した。

VAPE & リキッド アンテナ サイト閉鎖のお知らせ

俺自身、何かあるとすぐにインターネット検索する。
求めてる情報に出会えた時は嬉しい。
でも、マニアックなジャンルや特定の状況に対する疑問に対しては、求めている情報がなかなか見つからない事も多い。
俺の主観的意見はほとんど役に立たないけど、個人的な考察や備忘録は、「参考になった」等のコメントをもらう事もあるから、ちょいちょい更新していこうと思う。

今回は、FC2ブログからWordpressに引っ越しする時にハマった話。
引っ越し自体(記事のエクスポートやインポート、画像の置換方法)は検索したら結構出てくるのでここでは省略。

旧サイトのSEO効果(評価等)を新サイトに引き継ぐ方法の話。

通常、WEBサイトを引っ越す時に旧サイト側にリダイレクトという新サイトへ転送する設定を行う。
それによってGoogle等の検索エンジンが旧サイトの評価を新サイトに引き継ぐ。

一般的には、.htaccessというファイルに301リダイレクトを記述するのが最適解とされている。
しかし、FC2ブログでは.htaccessを編集できない。

htmlは編集できるので、リダイレクトは、meta refresh(メタリフレッシュ)というメタタグをhtmlに記述して代用する。
どこかのサイトを訪れた時に「サイト移転しました。5秒後に移動します」などのメッセージが表示されて、自動的に別のサイトに転送させられた経験がある人もいると思う。
あれがメタリフレッシュ。

昔はメタリフレッシュでの転送は、評価の引き継ぎにはあまり効果がないと言われていたけど、今はcanonical(カノニカル)というタグを併用する事によって、301リダイレクトと同等の効果が得られるらしい。
実際、この手法を施してから、頻繁にサイト名や記事タイトルなどで検索して結果を確認していたけど、数日で効果を実感できた。
カノニカルは、内容が重複しているページがインターネット上に存在する時に、どのページをインデックスしてほしいのか検索エンジンに教えてあげるタグで比較的新しいタグ。

メタリフレッシュとカノニカルはhtmlのheadタグ内に記述する。
転送までの秒数は0秒にしても回線速度等の影響で少し表示されるから、「サイト移転しました。数秒後に移動します」を表示するようにhtmlに記述してもいいし、少しも表示しないで転送させるなら、cssに「body {display:none;}」などを記述して旧サイト自体を非表示にしてもいい。

FC2ブログはエリア変数でそれぞれのページに分岐するようになっている。
よほどブログ名が知れ渡っていて、ブログ名で検索されるようなら当てはまらないが、ほとんどの場合、検索ワードでヒットするのは記事ページなので、記事ページの転送は完全に一致させる。
記事ページ以外は一括で新サイトのトップページへ転送する。

【Wordpressの設定】
FC2ブログの記事ページURL末尾の記事番号と同じ数字をWordpressで作る新サイトの記事ページURLにも入れる。
例えば旧ブログの記事URLが、https://○○○○.blog.fc2.com/blog-entry-456.htmlなら、新ブログの該当記事のURLのどこかに456を入れる。
Wordpress側の記事URLは、設定→パーマリンクにて任意の形式にできる。
デフォルトでは「https://○○○○○.com/?p=123」のような番号が自動的に割り振られてしまうため、カスタム構造を選択し「%postname%」を使う。
記事の投稿画面にもパーマリンクを編集する箇所があるので、そこにFC2ブログの該当する記事の番号を入力。
この入力した数字が記事URLの「%postname%」のところに入る。

【FC2ブログの設定】
FC2側の記事番号は<%topentry_no>という変数で取得できるので、例えば、新サイトの方でもFC2ブログのURL末尾と同じように「blog-entry-番号」とするなら、htmlのheadタグ内に次のように記述するといい。

<!----------------▼canonicalとメタリフレッシュ▼---------------->
<!--permanent_area-->
<link rel="canonical" href="https://○○○○○.com/blog-entry-<%topentry_no>/" />
<meta http-equiv="refresh" content="0;URL=hhttps://○○○○○.com/blog-entry-<%topentry_no>/" />
<!--/permanent_area-->
 
<!--not_permanent_area-->
<link rel="canonical" href="https://○○○○○.com"/>
<meta http-equiv="refresh" content="0;URL=https://○○○○○.com" />
<!--/not_permanent_area-->
<!----------------▲canonicalとメタリフレッシュ▲---------------->

番号さえ一致していれば、同じ記事ページにリダイレクトされるので、新サイトのURLは「https://○○○○○.com/blog/<%topentry_no>/」とかでも大丈夫。
これを1箇所に記述するだけで全ページに適用される。

本来これでリダイレクト設定は終わりなのだが、ここからがハマった話。

詳しい仕組みはよくわからないが、パーマリンクを変えると、たぶん保存先フォルダが変わるとかデータベース構造に大きな変化を伴うらしく、頻繁に変更するとトラブルが起きやすいらしい。
俺の場合、新サイト側のURLを上述のような「blog-entry-○○○」や「/blog/○○○/」など、どうするか悩んで何度か変更した。
すると、データベースの構造にねじれが生じたのか、そのURLで表示されるべきページに別のページが表示されたりなど、めちゃくちゃになってしまった。

対処法をネットで調べてみると、パーマリンクの設定を一度デフォルトの「https://○○○○○.com/?p=123」に戻して保存し、またカスタムに戻すと直るいう情報が一番多かった。
でも俺の場合これでは直らなかった。

次の対処法として、.htaccessに「mod_rewrite」が正しく記述されているかどうか、.htaccessが無ければ作って「mod_rewrite」を記述する。
よく知らないけど、名前がリライトなのでデータベースの書き換えとかを意味してるのかな。
確認してみると、.htaccessはあるし、記述も間違いなかった。

次の対処法は、httpd.confを編集するというもの。
見慣れない用語が多くよくわからなかったが、.htaccessに記述したリライトを動かすためには、Apacheのmod_rewriteがロードされている必要があり、httpd.confファイルを編集する。
httpd.confは、昔使ってたサーバーでFFFTPに表示されていた記憶があるが、俺が今使っているロリポップサーバーには見当たらない。
どうやらロリポップでは編集できないファイルらしい。

一応、サポートに事情を書いて問い合わせしてみた。
返答は、

「ロリポップサーバーでは、httpd.confは編集できない仕様です」
「この症状はパーマリンクの設定をデフォルトに戻して保存すると直る事があるようです」

詰んだ…

んで、どうしたかというと、いろいろ検証してみたら、一度でもパーマリンクで設定した事がある構造はおかしくなったけど、まだ設定したことがない構造は正常に反映されたから、試したことがある使いたかったURL構造は諦めて別のURL構造にした。

というわけで、解決してないけど解決。

インターネット 】カテゴリーの記事一覧

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


コメントする