Skip to content
WP security & maintenance

WordPress Backup Strategy: 3-2-1 for Small Business Sites

The 3-2-1 backup rule applied to WordPress for small business sites, the plugins and tools that automate it, and why most backup plugins are not real backups.

By WitsCode9 min read
WP security & maintenance

The WordPress backup mistake that kills small businesses is treating the existence of a backup file as proof that the site is recoverable. A folder full of zip files is not a recovery plan. It is a hope. We have watched a half dozen owners discover this in the worst possible way, on the phone, the morning after a hack or a botched plugin update, when the file they had been quietly trusting for two years turned out to be corrupt, incomplete, or sitting on the same server that just died.

This article is about the gap between having a backup and being able to restore one. The contrarian core is this: a backup you have never restored is not a backup, it is a guess. The 3-2-1 rule, which IT departments have used for decades, fixes the structural half of the problem. A restore-test habit fixes the other half. A site running both has a real WordPress backup strategy. A site running neither has a comfortable feeling and nothing else.

What the 3-2-1 rule actually means

The 3-2-1 rule is one sentence. Keep three copies of your data, on two different types of storage, with at least one copy stored offsite. It predates WordPress by years and it survives because it answers the three questions that matter when something goes wrong, before you know which thing has gone wrong.

Three copies covers the case where one copy is silently broken. Backup files corrupt more often than people expect. A transfer cuts off halfway, a disk develops a bad sector, a plugin writes an archive while the database is mid-write. If the broken copy is your only copy, you find out at the moment you need it. If you have three, the odds that all three failed the same way are small enough to sleep on.

Two types of storage covers the case where one storage medium fails as a category. A copy on your hosting account and a copy on a hard drive at the office are two media. Two copies in two folders on the same hosting account are not. The point of separate media is that a failure mode which destroys one type, a hosting suspension, a ransomware infection that encrypts a connected drive, does not reach the other.

One copy offsite covers the case where the building, the hosting provider, or the account itself disappears. Offsite means a different physical location and a different administrative control. A copy in cloud storage you log into with separate credentials counts. A copy in a second folder owned by the same hosting login does not, because the event that takes down the account, a billing lapse or a compromised password, takes the backup with it.

The same-server backup is the most common failure

Most WordPress owners already break the rule in the same place. They install a backup plugin, leave it on the default setting, and the plugin writes its archives into a folder inside the WordPress installation itself. The backup now lives on the same server as the site it is supposed to rescue.

This feels fine right up until it does not. The whole reason you reach for a backup is that something happened to the server. The host suspended the account over a malware flag. A disk failed. An attacker got in and started deleting files, and the backup folder is just another folder they can delete. A same-server backup survives exactly one category of disaster, the one where you broke the site yourself with a bad edit and the server is otherwise healthy. For every other scenario, the backup dies with the thing it was meant to save.

This is why the offsite copy is not optional and not advanced. It is the part of the rule that does real work. A backup that is not somewhere else is not a backup against the disasters that actually take small business sites offline.

Why most backup plugins are not actually backups

Walk into the WordPress plugin directory and search for backup and you get hundreds of results. Many of them are genuinely good. The problem is not the plugins. The problem is what people mean when they say a plugin is handling it.

A backup plugin, on its default configuration, usually does one thing well, which is producing an archive. What it frequently does not do without deliberate setup is send that archive offsite, verify the archive is complete and readable, retain a sensible history rather than overwriting the same file, and back up on a schedule that matches how often the site actually changes. An archive sitting in wp-content with no offsite destination, no integrity check, and a one-slot retention that overwrites itself nightly is a plugin doing its job and a backup strategy that does not exist.

There is a second trap. Some of what gets called a backup is really a sync or a snapshot, and the distinction matters under pressure. A sync mirrors the current state, so if the site is hacked and you sync, you have faithfully mirrored the hacked site. A snapshot at the hosting layer is fast but lives with the host, which fails the offsite test, and host snapshots are often kept only a few days. A real backup is a point-in-time copy you can reach into from outside, pick a date, and restore in isolation. When you evaluate any tool, the question is not does it back up. It is can I, from a separate location, retrieve last Tuesday's version and stand it up somewhere.

UpdraftPlus, BlogVault, and Jetpack VaultPress compared

Three tools come up constantly for small business WordPress sites, and they sit at different points on the same spectrum.

UpdraftPlus is the workhorse of the free tier and the one most small sites already have. Its real strength is that it makes the offsite copy easy. You connect it to Google Drive, Dropbox, Amazon S3, or other destinations, and it pushes archives there on a schedule. That alone moves a site from broken to acceptable. The paid version adds incremental backups and a one-click migration restore. The honest caveat is that UpdraftPlus runs inside WordPress, so a backup can only run when the site can run, and a large site on weak hosting can have backup jobs that time out and quietly half-complete. Configured properly, with an offsite destination and a verified schedule, it is a sound choice for the budget-conscious.

BlogVault runs the backup off your server entirely. It pulls a copy to its own infrastructure, stores it there, keeps a real retention history, and gives you a staging environment and a restore that runs from BlogVault's side rather than depending on your site being healthy. Because it is not executing inside your WordPress, a hacked, suspended, or crashed site does not stop you reaching a clean copy from before the incident. For a small business that cannot afford downtime, the independent storage and the off-server restore are the features worth paying for.

Jetpack VaultPress, the backup tier of Jetpack, is the most hands-off of the three. Backups are real-time on the higher plans, meaning every change and every order is captured as it happens, storage is on Automattic's infrastructure, and restore is a one-click activity log entry. The tradeoff is that it ties the site to the Jetpack ecosystem and a recurring subscription, and the real-time capture is most valuable where losing an hour of data has a dollar cost, a store or a booking site, more than for a brochure site that changes monthly.

The pattern across all three is the same. None of them is a real backup until the offsite destination is configured and a restore has actually been run. The tool sets the ceiling; your setup decides whether you reach it.

The restore test is the discipline that makes it real

Here is the part almost everyone skips, and the part that separates a strategy from a folder of files. You have to restore a backup, on purpose, while nothing is wrong.

Pick the most recent archive. Stand it up on a staging site or a local environment. Walk the result. Does the home page load. Are the images there or are they broken links pointing at a path that no longer exists. Does the database actually contain last week's posts and orders, or did the export quietly stop at a memory limit. Can you log in. A backup that passes this walk is a backup. A backup that has never been through it is a file you are choosing to trust.

The reason this matters is that backup failures are silent by design. A backup job reports success when it finishes writing a file. It does not, on its own, know whether that file is complete, whether the database dump was truncated, or whether the offsite upload dropped the last few megabytes. The only thing that surfaces those failures is an actual restore. If the first restore you ever attempt is the emergency one, you are debugging your backup system and recovering your business at the same time.

A workable cadence for a small business site is a full restore test once a quarter, and an extra one immediately after any major change, a host migration, a big plugin overhaul, a PHP version jump. It takes an hour. That hour, spread across a year, is the entire difference between a recovery that takes twenty minutes and a recovery that does not happen.

Putting a small business backup strategy together

For a typical small business WordPress site, 3-2-1 turns into something concrete and unremarkable. Copy one is a backup plugin or service taking a scheduled archive, daily for most sites, real-time for stores. Copy two is that archive sent automatically to cloud storage, Google Drive, Dropbox, S3, or the provider's own storage, which gives you a second medium and the offsite copy in one move. Copy three is a periodic pull down to a drive or a machine that is not connected to the site, which protects against an attacker or a billing problem reaching everything in the cloud chain at once. Retention should hold at least thirty days of history, because malware often sits quietly for a week or two before it acts, and a backup taken after the infection is just a clean copy of an infected site. And the whole arrangement gets a restore test every quarter.

That is the entire WordPress backup strategy. It is not clever and it is not expensive. It is a rule from the 1990s, a plugin most sites already own, and an hour every three months that almost no one spends.

Where WitsCode fits

We run this for clients because the failure point is rarely the tooling and almost always the follow-through. The plugin gets installed during the build and nobody confirms the offsite destination is still connected a year later. The restore test is on everyone's list and on nobody's calendar.

WitsCode's managed backup and tested-restore retainer closes that gap. We configure 3-2-1 properly for your site, daily or real-time depending on what the site does, with offsite storage under separate credentials and thirty-day-plus retention. Then we actually run the restore tests, quarterly and after any major change, on staging, and send you a short written confirmation that the backup recovers a working site. If something goes wrong, recovery is a task we have rehearsed rather than a problem we are meeting for the first time. If you would rather not be the person discovering on the phone one morning that the file you trusted does not restore, that is the work we take off your desk.

Get weekly field notes.

Practical writing on shipping products, straight to your inbox. No spam.

Need help with this?

WordPress Development

We design and build web apps, MVPs, and SaaS products. Talk to us about what you are working on.

Talk to us

Want to discuss wp security & maintenance for your business?

Start a project and we'll talk through where you are, what's working, and the highest-leverage moves for the next 90 days.