WordPressのステージング環境は、本番サイトを複製し、関係者以外と検索エンジンから見えないようにしたうえで、メールなど外部への送信を止めて作ります。
複製の方法は、サーバーのステージング機能、プラグイン、手作業の3つから選べます。
この記事は、プラグインの更新やデザインの変更を本番の前に試したいWordPressの運用担当者に向けたものです。
内容は、2026年10月15日にWP STAGINGの配布ページとWP-CLIの公式ドキュメントで確認したものです。
この記事のためにステージング環境を作って試したものではありません。
3つの作り方の違い
| 方法 | 向いている場合 | 注意点 |
|---|---|---|
| サーバーのステージング機能 | 契約しているサーバーに機能がある | 提供の有無や対象プランはサーバーによって違う |
| プラグイン(WP STAGINGの無料版) | 管理画面の操作だけで作りたい | 複製先は本番のサブディレクトリー。本番への反映は有料版の機能 |
| 手作業で複製する | 本番と同じ構成をサブドメインに作りたい | URLの置き換えに、シリアライズされたデータを扱える道具を使う |
まず、契約しているサーバーのマニュアルで「ステージング」を検索し、機能があるかを確かめてください。
サーバーの機能があれば、複製と本番への反映を管理画面から行えることが多く、手作業より失敗する場所が少なくなります。
作る前に決めておくこと
- 置き場所:サブドメイン(例:staging.example.com)か、本番のサブディレクトリーか
- 見る人:社内の担当者だけか、外部の制作会社にも見せるか
- サーバーの容量:本番とほぼ同じ容量が、もう1つ分必要になる
- 外部への送信:お問い合わせのメール、決済、外部サービスとの連携、アクセス解析をどう止めるか
とくに外部への送信は、止め忘れると、ステージングから本物の顧客にメールが届くといった事故につながります。
プラグインで作る(WP STAGING)
WP STAGINGは、WordPress.orgで配布されているステージング・バックアップ用のプラグインです。
2026年10月15日に確認した配布ページでは、バージョン4.17.0、WordPress 7.1.3までテスト済み、有効インストール10万以上と表示されていました(WordPress.org:WP STAGING)。
配布ページに書かれている無料版と有料版の違いは、次のとおりです。
| 機能 | 無料版 | 有料版(PRO) |
|---|---|---|
| サイト全体をサブディレクトリーに複製する | できる | できる |
| 複製したサイトを管理者だけが見られるようにする | できる | できる(見られる権限を選べる) |
| サブドメインに複製する | 記載なし | できる |
| ステージングの変更を本番へ反映する(Push) | 記載なし | できる |
配布ページでは、複製したサイトはログインで保護され、検索エンジン向けのnoindexも扱われると説明されています。
ステージング側の管理バーはオレンジ色で表示されるため、本番と取り違えにくくなっています。
無料版で作った場合、本番への反映は手作業になります。
手作業で作る(WP-CLIを使う場合)
サーバーにSSHで接続でき、WP-CLIが使える場合の流れです。
ここでは、本番を「https://example.com」、ステージングを「https://staging.example.com」とします。
- サーバーの管理画面で、ステージング用のサブドメインと、空のデータベースを作る
- 本番のWordPressのファイルを、サブドメインのフォルダーへコピーする
- 本番のフォルダーで、データベースを書き出す
- ステージング側のwp-config.phpにある接続情報を、ステージング用のデータベースに書き換える
- ステージングのフォルダーで、書き出したデータベースを取り込む
- ステージングのフォルダーで、URLを置き換える(先に件数だけ確かめる)
- ステージングのURLで管理画面にログインし、表示を確かめる
# 本番のフォルダーで実行
wp db export staging.sql
# ステージングのフォルダーで実行
wp db import staging.sql
wp search-replace 'https://example.com' 'https://staging.example.com' --skip-columns=guid --dry-run
wp search-replace 'https://example.com' 'https://staging.example.com' --skip-columns=guidWP-CLIの公式ドキュメントでは、search-replaceはPHPのシリアライズされたデータを正しく扱うと説明されています(WP-CLI公式:wp search-replace)。
データベースを書き出したファイルをテキストエディターで一括置換すると、シリアライズされたデータの文字数が合わなくなり、設定が読めなくなることがあります。
--dry-runを付けると、データベースを変更せずに置き換えの件数だけを確かめられます。
wp-config.phpにWP_HOMEやWP_SITEURLを書いている場合は、その値もステージングのURLに合わせます。
書き出した「staging.sql」には本番のデータがすべて入っているため、作業が終わったら公開フォルダーから削除してください。
WP-CLIの代わりにプラグインやサーバーの機能で置き換える場合も、シリアライズに対応した道具かを確かめます。
関係者以外と検索エンジンから隠す
ステージングは本番と同じ内容なので、検索結果に出ると重複したページとして扱われ、本番の評価に影響するおそれがあります。
- サーバーのアクセス制限(Basic認証)をかけ、IDとパスワードを知っている人だけが開けるようにする
- WordPressの「設定」の「表示設定」で、「検索エンジンがサイトをインデックスしないようにする」にチェックを入れる
- 外部の人に見せる場合は、見せる期間だけ認証の情報を共有し、終わったら変える
表示設定のチェックは検索エンジンへのお願いで、ページ自体は誰でも開けます。
中身を見られたくない場合は、Basic認証などのアクセス制限を合わせて使ってください。
noindexの仕組みは、WordPressのnoindex設定方法で説明しています。
外部への送信を止める
複製したサイトは、本番と同じ設定のまま外部とやり取りしようとします。
| 止めるもの | 起きること | 対処の例 |
|---|---|---|
| お問い合わせフォームの通知メール | ステージングで試した送信が、本番の担当者に届く | 送信先を自分だけのアドレスに変える |
| 会員や注文の自動メール | 本物の顧客にメールが届く | メール送信を止めるか、宛先を限定する |
| 決済 | 実際の請求が発生する | 決済サービスをテストモードにする |
| アクセス解析 | ステージングの閲覧が本番の数値に混ざる | 計測タグを外すか、別の計測IDにする |
| 外部サービスとの連携 | 本番と同じ連携先にデータが送られる | 連携を止めるか、テスト用の接続先に変える |
どれを止めたかを一覧に残しておくと、本番へ反映するときに、止めた設定を誤って持ち込まずに済みます。
作った後に確かめること
- ステージングのURLで、主なページと管理画面が開く
- ページ内のリンクや画像が、本番のURLを指していない
- ログアウトした状態で開くと、認証を求められる
- 「設定」の「一般」で、サイトアドレスがステージングのURLになっている
- フォームを送信すると、決めた宛先にだけメールが届く
- 本番サイトの表示と管理画面に、変化がない
本番のURLが残っていないかは、ステージングでwp search-replaceを--dry-run付きで実行し、本番のURLの件数が0になることでも確かめられます。
ステージングで直したものを本番へ反映するとき
ステージングを作った後も、本番では記事やお問い合わせの記録が増え続けています。
ステージングのデータベースで本番を丸ごと上書きすると、その間に増えた本番のデータが消えます。
反映の範囲の決め方は、ステージングから本番へ反映するときの注意点で説明しています。
表示が崩れたときの切り分けをステージングで行う手順は、SWELLの表示が崩れる原因と直し方で紹介しています。



