2026年5月20日
2026年5月20日
WordPressを別のサーバーに移行する方法
はじめに
WordPressサイトの引越し(サーバー移行)はデータベース・ファイル・設定の3つを正しく移行する必要があります。URLが変わる場合はデータベース内のURL一括置換も必要です。移行プラグインと手動移行の両方の手順を解説します。
症状・原因
- ホスティングを乗り換えたい
- 共有サーバーからVPS/専用サーバーに移行したい
- ドメインを変更したい
- 開発環境から本番環境にサイトをデプロイしたい
解決手順
ステップ1:移行前の準備
# 移行元サーバーで確認すること
# WordPressバージョンの確認
wp core version
# PHPバージョンの確認(移行先と合わせる)
php -v
# データベースサイズの確認
wp db size
# プラグイン一覧を記録
wp plugin list --format=csv > /tmp/plugins.csv
# テーマ一覧を記録
wp theme list --format=csv > /tmp/themes.csv
# wp-config.php の設定を記録
grep -E "DB_|table_prefix|WP_DEBUG" /var/www/html/wp-config.php
ステップ2:All-in-One WP Migrationで移行する(最簡単)
All-in-One WP Migration の使い方:
【移行元サイト】
1. プラグイン → All-in-One WP Migration インストール・有効化
2. All-in-One WP Migration → エクスポート
3. 「エクスポート先」→「ファイル」を選択
4. .wpress ファイルがダウンロードされる(全データ含む)
【移行先サイト】
1. 新サーバーにWordPressをインストール
2. All-in-One WP Migration をインストール・有効化
3. All-in-One WP Migration → インポート
4. .wpress ファイルをドラッグ&ドロップ
5. 「インポート続行」→ 完了
注意: 無料版は512MBまで(有料版は無制限)
大容量サイトはファイル分割またはWP-CLIを使用
ステップ3:WP-CLIで手動移行する(確実な方法)
# ===== 移行元サーバーでの作業 =====
# データベースをエクスポート
wp db export /tmp/wp_export.sql
# wp-content をアーカイブ
tar -czf /tmp/wp-content.tar.gz -C /var/www/html wp-content \
--exclude="wp-content/cache" \
--exclude="wp-content/uploads/backups"
# wp-config.php の設定をメモ
cat wp-config.php | grep -E "DB_|table_prefix"
# ファイルをSFTP/SCPで移行先に転送
scp /tmp/wp_export.sql user@new-server:/tmp/
scp /tmp/wp-content.tar.gz user@new-server:/tmp/
# ===== 移行先サーバーでの作業 =====
# WordPressをダウンロード・展開
wp core download --locale=ja
wp config create \
--dbname=new_db \
--dbuser=new_user \
--dbpass=new_password \
--dbhost=localhost \
--locale=ja
# データベースを作成
wp db create
# バックアップをインポート
wp db import /tmp/wp_export.sql
# wp-content を展開
rm -rf /var/www/html/wp-content
tar -xzf /tmp/wp-content.tar.gz -C /var/www/html
# URLを移行先ドメインに変更
wp search-replace 'https://old-example.com' 'https://new-example.com' \
--skip-columns=guid \
--report-changed-only
# パーミッション修正
chown -R www-data:www-data /var/www/html
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;
chmod 600 /var/www/html/wp-config.php
ステップ4:移行後の確認
# サイトの動作確認
wp post list | head -5
wp user list
wp plugin status
# パーマリンク設定を更新(.htaccessを再生成)
wp rewrite flush --hard
# キャッシュをクリア
wp cache flush
# SSL証明書の取得(新ドメインの場合)
sudo certbot --nginx -d new-example.com
# curlでサイトの応答確認
curl -I https://new-example.com/
curl -I https://new-example.com/wp-admin/
ステップ5:DNS切り替えと旧サーバーの停止
# DNS切り替えの手順:
# 1. 新サーバーのIPアドレスを確認
curl ifconfig.me # または
hostname -I
# 2. ドメインレジストラのDNS設定を変更
# Aレコード: example.com → 新サーバーのIP
# CNAMEレコード: www → example.com(または新IPのAレコード)
# TTL: 移行前に300秒(5分)に下げておく
# 3. DNS伝播を確認(全世界に伝播するまで最大48時間)
dig example.com +short # Linux
nslookup example.com # Windows
# 4. 旧サーバーで301リダイレクトを設定(念のため)
# .htaccess に追加:
# RewriteRule ^(.*)$ https://new-example.com/$1 [R=301,L]
# 5. 新旧両サーバーで /etc/hosts を使って事前テスト
# 192.168.1.100 example.com ← 一時的に追加してテスト
注意事項
- URLを変更する場合(ドメイン変更)、
wp search-replaceは--skip-columns=guidを必ず付けてください。guidを変更するとRSSフィードの既読情報がリセットされます - 移行後24〜48時間はDNS伝播期間中のため、旧サーバーも停止しないでください。アクセスが旧サーバーに来る可能性があります
- メールアドレスを含む投稿・コメントのURLも一括置換されます。本番移行前にテスト環境で
--dry-runオプションで影響範囲を確認してください
まとめ
小規模サイトはAll-in-One WP Migrationが最も簡単です。大規模・確実性重視の場合はwp db export → tar → SCP転送 → wp db import → wp search-replace の手動移行を選択します。移行後はwp rewrite flush --hardでパーマリンクを再生成し、DNS切り替え後48時間は旧サーバーを停止しないようにします。