WordPressサイトを手動で別ドメインに引っ越し!つまづいた点や引越後に変更したことをメモしてみた

2019-12-13WordPress備忘録

先日、このブログを別のドメインから今のドメインに引っ越しました。サーバーは変えず、ドメインのみの引っ越しです。

引っ越した理由

このブログは元々、サブドメイン(“blog.xxxx.com"のように、ドメイン本体に文字列が追加されたもの)を使用していました。当時、ドメイン本体にはサイトを設置しておらず、そこにはいつか自作ゲームを載せた公式サイトを設置しようと考えていました。

しかしブログを設置してから、ドメイン本体を成長させた方がGoogleの評価が上がりやすいという記事をちらほら見かけるようになりまして……。いっそのこと、更新頻度の高いブログをメインに据えたほうがよいのでは? と考えるようになり、今回実行するに至りました。

幸いコンテンツもそこまで多くなかったので、引っ越し作業に踏み切ることができました。

留意点

この記事は具体的な引っ越し方法ではなく、私が参考にしたサイトの紹介や、つまづいた点・移行後に変更した点を紹介する程度に留めさせていただきます。

私はこうやって引っ越しました

私は、WordPressブログの引っ越しをプラグインを使わずに行いました。

“All-in-One WP Migration"という、これ一つで引っ越しができるプラグインもあります。しかしプラグイン頼みだと引っ越しが上手くいかなかったときに原因が探りにくいのでは、という懸念がありました。

ならばいっそのこと一つ一つの工程を確認しながら引っ越したほうが、エラーを修正しやすいと思ったのです。あとは単に、お勉強になるかなと。

私はこちらの記事を参考に引っ越し作業を進めました。

私のように、サーバーは引っ越さないけどドメインだけ変えたいという方にピッタリの記事ですね。WordPressのお引越し代理業者さんのサイトですので、信憑性が高いだろうと信じて作業を進めました。結果、上手くいったので安心しました。

WordPressサイト引っ越しに必要なこと

まず大前提として、FTPソフトを使う作業があります。サーバーにアップロードされているファイルを保存する必要がありますから。サーバーのブラウザFTPでもできないことはありませんが、ソフトを使ったほうが効率が良いです。
上記のURLではWinSCPが紹介されていますが、私は使い慣れたFFFTPを使用しました。

またphpファイルや.htaccessの内容を書きかえる作業が出てきます。メモ帳で開いても構いませんが、テキストエディタがあると文字が色分けされるので作業がしやすいです。私はTeraPadを使用しました。

その他、データベースの中身を保存する作業や指定されたツールをダウンロードして使用する場面も出てきますが、サイトに書かれたとおりに落ち着いてやれば上手くいくでしょう。

ミスしそうになった・分かりづらかった点

さて、ここからは私がミスしてしまいそうになった点・分かりづらかった点をメモしました。あくまで補助的な情報ばかりですので、引っ越し方法を知りたい方は先ほど紹介したサイトを読んでください。

※この情報は2019/11月のものです。場合によっては作業工程や仕様が大きく変更されている可能性もあります

phpMyAdmin

phpMyAdminで、データベースの中身をエクスポートする作業があります。
その際に データベース選択>エクスポート と選択し『生成オプション』などの細かな設定を変更する必要があります。しかしその変更すべき欄が見当たらない……。

そんなときはエクスポート内の"Export method"を"簡易"から"詳細"に変更すれば、オプションが一覧表示されます。

Devas

Devasはファイル内の指定文字を置換するツールです。

↓ダウンロード先はこちら。

サーバーデータ内に記述されている引っ越し前のドメインを、引っ越し後のドメインに書きかえるために使用します。

気を付けることはこちら。

  • 対象ファイルの条件 を念のためまっしろにしておく(ファイルの拡張子を指定しない)
  • サブフォルダも検索 に必ずチェックを入れる(これにチェックを入れないと置換されないファイルが出てくる可能性があります)

私は初め、サブフォルダにチェックをいれずに検索を行ってしまいました。途中で気付きましたが、このまま全てを置換した気になっていればまずいところでした。

Search Replace DB

上記のサイトで紹介されている、"Search and Replace for WordPress Databases Script"というツールと同じものです。

このツールですが、今ではダウンロードボタンが撤去されています。じゃあどうやってダウンロードするのかといいますと、フォームにメールアドレスを入力し、メールで送られてきたURLからダウンロードしなければならないようです。

↓ダウンロード先はこちら。

ダウンロードページをスクロールすると、このような欄が現れます。

チェック欄には、このツールを使用するユーザーへの確認を促すメッセージが書かれています。簡単に日本語訳すると、こう書かれています。

  • このツールはセキュリティのリスクを伴うものであることを承知します
  • このツールをサーバーに残したままにはしません(使用後は絶対に削除します)
  • 自分は開発者であり、自分がやろうとしていることを理解しています

読んだ後は全ての欄にチェックを入れてください。
するとメールアドレス入力欄が出てくるので、そこに自身のメールアドレスを入力します。

あとは、届いたメールに記載されたURLからツールをダウンロードします。私が使用したのはバージョン3.1.0です。

使用後はかならず削除する

ちなみにこのSearch Replace DB、サーバー上にアップロードしたままですとデーターを書き換えられてしまうリスクがあり大変危険なので、使用後は必ずサーバー上から削除してください。
私はツール内の"Delete"ボタンを押下後、さらにFTPソフトでフォルダごと削除しました。(Delete押しときゃ安全でしょうが、やはり気になるので)

ちょっとつまづいたところ

Search Replace DBでエラー

説明通りに置換を実行したところ「The table [テーブル名] has no primary key. Changes will have to be made manually.」とエラーが出ました。

私の適当翻訳いわく、[テーブル名]内の置換操作は手動で行わなければならない……とのこと。

私の場合はどうしたかといいますと、phpMyAdminにログインし、エラーが出たテーブルの中身に引っ越し前のドメイン名が書かれていないかを確認しました。ざっと確認したところどこにも見当たらなかったので、エラーを無視して続行することに。(心配で何回もLive Runを押してしまいました)

ちなみに私がエラーになったテーブル名には"wp_ewwwioうんたらかんたら(忘れた)"と書かれていました。おそらく私の使用しているWordPressプラグイン「EWWW Image Optimizer」が関係しているのでしょう。

ログイン画面にアクセスするとエラーになる

無事移行作業が終わり、あとは管理画面にログインするだけ……と思いきや、まさかのログイン画面がエラーとなる事態に。原因は引っ越し前のドメインがSSL化されていたのに対し、引っ越し先のドメインはSSL化していなかったことにありました。
新しい方のドメインをSSL化し、https://を前に付けてログイン画面にアクセスしたところ、無事に表示されました。

画像が表示されない

更に、移行先のサイトを表示してみたら、サムネイル画像が全く表示されなかったので焦りました。
もう一回"Search Replace DB"を実行したり、なんやかんや色々試したのでどうやって解決したかよく分かりませんが、唯一挙げるとするならば、WordPressの管理画面で「EWWW Image Optimizer」プラグインの設定を開き、何も変更せずに更新ボタンを押したのがよかったのかもしれません。(Search Replace DBで吐いたエラーと何か関係があったのかも?)

引っ越し後に変更・追加した箇所

Google reCAPTCHAのキーを新たに取得

ログイン画面などに使われる画像認証のことですね。
ドメインを変えたためエラーを吐きました。これを解決するには引っ越し後のドメインでキーを取得し直す必要があります。意外と見落としやすいので気を付けてくださいね。

Googleアナリティクス・サーチコンソールの設定を変更

それぞれに引っ越し後のドメインを登録しておく必要があります。また、サーチコンソールに送信していた旧ドメインのサイトマップを念のため削除し、ドメイン移行後のサイトマップを新たに送信しなおしました。

リダイレクト

旧ドメインでアクセスしてきた人を、自動的に新たなサイトへとリダイレクトする(飛ばす)ための作業です。これをしないと旧サイトのSEO評価を継げない上、引っ越し前のURLを保存していた人がサイトを見れなくなるという、いわゆる『リンク切れ』が多発します。

もっと詳しく知りたい方は、先程と同じサイトの↓の記事がおすすめです。

リダイレクトを行うには、.htaccesにリダイレクト用のコードを記述をする必要があります。

メモ帳に以下のコードをペーストし、
“http://example.com"の箇所を引っ越し先のURLに変更してください。

RewriteEngine on
RewriteBase /
RewriteRule (.*) http://example.com/$1 [R=301,L]

記述し終えたら保存し、次に名前を変更します。名前を".txt"の拡張子ごと消して".htaccess"に変更してください。

このようになればOK

そうしましたらFTPソフトでサーバーに接続し、この.htaccessファイルを旧ドメインのディレクトリに入れてください。

具体的に言えば、xxx-old.comのサイトをxxx-new.comに引っ越したとすると、旧→新ドメインへリダイレクトするための.htaccessは“xxx-old.com"のディレクトリに入れることになります。引っ越し先のディレクトリに入れても機能しませんので、ご注意ください。

……と、ここまで細かく書くのも、私がリダイレクト用のコードを移行先の .htaccessに記述してしまっていたからなんですがね。

移行前のサイトを削除

最後に、旧ドメインのWordPressで使用していたサイトとデータベースを削除しました。Googleにコンテンツが重複しているとみなされたくなかったので。
……もう使わないから消しても大丈夫だよね?(あまり下調べせずに削除してしまいました^^;)

おわりに

はじめての作業だったのでドキドキしましたが、無事に移行が済んでよかったです。しばらくは不具合が出ないか様子見ですね……何か変化がありましたらお伝えします。