What is wrong with WP Staging plugin?


Click here for 2024 update.

How it all started

One of our clients had recently mentioned using the WP Staging plugin on his popular WordPress site and he was very happy with it. He claimed that it saved him time and money that was previously spent on developers to test new website features without affecting live site.

This testimony ignited our curiosity so we went into it to see what the fuss is all about, after all maybe it is the silver bullet that we were looking for all this time, maybe it will take down the burden of constant site migrations to a staging server where all changes are thoroughly tested before moving them live? We decided to give it a try.

Let’s do some testing

Fresh WordPress was installed and WP Staging plugin activated, so far so good.

Now we went to main WP Staging page in admin, then to it’s Sites/Start page where we clicked on button to create a new staging site and finally we started cloning process.

Cloning itself took few seconds to complete. It was all ready and now it’s a time to see the results.

After looking at the cloned files and database tables we were startled at first, couple of minutes more and we got slightly concerned, then after a while, worried.

What is staging environment?

By definition staging is an environment for final testing immediately prior to deploying to production and it is meant to mimic production environment as closely as possible.

Best practice is to create a separate server for your staging environment.

Obviously when sites share resources, there’s always a chance that a change in staging could possibly harm the production environment, which should be avoided if at all possible.

What is wrong with WP Staging plugin?

What this plugin does is that it creates a staging site in a subfolder of the live site and copies all live database tables with a new prefix in a same production database.

There are hell of a lot of things that could go wrong if you are making ‘staging’ site like this and we don’t like the idea that our clients are using it on the established and popular sites.

Here is a short list of what could go wrong:

1) Website performance issues

Slowing down the production site because you are running exact site copy on same server resources. This means that same database queries and php calls that you have on live site are now on ‘staging’ and they are taking resources once more! Depending on the plugins and themes that are installed and available resources on your server this could go from little noticeable to getting your server down due to the resource exhaustion.

2) Doubling production database in size with every ‘staging’ site

Having excess tables does mean memory & hard drive space that could be regained & used for other things. You will not notice performance difference on smaller sites but it is huge on established sites with bigger databases.

3) Security

Testing various plugins on a ‘staging’ server like this is just asking for trouble. What will happen if some of the plugins or themes that you are testing are having security holes or they are poorly coded without any optimization, clearly you risk to compromise live site as well since you are sharing database and server resources.

4) SEO

This one may happen if you are not careful. If by mistake some staging urls leaks to search engines – via some plugin, ping service, theme etc. – your search engine ranking will be affected.

Don’t get me wrong, WP Staging is a well coded plugin that works what its developer says it does. There is also a good support for a plugin even in a free version. Its problem is that it is fundamentally flawed because staging should always be done on a separate server. That is the only proper and secure way for making staging site, period. If something goes wrong and site is down well you do not care much since it is a separate staging server right, now imagine same scenario on your live site – you get the picture.

Placing staging site on a live site as a subfolder and sharing its database is lazy at best and at worst very dangerous practice that can put down your live site.

There is a reason why this kind of plugin was not created earlier. Instead of WP Staging it should probably be called Lazy Man’s Staging. Right now it has about 20k active installations, and that is scary.

Should you use WP Staging plugin?

If you have well established site with lots of visits and larger database, do not use this plugin, really, just don’t! It is cheaper to pay for a proper staging server and a developer to do a site migration than to slow down live site with a ‘staging’ database and file clutter. Do you really want to put yourself in a position to knock down your live website?

If you have small personal blog with just a handful of visitors and you do not care if live site goes down than you can use it to save time. But even then be aware that ,if not properly deleted, you could be left with a database and file clutter that could affect site in a long run. If you decide to use it make sure that you properly delete every excess database table and ‘staging’ subfolder after you are done.

As WP Staging grows and becomes more popular I will probably get back and update this article, we would like to hear your opinions and experiences with this plugin so if you have any feel free to post it in the comment section bellow.

Stay secure!

Update for 2024

It has been 6 years since the last time we have visited WP Staging and the big question is, are findings regarding WP Staging still relevant in 2024?

The short answer is, YES, these findings still hold.

WP Staging still does the following things:

  • It doubles the database size.
  • It copies all production files in a subfolder that is used for a staging site.

At the time of this update it came to about 90k of active installations, yikes.

How should we make a staging site then?

Making staging site in WordPress is not an easy task because WordPress itself is notoriously difficult to migrate between servers. This is because all content in the database gets serialized so that it can not be used on different locations by simply copying database content.

There are two ways that you could do it easily:

  1. Setup staging site on your local machine and use of popular and battle proven Duplicator plugin.
  2. Use managed WordPress hosting and create staging site with one click.

Setting up staging site on your local machine with the Duplicator plugin

LAMP is a term describing a software package that includes Apache Web Server, MySQL Database and PHP programming language. XAMPP is one such package that provides all of these components for Windows, Linux and OS X.

XAMPP is a distribution that includes Apache, MySQL and PHP. It also includes phpMyAdmin, graphical user interface to manage MySQL Database Server.

XAMPP is the most popular PHP development environment.

XAMPP is a completely free, easy to install Apache distribution containing MariaDB, PHP, and Perl. The XAMPP open source package has been set up to be incredibly easy to install and to use.

Let’s say you want to create a staging site on your computer.

  • On your local machine first you install and setup a server with XAMPP.
  • On a production server use Duplicator plugin to create package.
  • Then move Duplicator package that you’ve just created and, following their instructions, install it on your localhost.

Now you have a copy of the production site on your local machine.

  • After you have successfully installed site with Duplicator you need to install one more plugin that you will be using to push your changes from localhost into production.
  • For pushing those changes we will use plugin Sync Posts Between Sites. This is a premium tool meant for speeding up the development process by pushing changes from staging into production without migrating whole site. There is a free trial version of this plugin that you could try and see if it works for you.
  • After installing and activating Sync Posts Between Sites on both production and local site you could start making changes to your posts locally and they will be automatically synced with posts on your production site.

Only posts that are updated or new ones that are published will get synced. All post types are supported, pages, custom types etc.

That’s it, you have successfully setup your local staging site.

Use managed WordPress hosting and create staging site with one click

Another way would be to use some of the managed WordPress hosting solutions. These days most of them have a one click staging site in their offer. We will not name them here but a quick search should get you plenty of providers to choose from.

Till next time, stay secure!

Comments are closed.