SeesaaBLOGの記事をWordPressに引っ越しする

ブログ記事の引っ越しは楽じゃない

引っ越し
以前にSeesaaBLOGで書いていた記事が、WordPressを使っているこのブログの記事カテゴリーと一部重なるようになってきたので、それらの記事をこちらのブログに集約するため、部分的に引っ越すことにした。

SeesaaBLOGからのブログ記事の引っ越しにあたっては、引っ越し方法についてほかのサイトをいろいろ調べてみた。
するとブログ記事の引っ越しにはどなたもみんなけっこう四苦八苦しているようだった。

なぜなら、ブログ記事の引っ越しは、引っ越し元の記事をコピーして、引っ越し先のブログにペーストし、引っ越し元の記事を削除すればすんでしまうほど、単純なものでないからだった。

方法としてはリダイレクトという手法を使って、引っ越し元のブログ記事から引っ越し先のブログ記事へURLを飛ばしてやらなければならず、その際、飛ばした先の記事が正しい記事のURLであることを検索エンジンに分かるように、引っ越し元のブログのヘッダーに書き記してやらねばならない。
そうしないと、検索エンジンには引っ越し先のブログ記事がニセのコピペ記事だと認識されて、グーグルの検索リストからはじかれたり、ペナルティを課せられたりするらしい。

自分の引っ越した記事が自分の書いた元記事の剽窃だと疑われるとはなんとも嫌な話しだ。

それで、自分も重い腰を上げて記事の引越し作業にトライしてみたわけだが、結果、ご多分に漏れず、途中でもう引っ越しするのは止めてしまおうかと何度も匙を投げそうになるほどめちゃくちゃ設定に苦労することとなった。

具体的な記事の引っ越し方法についてネットで調べた結果、最終的にしげぞうさんの書かれたブログ記事に行き着き、いろいろと参考にさせていただいた。
ありがとうございました。大変感謝しております!

引っ越し方法の詳細はしげぞうさんのサイトに詳しく書かれているのでそちらを参照していただきたいのだが、ただ自分の場合、この方法で二度ほどつまずいた箇所があり、すごく手こずったので、その解決方法を備忘録としてこの記事に記しておこうと思う。

SeesaaBLOGから選択した記事をエクスポートする

まず引っ越し作業はしげぞうさんがブログで書かれている記事の手順どおりに

1 SeesaaBLOGから記事をエクスポート
2 WordPressのパーマリンク設定を変更する
3 WordPressにインポート
4 記事の修正やリンクを貼り替え
5 準備ができたらシーサーブログからリダイレクト
6 リダイレクトを確認してWordPressのnoindexを外す

と順を追って進めた。

SeesaaBLOGの設定画面から「設定 > エクスポート」へと進み、引っ越しさせたい記事を時期、カテゴリーなどで絞ってエクスポートする。
エクスポートできる形式はなぜかMT形式、つまりMovableTypeの形式だけのようだ。

Seesaaブログ管理画面

Seesaaブログ管理画面

エクスポートされたすべての記事は拡張子に.logがついたファイルとして一つにまとめて出力される。

このファイルの中の一記事ごとにBASENAME: ●●●.htmlという項目が書き出されている。これをWordPressに読み込ませる前に削除する必要があるらしい。
このBASENAMEっていう項目はよくは分からないが、MovableTypeで使われるものなのかもしれないな。

WordPressのパーマリンク設定を変更する

リダイレクトする準備をする前に検索エンジンからインデックスされないように、まずWordPressの設定に変更を加え、そのあとでパーマリンクの設定に取りかかった。

WordPressではドメイン以下のURLを自由に設定できるようになっています。パーマリンク設定を「/%postname%」と変更すると記事のURLは「http://自分のドメイン/記事タイトル」というURLにする事ができます。これをやっておかないと今回のリダイレクトはできません。

ということで、しげぞうさんのブログ記事に書かれたとおりにWordPressのパーマリンク設定でカスタム構造を選択して、「http://自分のドメイン/%postname%/」と設定した。

実はこれがのちほど、頭を悩ませるもとになってしまった。

WordPressに引っ越し記事ファイルをインポート

次にWordPressに先ほど出力されたSeesaaBLOGから出力された例の.logの拡張子のついた修正済みファイルを「Movable Type and TypePad」というツールをインストールしてインポートした。

WordPressへの引っ越しブログ記事の取り込みはあっという間にできてしまった。引っ越し先のブログの画面を確認するとちゃんと記事一覧にも表示されていたし、内部リンクにもエラーはなかった。

記事の修正やリンクを貼り替え

全角22文字以内にする。
全角の英数字は半角に変更。
半角スペースは使わない。

というリダイレクトさせるための縛りの条件が記事のタイトル付けにはあるようだったが、たまたま今回引っ越した記事のタイトルは22文字以内で、全角の英数字や半角スペースもほぼ使用していなかったため、タイトルの修正はほとんどしなくてすんだ。

SeesaaBLOGからWordPressへ記事をリダイレクトさせる

記事内の写真などを元のブログから貼り直す作業はとりあえず後回しにして、SeesaaBLOGに戻り、Blog管理画面のデザイン > PC デザイン > HTML> 編集で、ヘッダー部分に

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<% if:page_name eq 'article' -%>
<link rel="canonical" href="http://リダイレクト先URL/<% extra_title %>">
<meta http-equiv="refresh" content="0;url=http://リダイレクト先URL/<% extra_title %>">
<% /if -%>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />

と正規化するタグとリフレッシュタグ(太字の部分)を追加記述した。

これで引っ越し元のブログ記事は引っ越し先のブログ記事に飛んで表示されることになる…はずだった。

ところが…

引っ越し先のWordPressブログは表示されるものの、ブログ記事は表示されず、HTTP 404エラーとなってしまった!

これはブログ記事の飛び先のパーマリンクのURLが間違っているからであった。

ブログのテーマを変えてみる

このエラーの原因についてはすぐ分かったので、WordPressの管理画面から取り込んだ個別の記事の編集画面を開いてみた。
案の定、パーマリンクのURLが「post-111」のようになっていて、SeesaaBLOGのヘッダーで記述した<% extra_title %>のブログのタイトル名になっていなかったのだ。

さっそくパーマリンクの編集ボタンでブログのタイトルにパーマリンクのURLを変更してみたが、更新すると、なぜかまたもとの「post-111」のような名前に戻ってしまった。

これには困り果てたが、もしかしたらWordPressのブログテーマの仕様でこういう挙動になるのではないかと推測して、試しに別のブログテーマに変更してもう一度ブログのタイトルを入力してみた。

すると、ちゃんとパーマリンクのURL欄に日本語のタイトル名が表示されるではないか。

ちなみに新しく変更したのは現在のこのブログのテーマにもなっているCocoonというブログテーマで、無料なのに本当によくできていて、すっかりお気に入りとなったブログテーマである。

それまでブログのテーマにしていた方のは、LION MEDIAというやはり無料のブログテーマで、見た目が洗練されていて、こちらはこちらでけっこう気に入っていたので残念ではあったが、パーマリンク名が変更できないのではしかたなかった。

話は戻る。

Cocoonにブログテーマを変更した状態でSeesaaBLOGの当該ブログ記事にアクセスしてみたところ、WordPressの引っ越し先の記事に無事リダイレクトされて表示された。

これでめでたく、ブログ記事の引っ越しは終了したかと思われた。

…しかし、安心するには早く、まだまだ苦難は続いたのだった。

グーグルサーチコンソールでURLエラーが続出

今度はグーグルサーチコンソールでWordPressの既存のブログ記事について、HTTP 404エラーが続出しだした。

エラーの出た当初、理由が分からずこれには焦った。

だが、よくよく考えてみれば、これまでWordPressで書いたブログ記事のパーマリンクは「日付と投稿名」で設定してあったからグーグル検索エンジンのクローラーには「http://自分のドメイン/年/月/日/記事タイトル/」で登録されていたはずだ。

それなのに「http://自分のドメイン/記事タイトル/」にパーマリンクのURLを変更してしまったのだから、検索エンジンがページを認識できずHTTP 404エラーを起こすのは当然のことだったのだ。

しかし、ブログ記事のパーマリンクをまた「日付と投稿名」に戻せば、これまでWordPressで書いてきた記事は再びグーグルの検索エンジンに認識されるはずだが、引っ越してきたブログ記事は「http://リダイレクト先URL/<% extra_title %>」なので、またリダイレクトされなくなってしまう。

原因が分かったとはいえ、WordPressで書いたブログ記事をたてれば、SeesaaBLOGから引っ越してきたブログ記事がたたず、SeesaaBLOGから引っ越してきたブログ記事をたてれば、今度はWordPressで書いたブログ記事がたたずの状態になってしまった。

ワイルドカードでリダイレクトに成功

解決策を考えるのがほとほと面倒くさくなって、SeesaaBLOGからブログ記事を引っ越すのは諦めようかと思いはじめたとき、ダメ元でやってみようかというアイデアが一つ浮かんだ。

そのアイデアとはWordPressのパーマリンクURLは「http://自分のドメイン/年/月/日/記事タイトル/」だから、SeesaaBLOGのヘッダーの

<link rel="canonical" href="http://リダイレクト先URL/<% extra_title %>">
<meta http-equiv="refresh" content="0;url=http://リダイレクト先URL/<% extra_title %>">

にワイルドカードのアスタリスクを使って

<link rel="canonical" href="http://リダイレクト先URL/*/*/*/<% extra_title %>">
<meta http-equiv="refresh" content="0;url=http://リダイレクト先URL/*/*/*/<% extra_title %>">

と投稿年月日部分を記述してみるいうものだった。

結果、

この方法でSeesaaBLOGのヘッダーに書き加えられた記述は、投稿年月日まで含んだWordPressのパーマリンクのURLを認識し、みごとアイデアどおりにブログ記事のリダイレクトに成功したのだった。

そして、WordPressの既存の記事の方も「http://自分のドメイン/年/月/日/記事タイトル/」という元のパーマリンク名に戻したため、グーグルサーチコンソールで確認してみても、HTTP 404エラーが起きなくなった。

WordPressのパーリンク設定

WordPressのパーリンク設定

これで正真正銘、SeesaaBLOGの記事をWordPressに引っ越しするという偉業(?)は完了した。

やれやれお疲れ様でした、自分。

今回の事例は「SeesaaBLOGからWordPressへの記事単位の引っ越し」というかなり特殊なものだったが、ワイルドカードを使って、引っ越し先のブログ記事のパーマリンクのURLと一致させるという方法はほかのブログの引っ越しにも汎用的に使えるんじゃないだろか。

コメント