If you only need one recommendation: UpdraftPlus or WPvivid for ongoing scheduled backups with offsite storage and one-click restore, and Duplicator or All-in-One WP Migration when you're moving or cloning a site rather than protecting it on an ongoing basis — they solve different problems, and using a migration tool as your only backup (or vice versa) is the single most common mistake we see. The rest of this guide covers what actually distinguishes them, what to check before trusting any of them on your specific hosting setup, and links to the exact fixes for the failures we've documented on each.
Scheduled backup vs. migration tool — these are not interchangeable
- Scheduled backup plugins (UpdraftPlus, WPvivid) run automatically on a schedule, store copies offsite (Google Drive, Dropbox, S3, or their own cloud), and are built to restore a site back to a previous point in time — including partial restores of just the database or just the files.
- Migration/export tools (Duplicator, All-in-One WP Migration) are built to package a site once and move it somewhere else — a new host, a staging copy, a local development environment. They don't run on a schedule and aren't designed as your disaster-recovery plan.
If your scheduled backups are actually a migration tool you set up once and never touch again, you likely don't have a real recovery point for last week's problem — you have a snapshot of the day you installed it.
The backup and migration plugins we've tested
UpdraftPlus
The most widely installed scheduled backup plugin, and for good reason: reliable offsite storage integrations, incremental backups on the paid tier, and a restore process that handles both full-site and selective (database-only, files-only) restores. The free version covers most small sites well. Watch for the database import stage failing with an oversized .sql file on restrictive hosts — see the packet-size fix below once that guide is published.
WPvivid
A strong free alternative to UpdraftPlus with a very similar feature set — scheduled backups, offsite storage, staging site creation, and a migration mode. We've documented its restore-stuck failure modes in detail (below) because they're common enough on shared and budget VPS hosting to be worth knowing before you need them, not after.
Duplicator
The standard tool for packaging an entire WordPress site (files plus database) into a single installer for moving to a new host or domain, or cloning to a staging environment. It is not a scheduled backup tool — there's no automatic recurring run — so don't rely on it as your only safety net between migrations.
All-in-One WP Migration
Similar purpose to Duplicator with a different packaging format and its own quirks, most notably around Find & Replace not catching every instance of an old domain during import. Good for one-off migrations, particularly when you're moving between very different hosting environments.
What actually determines whether a restore will work
The plugin you pick matters less than whether your hosting environment can actually run a restore when you need one — this is the part generic plugin roundups skip, and it's where most real-world failures come from:
- PHP memory_limit and max_execution_time. A restore has to decompress a zip, write potentially thousands of files, and import a full database dump in one request cycle. Default shared-hosting limits (often 128M / 30–60s) are routinely too low for anything beyond a small site, regardless of which plugin you use.
- Available disk space. A restore temporarily needs room for the zip, the fully extracted files, and the site being replaced — sometimes 2–3x the backup's size, even briefly.
- Database connection permissions. Some hosts restrict direct MySQL connections from PHP for security, which affects how a plugin's database import stage behaves — this is specific to your hosting control panel (aaPanel, cPanel, Plesk all handle it differently), not the plugin.
If you're on aaPanel specifically, check your PHP settings under the PHP tab in your site's configuration before you ever need a restore under pressure — raising memory_limit and max_execution_time there takes under a minute and has already prevented most of the stuck-restore cases we've traced.
Common backup plugin problems (and where to fix them)
- WPvivid Restore Stuck or Failed — the four real causes behind a restore that stalls or fails partway through, and the fix for each.
- Duplicator Package Stuck at 'Building' or Host Build Interrupt — what to check in order: database export mode, ZipArchive, then PHP limits.
- All-in-One WP Migration Didn't Replace All Your URLs — the manual Find & Replace cleanup for URLs the import missed.
- Your WordPress Backups Might Not Be Running — how to verify your last real backup actually happened, and fix wp-cron if it hasn't.
FAQ
Do I need both a scheduled backup plugin and a migration plugin?
If you ever move, clone, or migrate the site — yes. They solve different problems: a scheduled backup plugin protects you against something breaking on the live site, while a migration tool is what you'd reach for to move to new hosting or spin up a staging copy. Most sites end up with one of each installed, used for entirely different tasks.
Is a free backup plugin actually enough, or do I need the paid version?
For most small-to-medium sites, the free tier of UpdraftPlus or WPvivid covers the essentials: scheduled backups, offsite storage, and full-site restore. The paid tiers mostly add incremental backups (faster, smaller subsequent backups) and priority support — worth it once your site is large enough that full backups take a long time, not before.
How often should I actually test a restore, not just take backups?
At minimum, test one full restore to a staging environment when you first set up backups, and again after any major hosting migration — a backup you've never restored from is an assumption, not a safety net. If your host supports one-click staging, this takes a few minutes and costs nothing to verify.
