Maintenance

How to set up a WordPress staging site (and actually use it)

Every risky change — a major update, a redesign, a new plugin — needs somewhere to fail safely. That is staging: a private copy of the live site where mistakes are free. Sites that have one ship changes calmly; sites that do not test in production, whether they admit it or not.

1. Use your host’s staging if it exists

Most managed WordPress hosts (and many general ones) offer one-click staging: clone live, work, then push back. It handles URLs, databases and file sync for you. Check your hosting panel before doing anything manual — this feature alone justifies managed hosting for many teams.

2. Otherwise: plugin or subdomain

No host staging? Two workable routes. A staging plugin (WP Staging and similar) clones the site into a subdirectory in minutes — fine for testing updates. Or clone properly to a subdomain (staging.yoursite.com) with a migration plugin: fuller isolation, slightly more setup. Either way the clone must live outside the production folder tree, so nothing on staging can touch live.

3. Lock it down on day one

Two non-negotiables the moment staging exists: noindex it (Settings → Reading → Discourage search engines) and put it behind HTTP auth or a password. An indexed staging clone competes with your live site in search and hands attackers an unwatched copy of your stack — the duplicate-content section of our SEO guide covers how bad this gets.

4. The push-live rule: code down, content up — never sideways

The dangerous moment is pushing staging back to live. Safe to push: themes, plugins, configuration. Dangerous: the database — because while you tested, live kept accumulating comments, form entries and (on a store) orders. Overwriting the live database with staging’s copy deletes them. For content sites, push carefully with a fresh backup first; for WooCommerce, push code only and repeat config changes on live by hand.

5. Make it the default path

Staging earns nothing sitting idle. The habit that pays: majors and redesign work go through staging every time, staging gets re-cloned fresh before each session (a stale clone tests a site that no longer exists), and the live push happens the same day while context is fresh. It is the workflow behind every calm update our maintenance clients never notice happening.