WordPressのSearch&Replaceで一括置換する方法
WordPressの一括置換が必要になる場面
WordPressサイトを運用していると、データベース内の文字列を一括で置換する必要が出てきます。主に以下のようなケースです。
- サーバー移転・ドメイン変更によるURL変更
- HTTP → HTTPSへの移行(常時SSL化)
- 会社名・サービス名の変更
- 電話番号・住所などの全ページ修正
これらを手動で修正するのは現実的ではありません。専用ツールを使った一括置換が必須になります。
結論:Better Search Replaceを使うのが安全
WordPressの一括置換は「Better Search Replace」プラグインを使うのが最も安全です。シリアライズデータに対応しており、URL置換でもデータ破損のリスクを最小限に抑えられます。
一括置換の手順(失敗しないやり方)
- 必ずデータベースのバックアップを取得する
- 「Better Search Replace」をインストール・有効化
- ツール → Better Search Replace を開く
- 検索・置換文字列を入力する
- 対象テーブルは基本すべて選択
- ドライラン(テスト実行)で件数を確認
- 問題なければ本番実行
特にドライラン → 本番実行の流れは必須です。いきなり本番実行すると取り返しがつかないケースがあります。
なぜ普通の置換ではダメなのか(重要)
WordPressのデータベースには「シリアライズ形式」という特殊なデータ構造が使われています。
a:1:{s:3:"url";s:22:"http://example.com/top";}
この形式では文字列の長さもデータとして保存されています。そのため、単純なSQL置換やphpMyAdminでの置換を行うと、文字数のズレによりデータが破損します。
Better Search Replaceはこの構造を理解して処理するため、安全に置換が可能です。
URL置換時のチェックポイント
- http → https の完全一致で置換する
- wwwあり・なしの両方を確認する
- サイトURL / ホームURL(設定 → 一般)も確認
- 置換後に全ページの表示チェックを行う
置換後の確認項目(必須チェック)
- トップページが正常に表示されるか
- 投稿・固定ページが崩れていないか
- 画像URLが正しく表示されているか
- 管理画面が正常に動作するか
- メニュー・ウィジェットに異常がないか
また、キャッシュプラグインを使用している場合は、必ずキャッシュを削除してください。
WP-CLIでの一括置換(上級者向け)
SSH接続が可能な環境では、WP-CLIで高速かつ安全に置換が可能です。シリアライズデータにも対応しています。
wp search-replace 'http://example.com' 'https://example.com' --all-tables
大規模サイトではプラグインよりもWP-CLIの方が高速で確実です。
注意:古いプラグインは使用しない
「Velvet Blues Update URLs」は過去に広く使われていましたが、現在は開発が止まっており非推奨です。シリアライズ対応が不完全なため、データ破損のリスクがあります。
まとめ
WordPressの一括置換は便利ですが、方法を誤るとサイト全体が壊れるリスクがあります。必ずバックアップを取り、安全なツールを使って慎重に作業してください。
大規模な置換や本番環境での作業に不安がある場合は、専門業者への依頼も検討してください。