The importance of having a staging site for your e-commerce business

As of now, Easy Digital Downloads is actively installed on over 40,000 sites. That’s a pretty large number which means a lot of downloads are being distributed and hopefully, a lot of money is being made.

When I see that active install count, though, I don’t particularly accept it as-is. What I try to assume is that roughly 20,000 of those active installs are live sites while the other 20,000 are staging clones of the live sites (you can’t blame me for wishful thinking).

EDD being an e-commerce platform means that a significant portion of our users are trying to earn income from their websites. There are many users who have been able to do so successfully and some who are still a work-in-progress. But one thing they all have in common is that certain aspects of the platform are expected to be automated and accurate, thanks to EDD and its add-ons.

Every once in a while, there’s a hiccup in one of the processes. That’s the nature of software development. There will be bugs, shortcomings in functionality, and other common obstacles. For the most part, though, the core functionality of an EDD-based e-commerce system is rock solid.

That said, problems are more likely to be introduced as other components are added and functionality becomes more complex. This is where having a staging site becomes extremely important.

Allow me to explain.

What is a staging site?

In layman’s terms, a staging site is a clone of a live site and is used to for testing purposes.

When it’s time to switch themes, add or remove plugins, integrate custom code, or make any significant changes to the site, it’s best done on a staging site that is a replica of the live site.

The reason this is so important for e-commerce sites is because they earn revenue and deal with customers who have so graciously opened their pocketbooks to you. Making purchases online is a lot less personal which means trust is built through the purchase process, making it that much more important to the customer that things are working properly.

Staging sites are used to ensure that everything works properly before it is presented to the customer. Likewise, they can be used for troubleshooting issues found on the live site without running the risk of interfering with your users or breaking even more functionality.

Theoretically, any issues found on the live site should be replicable on the staging site. With temporarily switching themes and deactivating plugins being very common troubleshooting steps, having a staging site is a great way to track down issues without having to place your live site in maintenance mode or removing expected functionality for testing.

How do I set up a staging site?

First, let’s clear a few things up about staging sites so this is not any more complicated than it needs to be.

  1. A staging site is not a special kind of site that requires a different installation or configuration approach than your live site. It’s just another WordPress install that is set up just like your live install.
  2. Most of EDD’s add-ons require licenses. However, these licenses do not restrict functionality. They are simply gateways to support and dashboard updates. So, yes, you absolutely can activate extensions on both your staging site and your live site. Just reserve license activation for your live site only.
  3. Staging sites concentrate mainly on functionality, not content. For example, it’s more important that your EDD settings are the same on both sites than it is the descriptions of your downloads match.

The point here is that a staging site does not require a whole new level of thinking. It’s just the site you’ve already created, created once more.

Let’s get on with the setup.

Ask your hosting provider.

One thing I love about some hosts is that they have services in place to clone your live site to a staging site with just a few steps. Here on the EDD site, our staging set up is as simple as clicking a button. It’s just as easy to update the staging site from the live site any time we need to.

Hosts like Pagely and WP Engine make it extremely easy to make sure your staging site is an exact clone of your live site whenever you need it to be.

Install WordPress Yourself.

It’s not a big deal if your host does not have a simple way for you to set up a staging site. You can do it on your own just the same way you created your live site.

As mentioned before, the staging site is about functionality, for the most part. Create a subdomain or subdirectory, whatever you’d like, and treat the WordPress set up as if it was a new project you were working on. Once up and running, you’ll want to install (and activate) the same theme and plugins that you are using on your live site.

Believe it or not, that alone will replicate the vast majority of functionality you need to have an effective staging site. You can definitely take things further, though.

What I would suggest is a complete database clone from the live site. I would export my database from the live site and import it to the database I have connected to my new staging site. There are plenty of online resource to help you accomplish this (here’s one).

With the same theme and plugins activated on the staging site as you have on the live site, and a full database export/import, you should be very close to a completed staging site.

For many, you may not even have to go that far. WordPress has its own built-in export/import functionality located under the Tools menu in the dashboard. You can export data directly from your live site and import it to your staging site, though it’s not as thorough as the aforementioned method.

Support for EDD Issues

If you’ve been using EDD for a while and have opened a support ticket or two, there’s a chance I have helped resolve your issue or answered your questions. With quite a few tickets, though, I’ve had to ask users to temporarily switch themes and deactivate plugins. Many are okay with this. Some are not.

What must be understood here is regardless of why the issue exists, it’s present and must be dealt with. Troubleshooting will almost always begin with looking for conflicts from other resources. So don’t wait until there’s an issue to set up a staging site just to see if you can replicate the issue.

The absolute best time to find an issue is when you are testing new functionality on your staging site, and it has not made its way to your live site yet. The goal is to get issues sorted out in a testing area first, that way rigorous troubleshooting can be done without potential loss of revenue or damaged user experience.

Next time you have a few moments to spare, consider setting up a staging site if you do not already have one. Let that be a testbed for every line of code that will touch your live site. Consider this one of the most important steps for creating your online business.

If you have any questions, feel free to ask below.

Comments

c

Great article. Staging areas are very important. One host I would like to mention that has an awesome staging feature for wordpress is SiteGround.

Reply

Thanks for the comment! I’ve heard a lot of great things about SiteGround. Quite a few of our users use them. Hopefully, they’re all taking advantage of that feature. 🙂

Reply

I use Siteground, and I love them – however, their staging site feature does not work with https (SSL version) websites. I’ve found that very frustrating!

Reply

@Debra

You are right. I am also very upset that We can’t use staging at SiteGround for SSL Sites 🙁

Regards

Reply
Sami Keijonen

Thanks Sean for great roundup. Staging site is one of many important things you should take care of, like auto backups.

I’ll admit that I’m guilty as charged for not having staging site. For me it’s basically money issue. My site is running on HHVM/nginx with SSL but I’m not allowed to install new installs of WP in the same server environment. I could install WP in other environment but testing would be pretty much useless. All that said, I don’t mind if my host will provide staging site at some point:)

Reply

I’ll admit that I haven’t always had a staging site either. In fact, I don’t have a staging site specific to any of my main sites. But of course, we don’t always need them if we know how to troubleshoot issues.

I have 5 local WordPress installs which are pretty much generic staging sites for any site I will ever work on. They cover general WordPress, EDD, my commercial WordPress framework, my released WordPress plugins, and WordPress trunk (for testing and contributing). Very rarely do I need a full, exact duplicate of a site.

For non-developers, though, it’s definitely important and a must-have. Thanks for reading and commenting, Sami!

Reply

Very interesting post Sean, I have to say I have never used it and I should really the work on do
on sites and setting them up, maybe I need to change the way I think moving foreword.

Thanks

Reply

It’s one of those things that you may now realize is important until you need it. But I promise it’s better to create beforehand. Definitely worth adding to your workflow.

Reply

Hi,
Nice post on staging sites, I work with accounting software but the principle is the same we have two staging databases, one being a development database for our internal development, the second a live UAT (User Acceptance Testing) website where our Customers can test the new functionality before going live, that way they have to sign off and take ownership before taking changes live.

I use WordPress for my websites, a while ago I found “Instant WP” which enabled me to have a fully functional local WordPress without having to Install any software, as it has a full environment in the folder, I am not affiliated to Instant WP, it is just free to download and great to use for an off-line staging database

http://www.instantwp.com/

David

Reply

That’s pretty cool, David. Never heard of it before. I’m a Mac user so I can’t try it out but looks like a nice resource for Windows users.

Thanks for reading and commenting!

Reply

Staging sites are really important, but it can be difficult and time-consuming to set them up. A great tool for quickly and easily creating a staging site is WP Stagecoach: https://wpstagecoach.com. You can create a staging site with one click, and even import your changes back to your live site.

Reply

Looks like a great resource!

Reply
Byron Watts

My staging site is throwing an error saying that admin-ajax.php is being blocked.

When I remove everything and add only EDD back in, the message comes back.

Any thoughts on how to fix my staging site?

I’ve removed .htaccess also, so I don’t believe that contributes anything to the mix.

Reply

Do you have any type of security plugins installed? If so, deactivate them. See if that gets rid of the error.

Reply
Byron Watts

As I mentioned, I removed everything. With only EDD installed (and no .htaccess), I see the message.

Since it’s my staging site, I’m not desperate to solve the problem….but I’m very confused about what could be blocking it.

I tried reinstalling WordPress also.

Byron

Reply

Thanks for the information, Byron. Forgive me, I didn’t know what you meant by “removed everything” so I needed to be sure. I understand it’s a staging site but it’s still worth looking into. Feel free to open up a support ticket and we can go from there. https://easydigitaldownloads.com/support/forum/basic/

Reply

I think I figured it out.

I was doing another test on a different staging site…which has exactly the same problem.

The significant difference for these two sites is, …drum roll please… neither of them has a registered domain.

I’m using a private domain name and private DNS (localhosts file) to access the EDD site.

So, my guess is that EDD is unable to access my site using the domain name…which makes perfect sense.

Sorry for the noise. I wonder if this is something that EDD might want to take into account?

Byron

Great article many thanks. I use EDD plus the licensing extension running on wpengine (which has superb staging as you describe). Challenge I have is that live purchases continue on the live site whilst I am working on the staging site, and therefore I can’t move staging to live because it will over-write sales and licenses. Is there a workaround / solution for this please?

Reply

Hi, Ben. I wouldn’t say that’s a problem. I know that many users like to try to move things from staging to live but I do not think that’s the best way to do things. Perhaps I shouldn’t really refer to it as a staging site then, it’s more of a testing site for me.

What I mean is that every thing you do on my test site is done in a theme, plugin, or code snippet. It stays packaged and organized. I use the testing site just to implement it and test. Once it’s approved, I implement it on the live site. I don’t ever transfer data directly from my test site to my live site… ever.

The only time I would even consider doing that is if maybe a plugin or theme allows me to export settings and then I can import them to the live site. But I certainly would be transferring posts, pages, downloads, etc. from the test site to the live site. Only live to test.

Reply

Many thanks Sean. It sounds as if I need to do everything twice then… update all plugins etc on the staging site to test, and then if all seems OK, repeat the same on the live site.

Reply

Exactly. It’s definitely double work but if it’s done on a daily basis, it should only be a plugin or two at a time… which is best. A lot of people go weeks between bulk updates which is a recipe for disaster if something breaks. Definitely worth the extra work in my opinion!

Reply

Hi Sean. Thanks for this great article. I can’t agree more in regards to staging sites.
As we all know how important a regular backup of our files is using staging sites is at least that important! I work a lot with shopping carts and customers asking for uncounted ‘extras’, meaning custom coding. Because I do a backup with professional software of all my customers sites once a month it’s super easy to clone/migrate to a staging site. This way I ensure to have the latest version of the live site.
After finish coding and testing all I have to do is copy the edited files. Done. All together a 10 minute process, which is worth it. Live editing – and screwing up things – is more time consuming and nerve wrecking than follow these simple steps to create a staging site. Been there, done that…:-)

Again, great article! Looking forward to read more from you.

Reply

“Live editing – and screwing up things – is more time consuming and nerve wrecking than follow these simple steps to create a staging site.”

Bingo! I couldn’t agree more. Thanks for reading and I appreciate the comment.

Reply
Ralf

Hi,
what does a staging site mean from COPYRIGHT PERSPECTIVE?
Do I need additional licences for payed plugins if generating a staging site – how to handle this for edd?
Best regards,
Ralf

Reply

Hi Ralf,

No, you do not need additional license keys.

Reply
Leah

Thanks for the article. Just wondering what a staging site does in terms of duplicate content from an SEO perspective? Or have I missed something…?

Reply

Hi, Leah. Couple of things here…

First, please note that you do not have to have an exact clone of data for a staging site to be effective. While a database clone is the most thorough, it’s not necessary. That means you do not have to match the content of posts and pages on your staging site. It’s more about matching functionality. So duplicate content is not an issue in that case.

Secondly, WordPress has an option to prevent search engine from indexing content. Always do that on your staging site if it’s live (I stage my site locally instead of putting them online). Go to Settings -> Reading in your WordPress dashboard and you will see the “Search Engine Visibility” option.

Reply

Great article. WordPress has some kooky ways of handling databases so having a web host that understands WordPress is a huge advantage. Good suggestions by Morgan & David too.

Reply

Yes indeed! A web host that understands WordPress is key. It took me a couple of years to realize this but I agree 100%.

Reply

Great article! We’ve been using staging sites for most of our WordPress works lately but your article really covers some grey areas. Thanks for sharing it. I’ve learnt quite some new facts.

Reply

No problem at all. Thanks for reading and commenting!

Reply
Abesh Thakur

Hi,

Thanks for the brilliant article. I have been guilty of not updating to the latest version of everything primarily because I have only one main site, and couldn’t afford something going wrong with a stray update. But I did put in some time today, and cloned everything onto a staging site and copied the db too. However, I can’t really test any of the plugins. Am I suppose to re-install EDD and activate it again? (My clone took care of the copy/paste of themes and other plugins), but while the site is working I can’t make any test purchases or anything. Anyone have any clue if I’m making some obvious blunder?

But thanks again for such a helpful post Sean!

Cheers
Abesh

Reply

Hi, Abesh!

What do you mean when you say you can’t make any test purchases?

Even if your clone copied things over for you, there’s absolutely nothing wrong with you deleting plugins and reinstalling them yourself. If something isn’t working properly, troubleshoot it freely… that’s what makes having a staging site so great. It doesn’t have to be an exact clone.

Reply
Abesh Thakur

Hi Sean,

I mean the EDD plugins aren’t working as they are supposed to. Case in point, when I do make a purchase, it tells me that there is an issue with the Paypal email address. It’s weird because I actually have a stripe configuration in place (And I was simulating a free purchase). Which made me think if copying over the wp-content/plugins folder to my staging site might have broken something in EDD. I did make the relevant site name changes to my cloned database to make sure it was pointing to the new site (which it is, because I can see my old products and licenses as on the live site, which is great).

I just bought the manual purchases EDD plugin as well, and when I try to attribute a purchase it just shows a blank page, and the Payment history shows a ‘pending’ status.

However, short of opening a full blown support ticket, just wanted to know if you think copying over the content in my live site to my new site could have broken something internally? I tried deactivating licenses of all my plugins as well as kept them on with no difference.

Thanks again!

Abesh

Reply

Absolutely it can cause issues. Just delete (not deactivate) the plugins and reinstall them fresh if they’re not behaving correctly.

Reply
Abesh Thakur

Hey Sean,

Thanks a lot. I did do a clean re-install of everything and the staging site is proving to be a boon because I can tear it apart and put it back together without touching any of the production processes. Great stuff!

An automated and accurate platform, ever a subject of gratefulness to EDD for their pretty efficient adds-on! Hiccups that are an anytime attacker in many stages on eCommerce need to be smartly handled so far. Staging sites have no other option but to follow!!!

Reply

We created a free plugin for building WordPres staging sites very easily:
https://wordpress.org/plugins/wp-staging/ Our intention was to give our customers a tool to create a staging site without hassle so that they are able to test all plugin updates in advance before installing them on their production sites.
Hope it’s useful for the one or other here.

Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

If you need assistance, please open a support ticket.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Error: Please enter a valid email address

Error: Invalid email

Error: Please enter your first name

Error: Please enter your last name

Error: Please enter a username

Error: Please enter a password

Error: Please confirm your password

Error: Password and password confirmation do not match