TL;DR: 移行元と移行先の両方のサイトに WP STAGING Pro をインストールします。移行元でフル Backup を作成し、
.wpstgBackup ファイルを移行先に転送 (Backup URL または直接アップロード) して、Restore をクリックします。一般的なサイトであれば、全プロセスは 30 分以内で完了します。
Remote Sync を使えば、サーバー間でサイトを数分で直接移行できます。 → あるサーバーから別のサーバーへ WordPress サイトを Pull する
この記事では、WP STAGING Pro で WordPress サイトを Backup して移行する方法を説明します。
この Backup 機能を使えば、WordPress サイト全体を別のドメイン・新しいホスト・新しいサーバーに移行・コピーできます。他の Plugin よりも高速で信頼性の高いことが多いです。
WP STAGING の Backup 機能は、Staging サイトを本番サイトへ移行する用途にも使えます。Backup と Restore のフローは、低速接続や共有ホスティングの時間制限にも耐えるチャンク転送によって、大規模サイトを確実に処理します。
Contents
移行前のプリフライトチェックリスト
開始前にこのチェックリストを確認しておくと、最もよくある移行の失敗を避けられます:
- 新しいホストが準備できている。 Restore を実行する前に、移行先サーバーに WordPress がインストールされている必要があります。WordPress がまだインストールされていない場合は、WP STAGING Restore のスタンドアロンツールを使えば、WordPress のインストールと Backup の Restore を 1 つのステップで実行できます。
- PHP と MySQL のバージョン互換性。 移行先のホストが、移行元と同等以上の PHP バージョンと MySQL バージョンで動作していることを確認してください。バージョンの不一致は、Restore 後のホワイトスクリーンのよくある原因です。
- 現在のテーブルプレフィックスを記録する。 デフォルトは
wp_ですが、多くのサイトではカスタムプレフィックスを使用しています。今のうちに記録しておきましょう。トラブルシューティング時に必要になる可能性があります。 - キャッシュと CDN Plugin を無効化する。 LiteSpeed Cache、W3 Total Cache、WP Rocket などのキャッシュ Plugin、有効な CDN プロキシは、古いアセットパスや誤ったベース URL を Backup に埋め込む可能性があります。Backup を作成する前に無効化し、新しいホストで Restore が検証されてから有効化してください。
- DNS の TTL を記録する。 ドメインレジストラにログインして、A レコードの現在の TTL を確認してください。300 秒より長い場合は、DNS 切り替えの 24 時間前に短縮しておくと、伝播が早く完了します。
- 切り替えのタイミングを計画する。 移行はトラフィックの少ない時間帯にスケジュールしてください。新しいサイトが検証され、DNS が完全に伝播するまで、古いホストは稼働させたままにしてください。
どの移行方法を使うべきか
| 方法 | 最適な用途 | Plugin が必要? | 大規模サイトに対応? |
|---|---|---|---|
| WP STAGING Pro の Backup・Restore | 新しいホストやドメインへのサイト全体の移行 | はい (WP STAGING Pro) | はい — チャンク転送で複数 GB のサイトに対応 |
| 手動 FTP + phpMyAdmin | Plugin にアクセスできないシンプルなサイト | いいえ | 数百 MB を超えると脆弱 |
| All-in-One WP Migration | ワンクリックでのエクスポート / インポート | はい (サードパーティ) | 無料プランは 512 MB が上限 |
| マネージドホストの移行サービス | 新しいホストに移行を任せる | いいえ | はい。ただしスケジュールはホスト次第 |
当社のサポートキューでは、手動 FTP 移行の失敗が、WP STAGING の Backup・Restore の失敗よりも大幅に多くなっています。数百 MB を超えるサイトや、カスタムデータベースプレフィックス・マルチサイト・標準外のテーブル構造を持つサイトでは、WP STAGING のチャンク Backup が最も信頼性の高いオプションです。
WordPress を新しいホストに移行する方法
記事を読むよりも動画で見たい方は、以下の動画をご覧ください。WordPress を新しいホストに移行するすべてのステップを解説しています:
WordPress サイトの Backup を作成する
重要: WordPress マルチサイトをドメイン構造が異なる別のホスト (例: ドメインとサブドメイン) に移行したい場合は、フィルターで移行先ドメインをカスタマイズする必要があります。詳細はこの記事で説明されています。
では始めましょう。
まず、WP STAGING | PRO Plugin を開いて、「Backup & Restore」ボタンをクリックします。

「Create new Backup」をクリックします。

任意で、ここに Backup の名前を設定することもできます。サイト全体の Backup を作成するには、すべてのチェックボックスを選択したままにしてください。

続いて「Start Backup」をクリックします。

Backup の準備ができると、Backup Complete というメッセージが表示されます。

リモートサイトに Backup ファイルをアップロードする
移行先のリモートサイトに Backup ファイルをアップロードする方法は 2 つあります:
- Backup ファイルへのリンクを使って直接アップロードする。(最速の方法)
- まずダウンロードしてから、アップロードフォームまたは sFTP 経由で移行先サーバーに Backup をアップロードする。(やや遅いですが、Backup ファイルがローカルコンピュータにある場合に便利)
オプション 1: Backup URL を使って直接アップロードする
WP STAGING -> Backup & Migration に移動します。Backup を選択してActions -> Copy Link to Backup をクリックします。

移行先のリモートサーバーで WP STAGING -> Backup & Migration を開きます。Upload Backup をクリックし、Ctrl+V (Win / Linux) または Cmd+V (Mac) で Backup ファイルへのリンクを貼り付けます。リンクには一意のハッシュが含まれているので、権限のない第三者には推測できません。

Upload をクリックすると、ファイルが移行元サイトからリモートサイトへ転送されます。
アップロード後は、Backup リストからアクセスして、次のステップでその Backup ファイルを Restore できます。
オプション 2: まずダウンロードしてから移行先サーバーにアップロードする
Actions をクリックして Download を選択します。

これで、サイト全体が「.wpstg」拡張子の 1 ファイルにパックされてダウンロードされます。

新しいホストに Backup ファイルをアップロードする
次のステップで唯一必要なのは、サイトを移行するために 移行先のホストに WordPress がすでにインストールされていることです。これは新規の WordPress サイトでも、移行元サイトと同一にしたい別のサイトでも構いません。
WP STAGING Pro に移動して、「Backup」メニューをクリックします。

「Upload Backup」をクリックします。

ローカルコンピュータから Backup を選択し、アップロードします。

任意で、Backup ファイルを FTP で /wp-content/uploads/wp-staging/backups/ フォルダにアップロードすることもできます。
Backup ファイルを Restore する
Backup がアップロードされたら、Actions > Restore をクリックし、続いて Next、Restore をクリックします。

Restore プロセスは Backup ファイルのサイズに応じて数分かかります。完了すると、完了モーダルが表示されます。

OK をクリックすると、WordPress はログイン画面にリダイレクトします。移行元サイトのユーザー名とパスワードを入力してください。

これで完了です。WP STAGING Pro の助けを借りて、サイト全体を別のサーバーに移行できました。
Restore 後の移行確認
Restore が完了してログインできたら、新しいホストを指すように DNS を更新する前に、このチェックリストを確認してください:
siteurlとhomeを更新する。 Settings → General に移動して、WordPress Address と Site Address が新しいドメインを反映しているか確認してください。別のサーバー上で同じドメインに移行する場合は、すでに正しいはずです。- ドメインの検索置換を実行する。 データベース内のシリアライズされたデータには、古いホストへのハードコードされた参照が含まれている可能性があります。検索置換 Plugin または WP-CLI の
wp search-replaceコマンドを使って、すべてのテーブルにわたって古いドメインを新しいドメインに置き換えてください。 - パーマリンクをフラッシュする。 Settings → Permalinks に移動し、構造を変更せずに Save Changes をクリックしてください。新しいサーバー上で
.htaccessのリライトルールが再生成されます。 - フォームと REST API エンドポイントをテストする。 問い合わせフォームを送信して、確認メールが届くことを確認してください。
https://your-new-domain.com/wp-json/wp/v2/postsが有効な JSON を返すことも確認してください。エラーが返ってくる場合、問題はおそらくサーバーレベルにあります。mod_rewrite(Apache) または nginx の同等機能が有効であることを確認してください。REST API エラーが続く場合は、WordPress の REST API エラーを修正する方法を参照してください。 wp_optionsで古い参照を確認する。 WP-CLI を使って、古いドメインを含む行を一覧表示してください:
wp option list --search="*old-domain.com*" --fields=option_name,option_value
- Search Console で再インデックスを依頼する。 DNS が伝播したら、Search Console → URL Inspection に新しい正規 URL を貼り付けて、Request Indexing をクリックしてください。
移行が失敗した場合の対応
当社のサポートキューでよくある Restore 失敗の原因は次のとおりです:
MySQL の max_allowed_packet エラー
大きなデータベースを Restore する際、MySQL は max_allowed_packet 上限を超えるパケットを拒否することがあります。Restore のログには Got a packet bigger than 'max_allowed_packet' bytes のようなエラーが表示されます。共有ホスティング・VPS・マネージドデータベース環境を網羅した手順については、MySQL の max_allowed_packet サイズを増やすを参照してください。
大規模サイトでの PHP 実行タイムアウト
短い PHP 実行時間制限を課している共有ホストでは、大規模サイトの Restore が途中で打ち切られます。これは、Restore スクリプトがデータベースのインポートフェーズの途中で停止する、大きなデータベースを持つサイトで最もよく見られます。WP-CLI の Restoreは、ブラウザベースのタイムアウトを完全に回避します。SSH セッションから wp staging:restore を使ってください。一般的なホスティングパネルでの PHP 設定値の調整方法は、WordPress で PHP の max_input_vars 制限を増やすを参照してください。
Restore 後のファイル権限エラー
Restore は完了したものの、サイトが空白ページまたは file-not-found エラーを表示する場合は、wp-content/ とそのサブディレクトリが Web サーバーユーザーで書き込み可能かを確認してください。ほとんどの Linux ホストでは、ディレクトリが 755、ファイルが 644 で、所有権はサーバーのプロセスユーザーと一致していることを意味します。
古い siteurl が原因のリダイレクトループ
wp_options の siteurl にまだ古いドメインが含まれていると、WordPress はすべてのリクエストを古いホストにリダイレクトし、無限ループになります。WP-CLI で修正してください:
wp option update siteurl 'https://your-new-domain.com'
wp option update home 'https://your-new-domain.com'
移行後に管理画面に完全にアクセスできなくなった場合は、復旧手順についてWordPress で MySQL を使って管理者ユーザーを作成する方法を参照してください。