Random Circuits
Experiment log

古いWordPressを新サーバーへ移行したら表示が崩れた。復旧までに確認したこと

WordPressの引っ越しはコピーだけでは終わらない

WordPressサイトのサーバー移行というと、

「ファイルとデータベースをコピーすればいい」

と思われることがあります。

新しいサイトなら比較的簡単に終わることもあります。

しかし10年近く運用されているサイトなどでは、

移行したことをきっかけに、それまで見えなかった古い仕様が一気に表面化する

ことがあります。

今回移行したサイトも、かなり長期間運用されているWordPressでした。

新しいサーバーへ移したところ、単純な引っ越しでは済みませんでした。

最初の移行ツールがうまく動かない

当初は、普段利用しているWordPress移行プラグインで作業を始めました。

ところがインポートが正常に完了しません。

移行プラグインは非常に便利ですが、

などによって失敗することがあります。

そこで同じ方法にこだわらず、別のバックアップ・復元プラグインへ切り替えました。

こちらではバックアップデータを正常に復元することができました。

トラブル時には、

ひとつのツールで粘り続けない

ことも大切です。

目的はそのプラグインを使うことではなく、サイトを安全に移行することだからです。

PHPバージョンを確認する

次に重要だったのがPHPです。

古いWordPressサイトでは、テーマやプラグインに古いPHPコードが含まれていることがあります。

新サーバーだからといって、いきなり最新PHPにするとエラーになる可能性があります。

今回のサーバーでは複数のPHPバージョンを選択できたため、まず既存サイトが動作するバージョンへ合わせました。

移行後にPHPを上げる場合も、

移行とPHPアップデートを同時に行わない

方が原因を切り分けやすくなります。

サーバー移行、WordPress更新、PHP更新を全部同時にやって表示が壊れると、どれが原因なのか分からなくなります。

SSL未設定なのにHTTPSへ飛ばされる

さらに、新しい環境ではまだSSLの準備ができていない段階なのにHTTPSへ転送される現象がありました。

こういう場合は、

などを確認します。

以前の環境で追加された設定が、新しいサーバーでもそのまま働いているケースがあります。

長く運用しているサイトでは、誰がいつ追加したか分からないRewrite設定が残っていることもあります。

.htaccess は特に要注意です。

表示崩れの原因は昔のEdge Animate

移行後、ページの一部で背景やレイアウトがおかしくなる問題もありました。

CSSだけを見ると原因が分かりにくかったのですが、HTMLを追っていくとAdobe Edge Animate関連の古いコンテンツが残っていました。

昔、Web上のアニメーションを作成するために利用されていた仕組みです。

現在ではほぼ使われなくなっていますが、古いWebサイトには残っていることがあります。

さらに、その部分がHTTPSのリソースを参照していたため、新しい環境で正常に表示されません。

今回は現在不要になっている部分だったため、該当要素を取り除いたりCSS側で非表示にしたりして対応しました。

「移行したから壊れた」とは限らない

ここで面白いのは、

新サーバーへ移したことで新しい不具合が発生したように見えても、

実際には以前から存在していた古い仕組みが、環境変更によって表面化しただけ

というケースがあることです。

長く運用しているWebサイトには、

などが残っていることがあります。

旧サーバーでは偶然動いていたものが、新しい環境では動かなくなる。

それをひとつずつ整理していくのもサーバー移行作業の一部になります。

移行はサイトの健康診断にもなる

今回の作業では、

など、複数の対応が必要になりました。

単純なコピー作業ではありません。

ただ逆に考えると、サーバー移行は、

長年積み重なった古いコードや設定を見直す良い機会

でもあります。

移行して終わりではなく、

「なぜこのコードがあるのか」

「まだこの機能は必要なのか」

まで確認すると、移行後のサイトを少しずつ健康な状態へ戻すことができます。

古いWordPressの引っ越しは、荷物を新居へ運ぶだけではなく、

押し入れの奥から出てきた昔の荷物を整理する作業

に近いのかもしれません。