タイトル: サイト(ドメイン)の引越し方法
SEOタイトル: WordPress サイト引越し完全ガイド(ファイルコピー / DB エクスポート / wp-config / siteurl 書き換え / DNS 切替)
| この記事の要点 |
|
WordPress 引越しの全体像
WordPress を別サーバ・別ドメインに引越すには、大きく分けて 3 つの要素を新環境に移します。どれか 1 つでも漏れるとサイトが正常に動きません。
| 要素 | 内容 | 移行手段 |
|---|---|---|
| ① ファイル一式 | WordPress 本体 + テーマ + プラグイン + アップロード画像 | FTP / SFTP / rsync / zip |
| ② データベース | 記事・コメント・設定・ユーザー情報 | phpMyAdmin / mysqldump |
| ③ 設定書き換え | DB 接続情報・サイト URL | wp-config.php / wp_options / WP-CLI |
事前準備
- 引越し先サーバに WordPress を動かせる環境(PHP / MySQL or MariaDB)があること
- 引越し先に新しいデータベースとユーザーを作成しておく(データベースの作成 / ユーザーの作成)
- バックアップを取る(プログラム・データベース両方)
- 引越し直前は本番側で投稿・コメントを止める(メンテナンスモード)
※本番のファイル・データを削除する作業は行わないでください。常に「コピー」で作業し、切替後しばらく旧環境を残します。
STEP 1: ファイル一式を引越し先にコピー
WordPress の設置ディレクトリ(wp-content 含む)をまるごと引越し先にコピーします。SSH が使えるなら rsync が高速です。
# 旧環境で zip 圧縮
cd /var/www/old
tar czf wp-files.tar.gz wordpress/
# 新環境に転送
scp wp-files.tar.gz user@newserver:/var/www/new/
# 新環境で展開
ssh user@newserver
cd /var/www/new
tar xzf wp-files.tar.gz
FTP 派なら、FileZilla 等でwp-content フォルダごと丸ごとダウンロード → 引越し先にアップロードします。wp-content/uploads は画像・PDF が大量にあると時間がかかるので、SFTP/rsync 推奨です。
STEP 2: データベースをエクスポート → インポート
引越し元から取得
phpMyAdmin が使えるなら GUI でエクスポート、SSH が使えるなら mysqldump が高速です(ターミナルからの実行方法は エクスポートおよびインポート を参照)。
# 旧環境
mysqldump -u olduser -p old_wp_db > old_wp.sql
# 新環境に転送
scp old_wp.sql user@newserver:/tmp/
引越し先にインポート
引越し先に新規 DB とユーザーを作ったうえで、エクスポートした SQL を流し込みます。
mysql -u newuser -p new_wp_db < /tmp/old_wp.sql
STEP 3: wp-config.php の修正
DB の接続情報が変わった場合は wp-config.php を書き換えます。
// wp-config.php
define( 'DB_NAME', 'new_wp_db' );
define( 'DB_USER', 'newuser' );
define( 'DB_PASSWORD', '****' );
define( 'DB_HOST', 'localhost' );
// セキュリティキーも環境ごとに変えるのが望ましい
// (ログインセッションが切れるが、安全)
STEP 4: サイト URL(siteurl / home)の書き換え
ドメインも変わる場合、wp_options テーブルの siteurl と home を新 URL に変更しないと、旧 URL にリダイレクトされる、CSS が読み込めないなどの不具合が発生します。
UPDATE wp_options
SET option_value = 'https://new.example.com'
WHERE option_name IN ('siteurl', 'home');
STEP 5: 本文中の URL をシリアライズ対応で置換
記事本文・ウィジェット・カスタマイザ設定など、あちこちに古い URL がハードコードされています。さらに WordPress の wp_options や postmeta にはシリアライズ済みの配列に URL が混ざっており、単純な UPDATE ... REPLACE で書き換えるとデータが壊れます。
専用ツールを使うのが安全です。
| ツール | 方法 |
|---|---|
| WP-CLI | wp search-replace 'https://old.example.com' 'https://new.example.com' --all-tables |
| Better Search Replace プラグイン | 管理画面から GUI で実行(Dry Run 可) |
| Search Replace DB(スクリプト) | PHP スクリプトを設置して GUI から実行 |
# WP-CLI で全テーブルを安全に書き換え(dry-run で事前確認)
wp search-replace 'https://old.example.com' 'https://new.example.com' --dry-run
wp search-replace 'https://old.example.com' 'https://new.example.com' --all-tables
STEP 6: 動作確認
DNS を切り替える前に、hosts ファイルで新サーバの IP に向けて動作確認するのが安全です。
# Windows: C:\Windows\System32\drivers\etc\hosts
# Mac/Linux: /etc/hosts
203.0.113.10 new.example.com
- トップページが表示されるか
- 固定ページ / 記事のパーマリンクが機能するか(だめなら管理画面で「設定 → パーマリンク」を保存し直す)
- 画像が表示されるか
- 管理画面にログインできるか
- お問い合わせフォーム等の送信動作
STEP 7: DNS 切替 + 旧環境の保持
動作確認が終わったら DNS の A レコード or CNAME を新サーバに向けます。TTL の伝播を考慮して少なくとも 1〜2 週間は旧サーバを残しておくのが鉄則です。絶対に旧サーバを即座に削除しないこと — キャッシュや古い DNS で旧サーバにアクセスしてくるユーザーがいるためです。
よくあるトラブル
| 症状 | 原因と対策 |
|---|---|
| 無限リダイレクト | siteurl / home が旧 URL のまま、もしくは HTTPS / HTTP の不一致 |
| 記事内画像が表示されない | 本文中の URL が旧ドメインのまま → search-replace で置換 |
| 固定ページが 404 | パーマリンク設定を再保存(.htaccess や Nginx 設定の再生成) |
| 管理画面に入れない | wp-config.php の認証キー設定ミス、または wp_options.siteurl の不整合 |
| テーマカスタマイズが消える | シリアライズ非対応の書き換えで壊れている可能性。バックアップから復旧 |
関連
- wp-config.phpの修正 — DB 接続情報の変更
- エクスポートおよびインポート — mysqldump の使い方
- データベースの作成
- ユーザーの作成
- MySQL/MariaDBへの接続