What are “Staging” and “Production” environments?
You may be wondering what the difference between a staging environment and a production environment is. The short answer is that they are both parts of the same web development process, but each one serves a distinct purpose.
Staging environments are meant to test new code before it’s deployed to production; they’re not supposed to be used as a full-scale replacement for your live site and content on staging is usually placeholder or outdated.
Production environments are the live sites that any user on the internet can see and access freely. They have all the bells and whistles you’d expect from any website: dynamic content, search engine optimization (SEO), analytics tracking, secure passwords, etc.
Why do we need both?
Staging environments exist so that we can test out changes before they’re made live on your website—if something breaks during testing then we’ll know what needs fixing before making it available to real users. Unlike production environments, staging environments have limited access by default. They don’t appear in search results and are password gated so that only internal team members can access them.
Production environments are the real deal. Any user will be able to find your website by entering the URL or searching for it on a search engine. Therefore, it’s extremely important that we only push code to production once our team is confident in the stability of the intended changes. If you’re on WP Engine (our preferred host), our production environments are also backed up daily in the event that we need to restore or recover a version before an unintended change.
When should I use staging vs. production?
A staging environment should look like a production environment in every way except one: content.
The content on staging is usually not at par with the content on production (live site) because we never move content from staging to production, only code. We will often enter placeholder content on staging so that you can review and approve any changes before we apply them to production, but ultimately the real and final content will need to be re-entered on production.
Here are some common changes that are often requested, in which we’ll need to test on staging before deploying to prod.
- To add a new field or section that didn’t already exist on the live site. If you want to add a new feature or section to your custom website, we will make these changes on staging first to ensure the designs are approved and working properly across all devices. While we don’t need the real and final content to test on staging, it always improves the QA process when we have it. Otherwise, we’ll use placeholder content since you will need to enter the content in the production environment again later. Users may see an empty space or odd-looking formatting without the proper content entered.
- To create a new page template. You may want to add a new page to your website. Perhaps you’re launching a new product or service, or simply want to create a landing page for a specific campaign. After testing the template on staging, we’ll push it to production so that you have the template at your disposal. However, users won’t be able to see the template until you create a page using that template and publish it.
- To update the layout of existing content. Since the content already exists on the live site and is simply being reformatted, users will see the changes immediately.
What if I want to test out how content will look without showing it to the world?
Of course, you can use staging to test out content to see if it looks as you intended. Perhaps you want to see if a certain image will look good or if the copy will fit the design. Just remember that you will have to manually re-enter all that content on production later. Another safe way to test content you’re not ready to publish yet is to keep a page in draft mode on the production environment so that only users logged into the WordPress site can preview it.
Important! You should never clone staging to production. That will erase all the real content and replace it with what was on staging, which as we have learned in this article, is usually not what we want to present to real users.
In short, staging is like a sandbox for testing code changes. You can rest assured that anything that happens in staging, stays in staging until we receive your approval to push to production. Production refers to the live site that your visitors will see when they type in your URL address.
For more content about our web development process, check out our Client Resources center!