Why websites are more like jalopies than juicers–and why regular maintenance of your CMS is important
As a wedding present, someone gave me and my wife a juicer — one that her mother gave her. It’s nearing a hundred years old. And you know what? You put a lemon in that thing, press down, and juice comes rolling out. It’s 2 pieces of metal and a bolt for them to rotate on. It still works almost one hundred years after it was made.
Sometimes I hear people talk about their website like it’s my fine juicer — always doing the same thing, reliably, never needing upkeep, just functioning. Realistically, websites are more like my family’s old jalopy — which was certainly not handed down to me because it died.
While you can keep up your website for a long time, it’s work to keep it in good shape — it needs maintenance, focus, and attention. And like a jalopy, the better you maintain it, the better it will perform and the longer it will last.
Because websites can seem more like juicers than jalopies, I wrote this article to explain why they are not, and why it’s important to perform general maintenance on your website. In this article, I’m going to explain the why and how of maintaining WordPress sites.
Why maintenance is important
WordPress is the most popular CMS on the planet. This means that thousands of people looking for vulnerabilities to exploit it. To give you an idea of the kinds of targets that exist for people finding those exploits, here are some websites that run WordPress:
Your website’s CMS has evolved to protect itself in the form of people working to fix vulnerabilities and releasing updates to keep your website safe. Here’s a link to the list of security updates for WordPress — it averages several updates a year. Keeping your website’s CMS safe and functioning is a race between the people looking to do you harm, and the people looking to protect you. If you don’t apply those updates, the wrong kind of people get into the lead.
Unlike jalopies, websites solve many problems and each problem can potentially have multiple solutions. Few websites are used the same way they roll off the lot from WordPress. To serve your business’ specific needs, people develop custom themes, add and configure plugins and adjust settings.
Because of this, very few websites are actually the same, and very few remain in a stable state. All of the plugins, themes, and unique settings are usually necessary, but they can come into conflict with each other. At the time of this writing wordpress.org has 55,089 plugins. Sometimes WordPress makes an update and given the scale of plugins, it’s difficult to insure that updating wordpress will not negatively impact one of those other 55,089 plugins that you might be running. Indeed, it does happen that these updates end up breaking another plugin running together on your site. WordPress does have plans and communication in place to help prevent this, but it still happens.
What this means, is that any plugin or WordPress update has the ability to bring down your site. I’m going to say that again but a little louder:
Any plugin or WordPress update has the ability to bring down your entire site.
This is why performing routine maintenance on your CMS is so important. With a solid process, a developer can prevent the majority of those breakages before they happen on your live site.
How maintenance works
When working on a car, you take it off the road and put it in a garage. The same goes for with a website; you need a safe place to do your maintenance so your website doesn’t come crashing down.
So what do we do to prevent the site from going down? Here are the steps I take to prevent updates from breaking sites:
- Content freeze
We let everyone on your team know that we’re doing maintenance on the site and not to make any changes or go mucking about. Unless something goes wrong, they can get back to work in about an hour. This will prevent you from possibly losing updates if something does go wrong and we need to restore from a backup.
We backup your code in Git.
We backup your database.
We backup your uploaded media (photos, pdfs, video etc).
We make a staging copy of your site. This is your “garage” and where we’ll safely work on the site.
- Update and Verify
We update all the plugins.
We check to make sure all mission critical features work (like checkout on a store, contact forms, etc).
If something is broken, we revert to your backup and do updates one at a time so that we can figure out which plugin or theme update broke your site.
- Fix anything that broke
While 9 out of 10 times this doesn’t happen, when it does, you’ll be happy we did your updates on a staging site.
- Deploy updates in production
Once we’ve verified that your site works in the testing/staging environment, we make the updates on the production site.
- Fix anything that broke … again
While 99 out of 100 times this doesn’t happen, sometimes differences between production and testing cause something to break. We never just assume that if it worked on staging, it will work on production. Always check.
- We let everyone know the site has been updated. Breathe. Relax a little.
Does it really need to be that complicated?
How important is it to do updates in the safest way possible?
The answer is directly related to how important it is that your site not go down. Let me ask you a few questions about your site:
- Does it drive a lot of traffic for your business?
- Is it your main point of contact with your audience?
- It is literally your business like an online app or a store?
- Do you know where your site credentials are?
- Do you know who provides hosting?
- Do you know who you purchased your domain name with?
- If your site went down right now, do you know what your next step is?
If you’re in the “It’s okay if this site goes down sometimes” boat, then you can probably hit that update button and roll the dice; but if you can think of concrete business reasons why your site going down is a real problem, then the above steps above will help prevent your site from having downtime.
Well jeez, that sounds like a lot
Even if you’re technically inclined, it’s still work. When something breaks, if you don’t have time set aside for fixes — and have a clear path to a fix — it can be stressful.
Here is what I tell myself when something breaks:
- Don’t feel bad! It was never if it would break, it was when it would break.
- Other people are having the exact same issue… and they’re talking about it on the Internet.
- Support teams at your hosting company can usually help (especially if you’re very nice to them).
- This is literally my job, so it’s fine that I’m doing this.
That last one is what leads to the greatest reduction in downtime — it keeps me calm, which keeps any support people I talk to calm, and gets us to a solution as fast as possible. When I encounter problems doing updates, I’ve made sure that I’ve taken steps to prevent the most catastrophic outcomes.
If your website is a priority for your business, a person (or team) needs to have the job of keeping it healthy.
Whether someone on your team is tasked with performing routine maintenance, or you hire an external developer, you always want human beings whose job it is to keep your business priorities healthy.
And — real talk — it should be a business priority. You wouldn’t want someone walking into your business with no one to greet them. The same goes for your website.