New 24/7 monitoring and daily cloud backups now included in every Shield Pro plan.

Staging

Learn how to create a WordPress staging site.

Staging is a private copy of your site where updates and experiments cannot hurt customers. You can clone with host staging buttons, plugins, or a manual database and file copy.

Time: 45-90 minutes Level: Intermediate
Neil McNaught, founder of BugShield and WordPress author
Written by
Written by
Updated
Updated

What this problem looks like

A staging site should mirror production plugins, theme, and data closely. Testing on an empty WordPress install misses conflicts real content triggers.

Keep staging off Google and away from customer emails. Use noindex, HTTP auth, or host privacy toggles.

Step 1: Host one-click staging

Kinsta, SiteGround, WP Engine, and others offer staging environments in the dashboard. Push and pull buttons sync database and files with fewer manual steps.

Step 2: Plugin-based staging

  • WP Staging, BlogVault, or migration plugins clone to a subdirectory or subdomain.
  • Follow the wizard and exclude spam comments or large log tables when possible.
  • Run the included URL replace tool after clone completes.

Step 3: Manual staging copy

  1. Create subdomain staging.example.com in hosting DNS.
  2. Copy WordPress files to the subdomain directory via File Manager, SFTP, or FTP.
  3. Create a new database and import a production dump.
  4. Update wp-config.php in the staging site root with new database credentials.
  5. Run wp search-replace over SSH for production to staging URLs.

Step 4: Protect staging from the public

Add HTTP auth to .htaccess in the staging site root, next to wp-admin and wp-content:

apache
AuthType Basic
AuthName "Staging"
AuthUserFile /path/to/.htpasswd
Require valid-user

Step 5: Sync changes back to production

Database merges are risky for shops with new orders. Push file changes selectively and repeat tested plugin updates on production instead of overwriting the live database.

When to stop DIY and hire help

Agencies running many client sites benefit from standardized staging. BugShield sets up staging environments and controlled update workflows at a confirmed fixed price.

Questions answered

WordPress staging site FAQs

Answers about secure staging copies, database separation, search indexing, customer data, testing, and deploying changes safely.

Does staging need its own SSL certificate?

Yes for realistic HTTPS testing. Use Let's Encrypt on the staging subdomain.

Can staging share the production database?

No. Shared databases let staging writes corrupt live orders. Always use a separate database copy.

How often should I refresh staging?

Before major update batches or monthly for active shops so test data matches production.

Will staging hurt SEO?

Only if Google indexes it. Block crawlers and use noindex on staging domains.

What is a WordPress staging site?

It is a separate copy of the website used to test updates, code, content, and configuration without changing the live production site.

How should I protect a WordPress staging site?

Use authentication, restrict access, block search indexing, keep software patched, and avoid exposing real customer data or production credentials.

Should staging use a separate WordPress database?

Yes. Sharing the live database means tests can change production orders, users, options, and content even when the staging files are separate.

Can I copy WooCommerce customer data to staging?

Only when necessary and with appropriate privacy controls. Prefer sanitised data, disable outgoing email and payments, and restrict who can access the copy.

How do I move staging changes to live WordPress safely?

Deploy code and configuration selectively, take a fresh live backup, and avoid replacing the production database when it contains newer orders, users, or form entries.

Should I delete a WordPress staging site after testing?

Remove or refresh abandoned copies because they can become outdated attack paths. Keep a maintained staging environment only when it is actively used and secured.

Would you rather a developer fixed it?

Request a fix at a confirmed price and speak directly with the BugShield developer working on your site.

Request a Fix