Staging is an environment built to resemble the production environment as closely as possible, but real users have no access to it. A new change runs and is checked there first and goes to the live site only if it is healthy.

Why is it needed?#

The development environment on a programmer's laptop differs from the real server: software versions, settings, data volume and even database speed vary. Many errors show up only under real conditions, and staging simulates these conditions without risk.

Example#

Before updating a payment plugin in a WooCommerce shop, you make a copy of the site. You update the plugin there, place a test order, and if there is no problem, you do the same on the main site. If something breaks, only the test site is broken.

Typical environments#

  • Development: where the programmer works.
  • Staging: an imitation of production for final testing.
  • Production: the live version for users.

Cautions#

  • Hide staging from search engines (noindex or a login password), or duplicate content may get indexed.
  • Put email, SMS and the payment gateway in test mode so no real message or payment goes to a real customer.
  • If you copy real data, remove or mask personal information.