WordPressサイトをローカル環境から本番環境へ、またはその逆に移行する方法を解説します。初心者向けのプラグインを使った方法と、容量制限に引っかかった場合や大規模サイト向けの手動移行の両方を紹介します。
この記事でわかること
- All-in-One WP Migrationプラグインでの手軽な移行手順
- 無料版のアップロード容量制限と対処法
- 容量制限やCLI環境向けの手動移行(wp search-replace)
方法1:All-in-One WP Migrationプラグインを使う(初心者向け)
ローカル環境と本番環境の両方のWordPressに「All-in-One WP Migration」プラグインをインストールします。
- WordPress管理画面にログインします。
- 左側のメニューから「プラグイン」>「新規追加」を選択します。
- 検索バーに「All-in-One WP Migration」と入力し、プラグインを検索します。
- 「今すぐインストール」をクリックし、有効化します。
サイトのエクスポート
- 移行元のWordPress管理画面で「All-in-One WP Migration」>「エクスポート」を選択します。
- 「エクスポート先」をクリックし、「ファイル」を選択します。
- エクスポートが完了すると表示されるダウンロードリンクから、ファイルをダウンロードします。
サイトのインポート
- 移行先のWordPress管理画面で「All-in-One WP Migration」>「インポート」を選択します。
- 「インポート元」をクリックし、「ファイル」を選択します。
- ダウンロードしたエクスポートファイルをアップロードします。
- インポート中に表示される「Find & Replace」(検索と置換)の画面で、移行元のURLが自動検出されるので、移行先のURLに置き換わっていることを確認して「続行」をクリックします。
URLの置換はプラグインが自動でやってくれる
All-in-One WP Migrationは、インポート時に旧URLを自動検出し、シリアライズされたデータも含めて安全に新URLへ置換してくれます。外部の置換ツールを別途使う必要はありません。
All-in-One WP Migrationは、インポート時に旧URLを自動検出し、シリアライズされたデータも含めて安全に新URLへ置換してくれます。外部の置換ツールを別途使う必要はありません。
無料版にはアップロード容量の上限がある
無料版のAll-in-One WP Migrationには、エクスポートファイルのアップロードサイズに上限があります。メディア(画像・動画)が多いサイトでは、この上限に引っかかってインポートが途中で失敗することがあります。対処法は、有料の「Unlimited Extension」を購入するか、サーバー側の
無料版のAll-in-One WP Migrationには、エクスポートファイルのアップロードサイズに上限があります。メディア(画像・動画)が多いサイトでは、この上限に引っかかってインポートが途中で失敗することがあります。対処法は、有料の「Unlimited Extension」を購入するか、サーバー側の
upload_max_filesize 等の設定を変更するか、後述の手動移行に切り替えるかのいずれかです。方法2:手動で移行する(容量制限を回避・CLI環境向け)
サイトが大きくてプラグインの容量制限に引っかかる場合や、SSHでWP-CLIが使える環境であれば、手動での移行が確実です。
rsyncやscpでWordPress一式のファイル(wp-contentを含む)を移行先へ転送します。mysqldumpでデータベースをエクスポートし、移行先のデータベースへインポートします。- 移行先の
wp-config.phpのデータベース接続情報(DB_NAME・DB_USER・DB_PASSWORD・DB_HOST)を移行先の環境に合わせて書き換えます。 wp search-replaceでURLを一括置換します。
SSH:wp search-replaceでURLを安全に一括置換
wp search-replace 'http://localhost/codingls' 'https://example.com' --all-tables
なぜ単純なSQLのUPDATE文でなくwp search-replaceを使うのか
WordPressは投稿メタやオプション値の一部をPHPのシリアライズ形式(例:
WordPressは投稿メタやオプション値の一部をPHPのシリアライズ形式(例:
a:1:{s:3:"url";s:20:"http://localhost/xxx";})で保存しています。この形式には文字列の長さ(バイト数)が数値として埋め込まれているため、単純なSQLの UPDATE ... REPLACE(...) でURL文字列だけを置換すると、長さが変わってデータが壊れます。wp search-replace はシリアライズデータを正しく解析し、長さを再計算したうえで安全に置換してくれます。本番環境からローカル環境への移行
本番からローカルへの移行も、方向が逆になるだけで手順は同じです。プラグインなら本番環境で「エクスポート」し、ローカル環境で「インポート」します。手動の場合も、本番からファイル・DBを取得し、ローカルのhttp://localhost/... 形式のURLに向けて wp search-replace を実行します。
どちらの方法を選ぶか
- 初心者・小〜中規模サイト:All-in-One WP Migrationプラグイン
- メディアが多く容量制限に引っかかる/SSHが使える:手動移行(
wp search-replace)
よくある質問(FAQ)
QWordPressをローカルから本番に移行する基本的な手順は?
Aファイルを
rsyncやscpで転送し、DBをエクスポートしてインポートしたうえで、wp search-replaceでURLを一括置換します。wp-config.phpのDB接続情報も本番用に更新します。Q移行後にURLが変わる場合のURL置換の使い方は?
A
wp search-replace 'http://localhost/旧パス' 'https://本番URL' --all-tables のように実行します。シリアライズデータにも対応しているため、オプション値やメタデータのURLも正しく変換されます。WP-CLIが使えない環境では「Search Replace DB」という単体ツールもあります。Q移行後に画像が表示されない場合の対処法は?
A
wp-content/uploadsフォルダーが正しく転送されているか確認します。パーミッション(755/644)の問題でアクセスできない場合もあります。また、メディアライブラリの再スキャンはWordPress管理画面の「メディア」から行えます。まとめ
- 手軽に:All-in-One WP Migrationプラグイン(無料版は容量上限に注意)
- 確実に:手動移行+
wp search-replaceでのURL置換 - 注意:単純なSQL文字列置換はシリアライズデータを壊すため避ける
サイトの規模や使える環境に応じて方法を選び、移行前には必ず最新のバックアップを取っておきましょう。

