改訂版の目的と想定読者
このガイドは、既存のWordPressサイトのドメインを安全に変更する手順をステップごとに説明します。対象はサイト管理者、ホスティング管理者、または開発者です。用語:
- ドメイン: ウェブサイトの例「example.com」のようなホスト名。
- シリアライズ: PHPが配列などを文字列化する方式。置換時に壊れるとデータ不整合になるため注意が必要。
準備(必須)
変更作業に入る前に以下を必ず準備してください。
- WordPress管理者のログイン情報(ユーザー名・パスワード)
- ホスティングのコントロールパネル(cPanel等)ログイン
- FTP/SFTP情報
- phpMyAdminまたはデータベース管理ツールへのアクセス
- サイトとデータベースのフルバックアップ(ファイルとDB)
重要: 本番サイトで作業する前に、必ずローカルまたはステージング環境で手順を検証してください。
変更方法一覧(簡易)
下は簡易な優先順です。まずは1と2を試し、失敗したら3か4を使います。
- 管理画面から変更(もっとも簡単)
- phpMyAdminでデータベースを直接編集
- wp-config.phpへ定義を追加(最終手段)
- functions.phpを一時的に使用してDBを更新(緊急時)
次節で各手順を詳述します。
1. 管理画面からドメインを変更する(推奨)
管理画面にログインできる場合、もっとも安全で簡単な方法です。
- 管理画面 > 設定 > 一般 に移動します。
- 「WordPressアドレス(URL)」と「サイトアドレス(URL)」の2つを探します。
- WordPressアドレスは実際にWordPressコアファイルがある場所のURLです。
- サイトアドレスは訪問者が入力する公開URLです。
- 両方を新しいドメインに書き換えます(多くの場合同じ値になります)。
- 変更後に管理画面とフロントエンドを確認します。
問題がなければこれで完了です。管理画面にアクセスできない場合は次へ進んでください。
2. phpMyAdminでデータベースの値を変更する
管理画面に入れないが、コントロールパネルにアクセスできる場合の方法です。
注意: 変更前に必ずデータベースのバックアップを取りましょう。
- cPanel等からphpMyAdminを開き、該当のWordPressデータベースを選択します。
- テーブルの一覧から “wp_options”(接頭辞が異なる場合あり)を開きます。
- 最初の方にある “siteurl” と “home” の2つのオプションを見つけます。
- それぞれの値を新しいドメインに置き換えて保存します。
この方法で管理画面にアクセスできるようになるはずです。ただし、投稿内リンクやメディアURLの古いドメインは残るので、後述の検索・置換を行ってください。
3. wp-config.phpを編集してドメインを定義する(最後の手段)
管理画面やphpMyAdminが使えないときに有効です。ファイルマネージャーやFTPでwp-config.phpを編集します。
wp-config.phpに以下を追加または修正します(例):
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');
- “example.com” を新しいドメインに置き換えます。
- この方法は値をコードで固定するため、管理画面からは変更できなくなります。作業後は元に戻すか、管理画面で設定できるように削除することを推奨します。
4. functions.php で一時的にデータベースを更新する(緊急用)
テーマの functions.php に一時的なコードを追加して、DBのオプションを更新する方法です。サイトがフロントエンドで表示されず管理画面も使えない場合に使います。作業後は必ずコードを削除してください。
functions.php に以下を追加します:
update_option('siteurl','http://example.com');
update_option('home','http://example.com');
- 追加後、サイトにアクセスして変更が反映されたら、必ずこのコードを削除してください。
- 永続的な解決策ではありません。テーマのアップデートや切り替えで消える可能性があります。
追加で行うべき重要な作業(必須)
ドメイン変更後に忘れがちな作業をまとめます。
- DNS設定の更新: 新ドメインがホスティングに向くようAレコード/AAAA/CNAMEを更新。
- SSL証明書の発行/更新: HTTPSを使う場合は証明書を新ドメイン用に発行してください(Let’s Encrypt等)。
- 検索・置換: 投稿内の古いURLやメディアURLをすべて新URLに置換します(シリアライズ対応が必要)。
- パーマリンクの再保存: 管理画面 > 設定 > パーマリンク を開き「変更を保存」をクリックしてrewriteルールを更新。
- サイトマップとSearch Consoleの更新: Google Search ConsoleやBingのプロパティを新ドメインで登録し、サイトマップを再送信。
- 301リダイレクト: 古いドメインから新ドメインへ恒久的(301)リダイレクトを設定してSEOを維持。
検索・置換の安全な方法
- WP-CLIを使う(推奨、シリアライズに対応):
wp search-replace 'http://old-example.com' 'https://new-example.com' --all-tables
- プラグインを使う: “Better Search Replace” や “Search Replace DB” はシリアライズ対応のものを選んでください。
- 生のSQLで単純なREPLACEを行うとシリアライズが破損する恐れがあります。注意。
テストと検証チェックリスト
本番反映前に以下を確認してください。
- 管理画面にログインできる
- フロントページの表示にエラーがない
- 内部リンクとメディアリンクが新ドメインになっている
- SSLが正しくインストールされている(ブラウザで鍵アイコンを確認)
- 301リダイレクトが動作している(古いURLにアクセスしてステータスコードを確認)
- サーチコンソールに新ドメインを登録しサイトマップを送信
よくある問題と対処法
- 管理画面にログインできない: wp-config.phpやfunctions.phpの定義が間違っていないか確認。phpMyAdminでsiteurl/homeを直接確認。
- 画像が表示されない: メディアURLが古いままになっている可能性。WP-CLIやプラグインで置換。
- セッション・ログインループ: キャッシュやブラウザCookieをクリア。wp-config.phpのドメイン定義を確認。
ロール別チェックリスト
管理者:
- バックアップ取得、DNSとSearch Consoleの手配
開発者/エンジニア:
- WP-CLI置換、証明書更新、リダイレクト設定
ホスティング運用:
- DNSプロパゲーション監視、SSL発行、サーバ側の仮想ホスト設定
受け入れ基準
- 新ドメインでトップページと管理画面にアクセスできること
- 主要なページ(トップ10)で404が発生しないこと
- Google Search Consoleに新サイトが登録でき、サイトマップが受理されること
リスクと軽減策
- リスク: シリアライズデータの破損 → 軽減: WP-CLIまたはシリアライズ対応プラグインを使用
- リスク: DNS伝播による一時的なダウン → 軽減: TTLを事前に短くする、hostsでテスト
- リスク: SSLエラー → 軽減: 事前に証明書を準備し、HTTPS化のテストを行う
まとめ(重要ポイント)
- まずはバックアップ。次に管理画面での変更を試す。ダメならphpMyAdmin、さらにダメならwp-config.phpやfunctions.phpの一時的対応。
- 変更後はDNS、SSL、検索・置換、リダイレクト、検索エンジン設定の更新を忘れずに。
- シリアライズされたデータを安全に置換するにはWP-CLIや対応プラグインを使うこと。
重要: 作業後は必ずバックアップから不要な一時コード(functions.phpのupdate_optionなど)を削除して、設定を元に戻してください。
FAQ
Q: ドメイン変更でSEOは下がりますか? A: 適切に301リダイレクトを設定し、Search Consoleで移転を通知すれば影響は最小限です。ただしインデックスの再構築に時間がかかります。
Q: 置換でシリアライズが壊れた場合どうする? A: 破損したテーブルをバックアップから復元し、WP-CLIやシリアライズ対応プラグインで再実行してください。
Q: テスト環境でどのように新ドメインを検証できますか? A: /etc/hosts(ローカルhosts)に旧ドメインを指す開発サーバーのIPを追加して、DNSを切り替えずに動作確認できます。