You NEVER want to test changes on your live site
If you are doing anything other than content management on your live site, you are asking for trouble. The reason is that guy “Murphy” who has that law everyone is always talking about and that no one prepares for:
Anything that can go wrong, will go wrong
When you are talking about the face of your company, the one place that people can rely on going to in order to find you and your information, when it goes wrong you are turning away business. Its a simple fact of life in the age we live in. If it’s not 100% and its not fast, then someone will turn around and walk away. (This is why we are redesigning our site right now).
Things that you should never do for the first time on your live site:
- upgrades to your site’s software
- changes to styles
- functionality changes
- plugin upgrades
- or anything that is not “content management”
You never want to try changes on your live site first
Seriously, don’t do it.
It’s not worth it.
If you break your live site, or even just mess something up, you start losing business and you potentially open yourself up for disaster (hacking, showing the wrong info, etc). You don’t want that, and neither do your customers.
Typically, we discuss the merits of having a development site with our customers, because it makes our lives and their lives easier when we work on the site. For our process at Spotted Koi, we make all functional or style changes on our customer’s development site. Then once we have our customer’s approval, we will move the change to the live site. This seems like double duty, and for a small portion of the work it is. However, we are able to keep all of the troubleshooting steps and things that look funny off our customer’s live site until the changes are completed.
Upgrades are never seamless
For the most part, good software will upgrade very well. But, even great software like WordPress has its problems. It’s not WordPress’ fault, in fact it is typically the plugins you are using on your site. No matter what plugin developers do, they cannot always predict what the final package of a new WordPress version will do without putting together a beta version and testing. Many developers don’t have the time for this and typically do what they can once the version comes out to catch their plugin up with the software.
For homegrown software, performing upgrades is much less seamless than with community driven software like WordPress. Sometimes, you just don’t know what an upgrade will do and sometimes it can be catastrophic.
We like our upgrades to happen in the safety of a development server “sandbox”. We get the freedom to fix whatever problems could pop up with the upgrade, without having to worry about taking down our customer’s live server. It is truly magical and its a breath of fresh air, compared to the all out freak out that happens when something goes wrong.
—-
Update:
We actually wrote two articles on how to hide your dev site from visitors and search engines over at WP-Relief:

