
こんにちわ。ブログを5個運営しているブロガーのヒロユキと申します。
この度、XserverからMixHostにWordPressで作成したブログを移行いたしました。その際にドメインも変更をしました。
同じドメインでブログを移行する方法はたくさん情報があるのですが、ドメインを変更する方法はあまり情報がなかったため苦戦をいたしました。
SEOの観点からドメインを変更するのはデメリットが大きすぎるので、そういった情報は需要がないのかもしれません。
ただ、どうしてもドメインを変更したいということもあるかと思うので、方法について記載をしてみたいと思います。
可能であればドメインは変更しないほうが良い
まず、冒頭で申し上げたとおりドメインはあまり変更しないほうが良いです。
理由としては
- 自分のサイトへリンクしている人のリンクが切れてしまう
- ドメインパワーが最弱になり、しばらくは検索流入が見込めない
- 重複コンテンツ扱いになり、しばらくはアドセンスが使えない可能性がある
というところです。
後述する301リダイレクトを使用すれば「ドメインパワーや評価は引き継がれる」という情報もあったのですが、自分はPVがガタ落ちしました。
なにより、自分のサイトにリンクを貼ってくれた方に対して、リンク切れで迷惑となるので、避けたほうが良いかと思います。
参考までに、それでも自分がドメインを変更したかった理由は以下です。
- GoogleアップデートでPVが70%以上減り、何か救いが欲しかったから
- ディレクトリ構造に不満があり変更したかったから
- パーマリンクを変更したかったから
要は、ディレクトリ、パーマリンクを変えると結局URLの評価が消えるので、それならドメインを変更してもいいかなと思いました。
しかしPVが激減したアナリティクスを見ると、正直後悔のほうが大きいです。
旧ドメイン環境の情報をバックアップする
本題になりますが、WordPressのドメインを変更した方法ついて記載をしたいと思います。
WordPressのディレクトリをFTPでコピーする
WordPressのディレクトリをFTPを使用してローカル環境にコピーします。
FTPはクライアントソフトを使うのが楽ですが、自分はWinSCPというソフトを使用しています。FFFTPなどと比較してセッションが切れにくいのでおすすめです。
使い方などは下記が参考になります。
WinSCPで旧ドメイン環境のディレクトリの一覧を開き、そこにあるファイルをすべてローカルにコピーします。

テーマやプラグインのフォルダも全部移行できるので、全てコピーするようにします。
ちなみにこのコピーにかかった時間は、100記事程度のブログで1時間程度でした。(もちろん画像の有無とかで時間は前後しそうですが)
DBのデータをエクスポートする
DBのデータをエクスポートする方法は色々あると思いますが、プラグインを使用するのが一番簡単ですね。
※もちろんphpMyAdminなどを使用してエクスポートしてもOKです。
プラグインは「BackWPup」を使用しました。
まずプラグインを追加します。その後、ダッシュボードを開きます。

ページ中段に「1クリックバックアップ」という項目があります。そこにある「データベースのバックアップをダウンロード」ボタンをクリックします。

SQLの保存ダイアログが出るので適当な場所に保存します。

旧ドメインのSQLや設定を変更する
旧ドメインのSQL文を修正する
DBからエクスポートしたSQL文をテキストエディタなどで開きます。
そして、URLの文字列を全て置換します。この作業を行っていないと、新ドメイン移行後にダッシュボードすら開けなくなるので、このタイミングで実施を推奨です。
※ダッシュボードを開くと旧ドメインに繋ぎに行こうとしてしまうので
自分の場合は、旧ドメインが「slavesystem.net/blog5」、新ドメインが「unitygame.slavesystems.com」なので以下のように置換しました。

新ドメイン用のデータベースを作成する
新ドメイン用にWordPressをインストールする必要はありませんが、新ドメイン用のデータベースは作成する必要があります。
データベースはとりあえず空のものを用意すればいいので、Create Database文で作成すればいい感じですかね。
またDBにアクセスするユーザーにアクセス権限を付与する必要もあります。
自分は移行先がmixHostなのですが、UIから作成可能であったので、こちらからDatabaseを作成しました。
wp-config.phpを修正する
旧ドメインからダンロードしたwp-config.phpを開き、DBの接続情報を修正します。

修正するのは以下の部分です。
/** WordPress のためのデータベース名 */
define( ‘DB_NAME’, ‘databasename’ );
/** MySQL データベースのユーザー名 */
define( ‘DB_USER’, ‘username’ );
/** MySQL データベースのパスワード */
define( ‘DB_PASSWORD’, ‘password’ );
/** MySQL のホスト名 */
define( ‘DB_HOST’, ‘localhost’ );
上記に、新環境のデータベース情報を入力して保存します。
ちなみにPHPはあまり詳しくないのですが、改行コードはLFでもCRLFでもどちらでも良いようですね。
新ドメインにデータをインポートする
DBにデータをインポートする
まずはphpMyAdminなどを使用して、エクスポートしていたSQL文を実行します。
phpMyAdminの場合は以下の手順で実行できます。
- 左カラムからデータベース名を選択
- インポートタブを選択
- ファイル選択ボタンをクリック
- 画面下部にある実行ボタンをクリック


以下のようなログが画面に出力されればOKです。
インポートは正常に終了しました。210 個のクエリを実行しました。
WordPressのファイルを新ドメインにアップロード
再びFTPクライアントソフトなどを使用し、ローカルにダウンロードしていた旧ドメインのファイルを新環境にアップロードします。

これでファイルのアップロードやインポート系は終わったので、一旦ブログが開ける状態になっていると思います。
新ドメインにアクセスしてブログが開くことを確認します。
HTMLソースまで確認し、画像ファイルなどに旧ドメインのURLがないかもチェックしておくのが良いかと思います。
また、ダッシュボードへのログインがうまくいかないときは「https://サイトURL/wp-admin」ではなく「https://サイトURL/wp-login.php」とすると開けることがあります。
旧ドメインに301リダイレクトを仕込む
これで新ドメイン側はほぼ完了なのですが、このままだとWeb上に全く同じページが2つ存在することになり、重複ペナルティ不可避です。
そこでGoogleに対して、旧ドメインのページが新ドメインに移行したということを知らせて上げる必要があります。
その方法の1つが301リダイレクトです。
まず旧ドメインのブログのルートディレクトリに「.htaccess」がなければ作成を行います。

そして「.htaccess」に以下のようにリダイレクト用のレコードを追加していきます。
RewriteEngine on
RewriteRule ^/page$ https://newdomain/page [R=301,L]
RewriteRule ^/page2$ https://newdomain/page2 [R=301,L]
RewriteRule ^/page3$ https://newdomain/page3 [R=301,L]
ここで重要なのが、全部新ドメインのトップページにリダイレクトするみたいな雑な対応をしないということです。
Google検索から旧ドメインに流入したユーザーが、いきなり新ドメインのトップページに飛ばされたら、間違いなくブラウザバックされてしまいます。
また自分はURLパラメータ付きのパーマリンクを使用していたのですが、URLパラメータが付いているとうまくリダイレクトできませんでした。
その場合、以下のような記述でリダイレクトさせることが出来ました。
RewriteEngine on
RewriteCond %{QUERY_STRING} p=1
RewriteRule .* https://newdomain/1 [L,R=301]
.htaccessを配置したら、旧ドメインのページにアクセスし、新ドメインにリダイレクトされることを確認します。
サーチコンソールから旧ドメインのURLを削除する
旧ドメインのURLが無効になったことをGoogleに通知します。
まずはサーチコンソールから、設定→アドレス変更をクリックします。

移行後のドメインを指定して「検証して更新」をクリックします。
