こんにちは!
今までワードプレスの引っ越しは何度か行ってきましたが、今回は初のサーバー移行を伴う顧客サイトの引っ越しをしました。
ドメインキングにあるサブドメインからエックスサーバーに新設するサブディレクトリに引っ越しとなります。
備忘録的記事にはなりますが、
- エックスサーバーの簡単サーバー移行が使えない理由
- サブドメインからサブディレクトリへの引っ越し
- サーバー移行を伴う引っ越し
- URL変更に伴うリダイレクトの思わぬ落とし穴
についての手順や注意すべきポイントが明確になります。
今回のワードプレスのサーバー移行のポイント
今回記事にするワードプレスの引っ越しは、
- ドメインキングからエックスサーバーへのサーバー移行を伴う
- サブドメインからサブディレクトリへURLの変更(ドメイン変更)も伴う
- 顧客サイトで400以上の記事があるブログ
- テーマ丸ごとではなく、コンテンツのみ
の引っ越しです。
当初は、エックスサーバーの基本機能である「WordPress簡単移行」」を検討したものの、使用不可だったので、プラグインを使用した引っ越しに変更しました。
エックスサーバーの「WordPress簡単移行」について
エックスサーバーの「WordPress簡単移行」は、移行元URL・移行元ワードプレスのユーザ名とパスワード、移行先のURLだけを入力するだけで、簡単にエックスサーバーへワードプレスの引っ越しが出来るものです。
大変便利で魅力的ですが、「WordPress簡単移行」を使える条件が限られています。
動作要件
https://www.xserver.ne.jp/manual/man_install_transfer_wp.php エックスサーバマニュアルより
・WordPressのバージョンが 4.0 ~ 5.4 であること
・PHPのバージョンが5.3以上であること
*移行元のWordPressが以下に当てはまる場合、エラーとなります。
・マルチサイト機能を使用している場合
・データベースの容量が2GBを超えている場合
・WordPress.comからの移行である場合
・「PHPからtar、zipコマンドのいずれも利用不可」かつ「PHPのzipモジュールが利用不可」の場合
サブドメインをサブディレクトリへ移行するので、今回は対象外でした。
もし、以上の条件にあてはまるなら、本当に簡単に移行が出来るので、エックスサーバーの「WordPress簡単移行」機能はおすすめです!
引っ越しの簡単な手順を確認しておきましょう。
- 元サイトにてコンテンツのエクスポート
- 新サイトにてコンテンツのインポート
- ドメイン名変更に伴うリダイレクトの設定
です。
使用したプラグインについて
仕様プラグイン一覧
- 元サイトのエクスポート用 Demomentsomtres Export
- 新サイトのインポート用 ワードプレスインポーター(ワードプレス標準装備)
- リダイレクト Simple 301 Redirects
- 番外 記事一覧表作成用 Export All URLs
Demomentsomtres Export
一般的にワードプレス引っ越し時に使うプラグインは、All-in-One WP Migrationですが、今回のようにマルチドメインの引っ越しになると有料版になるので、対象外にしました。
Demomentsomtres Exportは、記事や、それに付随する画像などの情報も一気に移行してくれます。記事は、ほとんど前と同じ状態でそっくりそのまま移行されます。
エクスポートされたデータは、自分のPCにダウンロードされます。エクスポートは、元データはそのまま旧サイトに残っています。
おおむねすべての記事の画像は問題なく復元されます。但し、Cocoonテーマで使っていた「吹き出し」は、吹き出しの文章と画像が普通の画像と文章の姿になっていたので、あとから修正が必要になります。
ワードプレスインポーター
こちらは、ワードプレスに標準装備されているプラグインです。
PCにダウンロードされたデータを新サイトに復元するものです。
Simple 301 Redirects
ドメイン変更を伴う引っ越し作業後、旧サイトをすぐに亡き者にして、新サイトを検索エンジンに乗せるわけではなく、しばらくの間、新旧両サイトが検索エンジンに乗ることになります。
これは、検索エンジンの性質上、旧ドメインがしばらく残ることになるからです。その間、旧サイトに来たアクセスを新サイトに転送する仕組みがリダイレクトです。
Simple 301 Redirectsプラグインは、単機能301リダイレクトのみ出来るものでとてもシンプルです。
同じ操作は一括まとめて可能なワイルドカードという機能も魅力的です。
今回Simple 301 Redirectsを採用した理由
*Redirectionを使えなかった理由を述べますが、本題からはそれるので、作業の先を見たい方は、このリンクでジャンプしてください。
よく使われているリダイレクトのプラグインは Redirectionで、私も過去こちらを使っていました。が、今回は、WordPress とプラグインの関係がうまくいかず、断念。
その時の記録がこちらです。
RedirectionでREST API(ワードプレスとプラグインをつなぐシステム)がブロックされる、セットアップが完了できない↓ とエラーが出ました。

問題点を表示させると、
REST APIが404エラーを返しており、セキュリティープラグインもしくは、サーバーによるものだということです。しかし、当該ワードプレスにセキュリティープラグインは搭載されていなかったので、こちらとしてはどうしようもないですね。



さらに調べると、URL/wp-json で検索して何も表示されなかったら、あきらめようとの記事を見つけたのでここで、深追いは終了しました。



このような経過を経て、Redirection を使用は断念しました。
番外Export All URLs
リダイレクトが成功したかどうかチェックするためには、新旧両サイトのすべての記事のリストが必要です。
このプラグインは、とても簡単にサイト記事や固定ページのURL.タイトル、カテゴリーなどのリストを生成してくれます。
詳しい使い方や機能は、こちらの記事で扱っております。
WordPress:記事一覧はプラグインExport All URLsで超簡単!
ワードプレスのサーバー移行全手順
もう一度今回のワードプレス引っ越しの全体像です。
ドメインキングにあるサブドメイン blog.oldsite.com
↓ ↓
エックスサーバーのサブディレクトリ newsite.com/blog
新サイトの準備
テーマ全体丸ごとのサイト全体引っ越しではないので、新ワードプレスサイトをエックスサーバーに作成しておきます。
準備1:
今回は、サブディレクトリのサイトなので、サブディレクトリを作成し、そこにワードプレスをインストールしておきます。
エックスサーバーでのサブディレクトリの作成方法の詳しいやり方は
サブドメインとサブディレクトリの違いと作り方を初心者向けに徹底解説!の記事中にあります。
サブディレクトリの作り方(エックスサーバーでワードプレス)
準備1の補足:
旧サイトが、SSL化されていなかったので、新サイトも非SSL化にしておきました。引っ越し完了してから、SSL化を忘れずに。
準備2:
新サイトはすぐに検索エンジン上には公開しないので、サイト全体をnoindex設定にしておきます。noindexとは、検索エンジンに認識されなくなる設定です。
やり方
ダッシュボードから設定>>表示設定に入ります。



検索エンジンがサイトをインデックスしないようにするにチェックをし、変更を保存します。
新サイトの準備ができたら、元サイトのデータのエクスポートをします。
元サイトのデータエクスポート
Demomentsomtres Exportを用いて、パソコン上に元サイトのデータをエクスポートします。
エクスポートの設定
今回は、すべての記事と固定ページをエクスポートするので、すべてのコンテンツとしました。



詳しいやり方は、ワードプレスの引っ越しはプラグイン使いでサブディレクトリへも簡単!記事中の引っ越し元の記事をエクスポート(書き出し)にあります。
なお、万が一元データに不具合が生じるといけないので念のため、バックアップしておきます。
*今回は、画像処理系プラグインはありませんでした。
新サイトにデータインポート
用意しておいた新サイトへダウンロードしたファイルをインポートします。
ワードプレスに標準装備されているインポートを使います。
詳しい使い方はこちらです>>エクスポートした記事を引っ越し先でインポート
*今回は504エラーは出ませんでしたが、同じように、一度ではうまくインポートができず、2回目を行いました。
すると、○○は既に存在しています。お楽しみください。と表示されたので、安心しました。。(上にあるリンクを貼った記事にも同じ現象があります。こちらも参考にしてください)



ところが、今回は2回インポートしたことになっていて、記事がすべてダブっていたのです。(⇒これ、前述のリンクをした記事では、違う結果になっていたのですが。。)
この原因は、パーマリンクが初期設定だったことです。
前回記事(リンクしてある記事)の場合は、パーマリンクを%postname%にしたので、ダブる心配がなかったのですが、パーマリンクが初期設定だと1回目でインポートした記事は旧サイトと同じ番号が割り当てられ、2回目は、空いている番号を割り振って(無事に??)インポートしたというわけなんです。
初期設定のパーマリンクは、このような形です。
http:abcdef.com/?p=2139
自由な番号を割り振っているので、2回目は空いている番号を割り振ったというわけですね。
パーマリンクのことは気が付かず、ダブっている記事を片っ端から削除しました。
これで一応形としては、引っ越し作業は終了です。
残りはリダイレクト作業のみ。
リダイレクト作業
Simple 301 Redirectsを用いて、リダイレクト作業を行いました。
Simple 301 Redirectsのインストール方法と設定
ダッシュボード>>プラグイン>>新規追加へ行きます。
Simple 301 Redirectsを検索し、今すぐインストールを押して、有効化をします。



次に設定>>301Redirectsを押し、設定画面に入ります。



こちらが設定画面。とてもシンプル。これだけです!
左の欄には、元記事のURLのhttps://abc.com/postname の太字部分だけを入力します。
そして右欄は、移転先のURLをすべて入力します。https://def.com/postname



こちらが実際の画面です。



入力を間違えたら、右のDeleteを押すと、削除できるので、やり直しも簡単です。
ワイルドカード
Simple 301 Redirectsには、ワイルドカードという機能があり、同じ操作は一括で設定できるという優れものです。



このように*アスタリスクで設定します。
例えば、https://abc.com/category/postnameというカテゴリ―内のすべての投稿を一括でリダイレクトしたい場合は、/category/*と記述します。
大変便利ですが、サイト全体をまとめてリダイレクトしようとして、/*と記述すると、トップページにもダッシュボードもすべてリダイレクトしてしまうので、絶対やめてくださいね。
旧サイトにアクセスできなくなってしまいます!
。。ということは、パーマリンクがカテゴリーなどで2重構造~/category/postname~になっていない限り、ワイルドカードという機能は使えないということです!
URL確認しながらのリダイレクトの入力(記事一覧表使用)
機械的に旧記事を新記事にリダイレクトしようとしましたが、新記事のURLが必ず霜旧記事と同じではない、という現象が起きました。



これは、ダブりでアップロードしたときに、記事の番号が新しく割り振られたことによります。



新旧サイトの記事番号が同じなら、機械的に入力すればいいのですが、そうもいかなくなって、焦りました~!
そこで、記事一覧表を新旧両サイトで作成し、1つ1つ参照しながら入力しました。記事一覧表の作成は、Export All URLsで行いました。
Export All URLsの詳しい記事はこちらです。



記事リストがあったおかげで、400記事を3日で終わらせることができました。
ワードプレスのサーバー移行のやり方のまとめ
今回、ドメインキングにあるサブドメインのサイトをエックスサーバーのサブディレクトリのサイトに移行作業をしました。
基本作業は
- 新サイトの準備
- 旧サイトからデータエクスポート
- 新サイトへインポート
- リダイレクト
です。
実は、プラグインを使用して行う移行作業は、サブドメインでも、サブディレクトリでも、ルートドメインでも、サーバー内引っ越しでも、サーバー移行でも、同じなんです!
私も初めてサーバー移行したのですが、やっていることはいつもと同じでした。
こちらには、同一サーバー内の引っ越しの例が出ていますのでよかったらご参考にしてくださいね。