はてなブログからWordPressへの正しい移行の仕方

はてなブログから WordPress に移行しました。サーバーは ConoHa Wing です。今回移行したのはこのサイトではなく映画レビューサイト「そんなには褒めないよ。映画評」です。

移行の際に手間ひまのかかる画像の移行やテキストデータの整形などを簡単にできるプラグインを紹介しています。



はてなブログのデータを移すまで

Conoha Wing 契約

新規にサイトを立ち上げるのではなく、すでにある「はてなブログ」のサイトを移行するにはそれなりの時間を要しますので、まずレンタルサーバーを契約します。移行しようとする方がサーバーの契約に迷うことはないと思いますが、ConoHa Wing に契約した手順が以下の記事にあります。


WordPress ではてなブログと同じサイトを作る

サイトの検索順位やインデックスされたページなどを無駄にしないためには「はてなブログ」のページ構成と同じサイトを作らなくてはいけません。

WordPress は、作成したサイトのドメイン名を変更することが出来ないようですので、まずはサーバーの初期ドメインなどでサイトを作成し、丹念にチェックをして問題がないことを確認し、その後独自ドメインを登録して丸ごとコピーする手順になります。


移行に際して重要なのは、

  • パーマリンクの維持
  • 固定ページの構成維持

です。


WordPress のパーマリンクの概要

WordPress のパーマリンクの考え方は次の画像でわかると思いますが、サイト内では、各記事は登録ID(p=***)で管理されており、それをリライトルールで日付や投稿名(スラッグ)に変換してアクセスできるようにしています。


f:id:ausnichts:20210817144737j:plain


一般的にパーマリンクは投稿名に設定することが多いと思います。その場合、はてなブログですべての記事をカスタムURL(WordPressでいうスラッグ)で登録していればいいのですが、標準のままであったり、はてなダイアリー方式の記事が残っていたりする場合は注意が必要です。


通常、はてなブログのインポートデータを WordPress に読み込む場合は、「Movable Type・TypePad インポートツール」を使うと思います。この場合の各記事の投稿名(post_name)は、はてなブログが標準(/entry/2000/01/01/111111)の記事は 投稿名(post_name):2000-01-01-111111 として登録されます。

ですので、WordPress のパーマリンク設定を登録名にすればその記事のパーマリンクは、ドメイン名/2000-01-01-111111 となり、日付と投稿名にすれば ドメイン名/2000/01/01/2000-01-01-111111 ということになります。


ですので「はてなブログ」の記事に標準の日付方式が含まれている場合は WordPress のリライトルールに追加するか、.htaccsess を使って URL をリライトする必要があります。次の記事を参考にしてください。WordPress のパーマリンクに entry を追加する必要はありません。


なお、WordPress のパーマリンク設定と投稿名(post_name)は連動していませんのでインポートした後にパーマリンク設定を変えても問題ありません。もちろん公開後は変更してはいけません。


初期ドメインに WordPress インストール

f:id:ausnichts:20211220102801j:plain

初期ドメイン直下に WordPress をインストールします。


f:id:ausnichts:20211220103026j:plain

すぐに「稼働中」になりますので管理画面URLにアクセスします。


はてなブログのデータインポート

MT形式でエクスポートした「はてなブログ」のデータを WordPress にインポートします。WordPress にデフォルトで登録されている「Movable Type・TypePad インポートツール」を使いますが、いくつか問題があります。

  • 記事に使われている画像を別途移行する必要がある
  • 画像のリンク先や見出しの変更等データの整形する必要がある
  • アイキャッチ画像の設定を記事ごとにする必要がある


「はてなブログ」の記事内の画像は、はてなフォトライフの URL になっていますので、そのままはてなのアカウントを保持していれば表示はされます。ただ画像も WordPress で管理できるよう移行しておくべきです。また、各記事のアイキャッチは WordPress のメディアライブラリに登録された画像しか設定できませんので移行しておかないと不都合が発生します。

そうした上記の問題を一気に解決するプラグインがあります。


www.imuza.com


このプラグインでは次のことが出来ます。

  • 記事に使われているフォトライフ画像を WordPress の uploads ディレクトリ以下の yyyy/mm ディレクトリにコピーします
  • エクスポートファイルの画像リンク先やタグの変更等、インポート可能ファイルに整形します
  • 各記事のアイキャッチ画像を一括して登録します


データのインポート、および画像のメディアライブラリへの登録には別途次のプラグインが必要です。

  • Movable Type と TypePad インポーター(標準装備)
  • Media from FTP、または Bulk Media Register


私は実際にこのプラグインを使って移行しています。


新サイトの構築から公開まで

テーマ作成等サイト構築

「はてなブログ」で運用していたテーマにこだわらなければ、WordPress のテーマを購入したり無料のものを使えばいいのですが、やはり独自のものを作りたいものです。

また、はてなブログで固定ページを使っている場合は WordPress でも同じものを作る必要があります。その場合は、functions.php や固定ページ用のテンプレートを作成する必要があります。

今回の「そんなには褒めないよ。映画評」移行で使ったノウハウは追い追い別の記事で書いていこうと思います。


初期ドメインから独自ドメインにコピーする

初期ドメインでサイトが完成したら独自ドメインを登録し、サイトを丸ごとコピーします。以下は ConoHa Wing の場合ですが、どのサーバーでも「独自ドメインを登録 > サイトコピー」の手順は同じだと思います(未確認)。


f:id:ausnichts:20211220101234j:plain

「サーバー管理 > ドメイン」で独自ドメインを登録する。


f:id:ausnichts:20211220101127j:plain

「無料独自SSL設定」にエラーが出ていますが、これはネームサーバーを ConoHa のものに設定していないからです。サイトを完成させ設定すれば消えます。


f:id:ausnichts:20211220101103j:plain

独自ドメインに完成した初期ドメインの WordPress をコピーします。これは一瞬で終わりました。


.htaccess の設定

はてなブログのパーマリンクでアクセスがあった場合に WordPress の URL に書き換えます。


f:id:ausnichts:20211220100934j:plain

「サイト管理 > サイト設定 > 応用設定 > .htaccess」で最上段に書き加えます。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.movieimpressions\.com$
RewriteRule ^(.*)$ https://movieimpressions.com/$1 [L,R=301]
RewriteRule ^entry/([0-9]{4})/([0-9]{2})/([0-9]{2})/([^/]+)$ /$1-$2-$3-$4 [L,R=301]
RewriteRule ^entry/([0-9]{8})/([0-9]{10})$ /$1-$2 [L,R=301]
RewriteRule ^entry/(.*)$ /$1 [L,R=301]

上の例の2、3行目は、wwwなしに統一しています。4~6行目がはてなブログ用です。ドメイン名はご自身のものに変更してください。


hostsファイルを変更して確認する

これで独自ドメインのサイトが完成しましたが、このままでは確認できませんので、一時的に作業中の PC の hostsファイルを変更して独自ドメインサイトの確認をします。

独自ドメイン名でアクセスした場合にサーバーの IPアドレスにアクセスできるようにします。


f:id:ausnichts:20211220100845j:plain

サーバーの IPアドレスはメニューの DNS をクリックすると見られます。独自ドメインをこのアドレスに向けます。

160.251.71.25 movieimpressions.com(など独自ドメイン)

hostsファイルの変更の仕方はたくさん紹介されていますのでググってください。確認がすめば hostsファイルの設定は削除します。

この方法を使えば最初から独自ドメインでサイト構築が可能です。ただし、実際に公開されているはてなブログのサイトにアクセスするには毎回 hostsファイルを書き換えなくてはならなくなります。


ネームサーバーを変更する

ドメイン名を登録しているレジストラでネームサーバーを変更します。


f:id:ausnichts:20211220100623j:plain

私は Value Domain で登録していますので、ネームサーバーの設定ページで ConoHa のネームサーバーを登録します。


完了!

以上で完了です。DNSキャッシュがクリアされますと WordPress のサイトが表示されるようになります。