Backup Plugin Battle: Which is the Best WordPress Backup Plugin in 2022?

By Mike Davey, Senior Editor

Backing up your site is a little like buying fire insurance. You never need it outside of a catastrophe, but not having it is just going to make the catastrophe worse.

In this article, we’ll cover why you need to keep backups, whether or not a plugin is the best choice for backups, and we’ll look at some of the best WordPress backup plugins available today.

Table of Contents

  1. Why Do We Need Backups?
  2. Is a Plugin Your Best Option?
  3. What to Look For in a WordPress Backup Plugin
  4. Backup Plugins Reviewed and Compared
    1. UpdraftPlus
    2. BackWPup
    3. Duplicator
    4. BlogVault
    5. Jetpack Backup/VaultPress
    6. BackupBuddy
  5. Results
  6. Wrapping Up

Why Do We Need Backups?

There are many reasons why you might need a backup of your WordPress site, but they all fit into four categories: human error, malicious activity, updates, and chaos.

  • Human error: Most of us have accidentally deleted files or made changes that we immediately regretted (or had someone else make them when we weren’t watching).
  • Malicious activity includes hackers, viruses, and malware.
  • Plugin or theme updates can sometimes cause unexpected site issues. The ability to quickly restore from a previous backup is handy.
  • Chaos in this sense is any unpredictable event outside of your control, for example fire destroying the server where your site is hosted.

Good processes and security practices can guard against most of these occurrences, but making regular backups and storing them in at least two locations is still your best last line of defense in case of catastrophic failure.

Is a Plugin Your Best Option?

There’s no one-size-fits-all answer to this question. The best backup solution for your WordPress website depends on the nature of your site and the backup options you have available from your web host.

WordPress backup plugins have some advantages. If you’re familiar with WordPress, you’re familiar with plugins, so installing and configuring them likely won’t present you with any challenges. Many entries in the field have long track records and positive reviews. Some of them offer free versions, so you can try different options until you find one that works for you.

However, problems with your WordPress site can result in failed backups when you’re depending on a plugin. This may not be catastrophic if the plugin offers real-time backups, but it can result in data loss if you have a busy site that’s only backed up once per day, for example. Backup plugins are not nearly as efficient as server-side tools, so they put additional load on your server and can slow down your site(s).

We recommend some simple scripts to automate remote backups over any snapshot backup plugin solution, because it’s efficient, easy to set up, and can store backups on a number of well-known cloud storage services. If you don’t want to mess with scripts, you could spin up your next server with SpinupWP and enjoy a very similar backup solution without any scripting.

If you aren’t able to install scripts on your server and you don’t have confidence in your host’s backup solution, then a backup plugin is a good option.

What to Look For in a WordPress Backup Plugin

Figuring out which is the best backup plugin is a personal endeavor. What’s “best” for your unique situation might be someone else’s “worst.” We’ve assembled a list of guideposts below to help you figure out which plugin is right for you.

Types of Backups: Full vs Incremental?

Full backups (also known as “snapshots”) are exactly what they sound like: a complete copy of your site. You certainly need at least one of these, but full backups have disadvantages as a regular backup strategy. Not only are they time-consuming to run and hard on server resources, multiple copies of a full backup will eat up a lot of storage space.

Incremental backups get around this disadvantage by only backing up changes to your data. Incremental backups typically work by backing up any changed data on a fixed schedule. Real-time backups are a subset of incremental backups that work by monitoring the site and backing up changes as they occur.

Typically, incremental backups only backup data that’s changed since the last backup of any kind, including other incremental backups.

Check to see exactly how and when the plugin allows you to create backups. Some only create full backups that are complete snapshots of the site, including all themes, plugins, and the database. Others also offer incremental backups.

In terms of when the plugin allows you to create backups, some only allow manual backups to be created when requested by a user. Others let you create backup schedules that run automatically on a regular basis. Some even allow real-time backups to be made immediately whenever your site changes.

Real-time backups have the advantage of ensuring you never have any gaps in your backed-up data. They tend to be a bit more expensive, but they can be a life saver for sites that record large numbers of transactions every hour, such as busy ecommerce sites.

Maintenance and Support

Plugins that are well-maintained and supported are less likely to break with future WordPress updates. Plugins that haven’t been updated in a long time may introduce security vulnerabilities. Security holes that were patched long ago in most products may still be lurking in plugins that aren’t updated often.

You should also check to see how much support you can expect to receive from the plugin’s vendor. Their help docs are a good starting point, but you should also look at how easily they can be contacted for help, and what their response times are.

You can also take a few minutes and look into the user community. An active user community can often help with ad-hoc support requests, even if you’re using the free version of a paid plugin. Plus, a vibrant community often indicates that the plugin is maintained and updated regularly. People rarely chit-chat about dead plugins.


There’s more to security than just making sure the plugin is updated. Where the backups are stored can be vital. You should also find out who has access to your backups.

WordPress backup plugins are also variable in the encryption options they offer. Best-practice security calls for encrypting your backup files, even if you’re not backing up sensitive information. Any weak point in your security is a potential avenue of attack. The importance of encrypting your backup rises if your backup files have any obviously sensitive data, such as customer information.


Take some time to look at what the restore process is like. It’s a good idea to go a bit deeper than the official documentation, although that should be your starting point. This is an area where reviews and the user community can help out. You’ll be able to see what problems other users ran into, and how they overcame them (or failed to).

In general, you want a plugin that allows you to both test and execute restores quickly and easily. Most plugins allow you to complete restores through the WordPress admin or via SFTP/SSH. Some also offer dashboards or separate tools that allow you to run restores when your site is inaccessible.


This isn’t so much a matter of the most functionality, as it is of the right functionality. There’s no reason to pay for bells and whistles you won’t use. This can make a difference even if you only intend to use the free version. You might see a need to upgrade to the premium version later on, but find that it’s got a high price point because it’s packed with functionality you’ll never use.

Backup Plugins Reviewed and Compared

This section includes reviews and test results of some of the best WordPress backup plugins currently available. We’ll look at how to configure each backup plugin, but we’re not going to cover basic plugin installation instructions unless there’s something unusual.

For testing purposes, I’m using a site hosted on DigitalOcean and managed via SpinupWP. The total size of my WordPress installation is 531.60 MB. The site has 156 MB of files and a 365 KB database.

Unless I mention otherwise, you can assume I’m hosting any remote backups on Amazon S3. I’m using Standard class storage, but you likely don’t want to do this for your backups as the cost may soon become prohibitive. If you’re storing your backups on Amazon S3, I’d recommend using the Infrequent Access storage, or looking into Intelligent Tiering. With that said, if you’re running a busy site, you might want to go with the Standard class or a similar offering from another cloud storage provider. You’ll pay more for faster storage, but it might be worth it to minimize your downtime.

A final note before we dive into the reviews. Throughout this article, I’m rolling out restores directly to my production site. I do not recommend doing this with your sites. This is just a site we use for testing. It wouldn’t be a big loss if the entire thing disappeared or became non-functional. If the site matters at all, you should always test restores on a staging site first.

The chart below summarizes the capabilities of the backup plugins reviewed in this article. The inclusion of 💰 indicates the capability carries an additional cost, either as part of the premium version or a paid addon.

UpdraftPlusBackWPupDuplicatorBlogVaultJetpack BackupBackupBuddy
Free Version
Real-time Backups
Moves Backups Offsite💰 ✅ 💰
Automated Restores💰✅ 💰💰✅ 💰
Multiple Schedules💰✅ 💰
CLI💰✅ 💰
Clone/Duplicate/Migrate💰✅ 💰
Centralized Dashboard💰✅ 💰💰✅ 💰
Multisite Support💰✅ 💰💰✅ 💰
Annual Cost, USDPremium: $70+Premium: $69+Premium: $69+$88.80+$119.40+$80+


Developer:, David Anderson Active Installations: 3 million+ Real-Time Option: No WordPress Compatibility: 3.2 or higher Price: Free version available. Premium version starts at $70 USD for the first year

The first version of the Updraft free backup plugin was released in 2010. UpdraftPlus was officially registered as a commercial enterprise in January 2013 with the launch of its first paid add-ons.

The free version of UpdraftPlus offers the option to backup to Google Drive, Amazon S3, Dropbox, DreamObjects, Openstack Swift, Rackspace Cloud, and UpdraftVault. It also allows you to backup to FTP or to an email address. The premium version expands these options with the ability to create backup files on Microsoft OneDrive and Azure, Google Cloud Storage, and Backblaze B2, as well as through SFTP, SCP, and WebDAV.

Both free and premium versions offer one-click restores and automatic backup schedules. Features only available in UpdraftPlus Premium include multisite compatibility, database encryption, advanced reporting, and support for WP-CLI. The premium version also offers the ability to perform incremental backups, which the free version does not. UpdraftPlus Premium also includes UpdraftMigrator, allowing you to clone and migrate sites.

Free support is available in the form of FAQs, a WordPress Forum, and videos. For additional support, users of the free version can purchase support packages ranging from $50 to $250. The higher end packages promise response times of 3 hours or less. Premium version customers gain access to an additional, customers-only support forum, as well as access to a support ticket system that promises an email response within 24 hours.

Testing UpdraftPlus

The first step after installation is to configure settings. During installation, UpdraftPlus adds an item under “Settings” in the Admin Menu. You can also access settings through the plugin page. The settings page gives us five tabs:

  • Backup/Restore: Shows the next scheduled backup, the last log message, existing backups, and a prominent “Backup Now” button.

  • Migrate/Clone” Only available to users of the free version if you have UpdraftClone tokens.

  • Settings: This is where you set backup frequency, choose a storage provider, and indicate which files to exclude from the backup.

  • Advanced Tools: Primarily for troubleshooting, this shows site information, as well as allowing you to import and export settings, lock settings, or wipe out the current settings and start fresh.

  • Premium/Extensions: Essentially a marketing page for UpdraftPlus Premium.

The settings page for UpdraftPlus.

I went ahead and clicked Backup Now. This opened a window with some checkboxes for backup options. The boxes for “Include your database in the backup” and “Include your files in the backup” are automatically checked. The third checkbox can’t be checked. It’s just there to tell me that I haven’t set up remote storage yet. The fourth and final checkbox defaults to unchecked, and allows you to retain the backup even if retention limits are exceeded. I left everything the way it was and clicked “Backup Now” to proceed.

Taking a new backup in UpdraftPlus.

The backup process was quick, and my UpdraftPlus settings soon updated with a message telling me the backup had succeeded. I decided to test the one-click restore feature before setting up remote storage.

Performing a one-click restore in UpdraftPlus.

UpdraftPlus lets you choose the components you want to restore, with checkboxes for plugins, themes, etc. I checked every box and clicked Next. The next screen gives you the option of excluding some of your database tables from the restore before proceeding.

UpdraftPlus allows you to exclude database tables from the backup.

The plugin shows a progress report next to the activity log throughout the restore process. Once it’s complete, click Return to UpdraftPlus configuration to exit. You can also download the log file from this screen, or expand the activity log by clicking the arrows in the top right.

A successful restore with UpdraftPlus.

Upon returning to the configuration screen, UpdraftPlus shows a new message informing me that I’ll need to delete my old directories if the backup was successful. You won’t be able to backup from the same file again if you don’t delete these now.

Setting Up Remote Storage for UpdraftPlus

Remote storage options for UpdraftPlus are on the “Settings” tab. This is also where you can set the schedule for your file and database backups, choose which files to include, and access expert settings. We’ll take a look at some of those after we’re done setting up and testing our remote storage.

The first step is to click on your chosen provider, in my case Amazon S3. The free version of UpdraftPlus is limited to uploading backups to only one provider. The premium version allows for multiple locations.

Setting up remote storage in UpdraftPlus.

UpdraftPlus prompted me for my S3 access key, secret key, and location. After filling in the appropriate fields, the plugin’s tests showed it could access and create files in my S3 bucket. The test also showed that the communication with Amazon S3 was encrypted, so I saved the settings and returned to the “Backup/Restore” tab. I made another backup, running through the exact same procedure as before. The previously disabled checkbox warning me that storage wasn’t configured had become enabled, checked by default, and I could now choose to uncheck it to keep my backup on the server.

The backup took about three minutes to complete. UpdraftPlus gave me the same options as before, including the ability to exclude individual database tables. The plugin took a couple of minutes to prepare the restore, but once it was ready the restore rolled out in less than a minute.

A successful remote restore with UpdraftPlus.

Scheduled Backups and Advanced Settings in UpdraftPlus

So far we’ve only tested manual backups, but we definitely want our backups to run on a fixed schedule. You access the UpdraftPlus schedule via the “Settings” tab. The free version of the plugin allows you to set your database and file backups on different schedules. You may retain as many backups as you wish, as long as your storage service can stand the burden.

Setting your backups for a particular time is only available in UpdraftPlus Premium. In the free version, you’re limited to choosing the interval and cannot set the exact time. If you want a daily backup of your site to take place at 3 a.m., you’d have to upgrade to the premium version. The free version also only allows for full backups of your files or database. Incremental backups are only available in the premium version.

The minimum interval you can set is “Every 2 hours” for files and “Every hour” for the database. I set the intervals at those minimums and scrolled down to the bottom of the page to click Save.

Setting backup schedules in UpdraftPlus.

As we’ve already shown, the “Settings” tab in UpdraftPlus is where you set up cloud services to host your site backups. The same tab allows you to configure which files and directories will be included in the backup, including the ability to add exclusion rules. Setting exclusion rules is done in a point-and-click visual interface, which is very user-friendly. The “Settings” tab also includes a checkbox to have basic reports sent to the site’s admin address. Premium customers have the option to set an encryption phrase.

Advanced settings in UpdraftPlus.

Located just under the email checkbox is a button to open “expert settings,” including Debug Mode, archive splitting limits, and SSL certificates.

If you can’t get into your WordPress site, you can run a manual restore. Assuming you’ve got access to your backup file, you’ll also need a fresh WordPress install to restore the site to, as UpdraftPlus doesn’t backup WordPress core files.

Pros and Cons of UpdraftPlus

UpdraftPlus is easy to set up and use, with a number of options available to configure the way backups are performed. It works with a huge number of cloud storage options, including its own remote storage service, UpdraftPlus Vault. Both backups and restores are relatively fast, and it’s hard to think of a way the restore process could be made simpler. You click a button, select what you want to restore, and click a button again.

On the downside, UpdraftPlus doesn’t offer a separate dashboard for managing and restoring your backups. If your site is broken and you can’t access your backend, you’ll have to SFTP/SSH into your server, unpack the files, and run the restore manually.


Developer: Inpsyde GmbH Active Installations: 700,000+ Real-Time Option: No WordPress Compatibility: 3.9 or higher Price: Free version available. Pro version starts at $69 USD for the first year

Designed by Daniel Hüsken, the first version of BackWPup launched in June 2009. Hüsken later went to work for WordPress agency Inpsyde, current owners of the plugin.

BackWPup Free offers complete backups of both database and files, as well as multisite support, and a database checking tool.

The free version of BackWPup allows you to configure remote storage on Amazon S3, Google Storage, Hosteurope and other S3 services, as well as Dropbox, Rackspace, and SugarSync. You can also backup via FTP. The pro version adds more storage providers, including Amazon Glacier, Google Drive, OneDrive, and HiDrive, as well as adding more backup features like encryption and differential backups of changed directories.

Support for BackWPup Free is available through the plugin’s WordPress forum. Support typically takes place for two hours on Tuesdays and Thursdays. BackWPup Pro licensees receive expanded support, allowing them to log tickets on

Testing BackWPup

Upon activation, BackWPup automatically creates a new item in the Dashboard Menu that you can use to access settings. Clicking Dashboard shows you some advice on planning and restoring backups, as well “First Steps” and “One click backup.” Scrolling down reveals some built-in training videos, a very welcome feature. The Dashboard also shows the next scheduled jobs and the most recent logs generated by the plugin.

Settings in BackWPup.

I decided to take the plunge and create a backup before running through the procedures under “First Steps.” I clicked Download database backup and within seconds it had saved a SQL file to my local machine.

Clicking on the headings under “First Steps” takes you to various pages within the plugin. “Check the installation” takes you to the “Information” tab of the “Settings” page and shows you information about the plugin and your environment. Next, I clicked on Create a job. The first step is naming the new job.

Checkboxes allow you to select options for the job, including database backup, files backup, and the installed plugins list. Two additional checkboxes allow you to export the backup file as WordPress XML and to check your database tables.

BackWPup Free gives you the option of archiving your backup as a Zip, Tar, or Tar GZip file, which you select from this page. This is also the page where you select where you would like your backup to be stored. You can select as many of these options as you like, although naturally it will take longer to offload the backup to multiple locations.

I left everything at the default configuration, except for ticking the box marked “Backup to an S3 Service,” and then clicked Save changes.

Creating a backup job in BackWPup.

The page reloaded with a note that changes to the job had been saved, and presented me with two links: one to “Jobs overview” and another to “Run now”. I went ahead and clicked Run now and naturally the plugin popped up a notice stating the destination wasn’t configured properly.

This wasn’t a surprise, considering I hadn’t done any S3 configuration at all. What was surprising was that the plugin didn’t include a helpful link to show me where to adjust the configuration, or include “Configure remote storage” in its list of first steps.

A warning in BackWPup that shows remote storage is not configured.

I went back into my job and discovered that “S3” was now unchecked again, presumably because it didn’t work. I checked it again and this time scrolled back up to the top to see if anything had changed. A new tab had appeared, labeled “To: S3 Storage.” I filled out the fields with the usual information, and clicked Save changes again.

Actually configuring the storage wasn’t difficult, but this assumes you know where and when to look. The Jobs tab is fairly long. By the time I had reached the storage options, the tabs at the top were no longer visible. There’s no particular reason for a user to scroll back up the page and there’s only a couple of items below the storage options before you get to “Save changes.”

I ran the job again, and it completed as expected, with the backup offloaded to my S3 bucket. I still got a warning, but this was expected as my debug.log file is a symlink to a file elsewhere. That accounts for the first warning, but BackWPup was showing two warnings. I ducked into the log, and it turned out the second warning was the plugin informing me that I had a warning, and therefore the job hadn’t completed properly (i.e., it couldn’t copy over the debug.log file).

Notification of a completed backup job in BackWPup.

Restoring With BackWPup

The free version of BackWPup doesn’t offer restores from the backend of WordPress. The only option is a manual restore. BackWPup’s documentation advises restoring the database with phpMyAdmin or Adminer. They recommend Filezilla to restore the files.

I restored via phpMyAdmin and Filezilla. It seemed to work perfectly, with the site continuing to function as expected.

Pros and Cons of BackWPup

BackWPup offers a lot of configuration options. This is a plus for developers and other folks who already know their way around WordPress and have some experience with setting up storage locations to store backups. Having training videos right in the plugin is also a nice touch.

Free WordPress backup plugins usually don’t offer the same features as the premium version, but I was surprised by the lack of a way to restore from the backend of WordPress. To be fair, if you’re restoring your entire site, you may not be able to access WordPress at all. You’d have to restore via SFTP/SSH in this situation regardless of the plugin you’re using. Still, there are situations where the site works but you need to run a restore anyway. The pro version of BackWPup offers one-click restores from the backend, as well as a standalone app, but these aren’t available in the free version.


Developer: Snap Creek Active Installations: 1 million+ Real-Time Option: No WordPress Compatibility: 4.0 or higher Price: Free version available. Pro version starts at $69 USD for the first year

Duplicator was launched out of Beta in early 2014. Currently developed by Snap Creek, the plugin was initially a fork of the Backup and Move Plugin created by Gaurav Aggarwal. Development has continued, with both free (Duplicator Lite) and paid versions (Duplicator Pro).

Duplicator Lite offers manual backups with no ability to set a schedule. This capability is restricted to Duplicator Pro. Duplicator takes all of the site’s WordPress files, database, plugins, themes, and content, and compresses it into a single zip file called a package. You can then use this package to restore your site if needed, or use it to migrate or clone the site. You don’t even need to run a WordPress installation, as the package produced by Duplicator contains all the site files including WordPress core.

Support for Duplicator Lite is available through the plugin’s documentation, which includes a quick start guide. Users are also encouraged to search the plugin’s WordPress forum for previously-answered questions or to submit questions themselves. Users of the free version can also submit a help ticket. Tickets from Pro users are given top priority over tickets generated by Lite users.

Testing Duplicator

Duplicator adds its own items to the Dashboard menu after activation. Clicking on Duplicator takes you directly to the “Packages” page. The other options are “Tools”, “Settings,” and “Go Pro”. “Packages” has a clean, simple layout, with a helpful link to the quick start guide.

The Packages tab in Duplicator.

I clicked Create New, which took me to “Setup”, the first of three stages Duplicator uses to build a backup file. “Setup” presents us with a field to name our backup and three expandable panels: “Storage,” “Archive”, and “Installer”. Duplicator Lite gives very limited options for storage. In fact, you can only save backups to your server. Backups to cloud storage are only available in Duplicator Pro.

Storage options in Duplicator Lite.

Clicking on “Storage Options” in the top-right opens the “Storage” tab of the “Settings” page. The plugin gives you the option of using a “Legacy Path” or a “Contents Path” for your backups. Clicking on [More Advanced Storage Options…] pops up a little ad for Duplicator Pro.

You can also disable .htaccess from here. This setting is intended for troubleshooting issues that arise when downloading the backup file.

Adjusting storage settings in Duplicator.

The “Archive” panel has two tabs: “Files” and “Database”. The “Files” tab allows you to exclude files completely by archiving just the database, as well as allowing you to filter out specific files and directories.

The “Database” tab allows you to enable table filters and then exclude any tables you wish with checkboxes. This tab also shows the “Build Mode”, in this case “PHP.”

Duplicator's archive settings.

I clicked on PHP and it opened a new tab in my browser, showing the “Packages” tab of the “Settings” page. From here, you can switch the SQL script from “PHP Code” to “Mysqldump”. You can also switch from single-threaded to double-threaded and set the query limit.

The same tab also has the following sections:

  • Archive: allows you to choose either ZipArchive or DupArchive for your archive, as well as a checkbox for “Archive Flush”. Checking this means the plugin will try to keep a connection established for large archives.

  • Installer: Here you can change the name format Duplicator uses when it creates installer files.

  • Visuals: This allows you to switch the date format displayed on the “Packages” screen.

Setting package settings in Duplicator.

All fields in the “Installer” panel are optional. If you already know the database connection settings that will be used for the install, you can input them here and they’ll be prefilled when you run the installation. Note that this part of the Installer function is only available for Duplicator Pro customers who have a Freelancer license or higher.

Configuring the installer file in Duplicator.

I left everything at the default settings, and clicked Next, which moved the process on to the next stage of scanning my site. The scan was fast, and just about everything looked good, although I did get a notification about “Size Checks.” Opening the note revealed that Duplicator gives you this notification at 150MB, and further that you can ignore it on most hosts. It also warned me that I might get a “Host Build Interrupt” if my host has strict processing limits. My site is hosted on my own VPS set up by SpinupWP, so I knew that wouldn’t be a factor.

Duplicator's scanning process.

I checked Yes. Continue with the build process! and clicked Build. The build took less than a minute to complete. Duplicator then gave me three options for downloading the file: “Installer”, “Archive”, or to download both files simultaneously. I decided to download both files so I could see how restores worked with both methods.

Speaking of which, the plugin also shows you “How to Install this Package?” Clicking on this shows three install modes, with links to how each method works:

  • Classic Install Feature: Use this when installing to an empty server directory.

  • Overwrite Install Feature: This should be used when overwriting an existing WordPress site.

  • Import Install Feature: Only available in Duplicator Pro, this uses a GUI that allows you to drag and drop your archives

The final stage of creating a backup package in Duplicator.

Restoring With Duplicator

I decided to use the Overwrite Install method, since my server directory isn’t empty and I don’t have access to Duplicator Pro.

This method does not delete any content that doesn’t exist in the backup files. This means, for example, that if you installed a plugin after your most recent backup, that plugin and its files will remain on your site. However, it will show as deactivated, with the same concept applied to themes, files, and images. Duplicator recommends a Classic Install if you want to ensure that only the files included in the backup archive are present.

There are only two steps to restoring with Duplicator, assuming you’ve already created and downloaded the package files. The first step is to transfer the package to the root of your WordPress site. I’m using FileZilla, but you can use whatever method you prefer.

Duplicator creates two files as part of the package, installer.php and It’s possible to change the names of these files, but I’ve left them as their defaults. To start the restore, copy both files to the root of your WordPress site. You don’t need to unpack them.

Next, navigate to the primary domain of your site, but add installer.php to the site address. Note that if you changed the name of installer.php during package creation, you will need to navigate to that name instead. You should now see the Duplicator installer utility in your browser:

Accessing the Duplicator installer in the browser.

I didn’t create a password, so I just filled in the full file named and clicked Submit. This displayed a screen showing me that the restore was on “Step 1 of 4: Deployment,” with three tabs: “Overview”, “Options”, and “Validation.” The Validation tab was open, because the plugin needed to show me a warning:

A warning from Duplicator showing that the site about to be overwritten is still functional.

I don’t know about you, but this is exactly the sort of thing I want my backup plugin to warn me about. Running the right restore on the wrong site could ruin your whole day (or lose you a client). In this case, I know the site is still up and running, so I checked off the necessary boxes and clicked Next.

The plugin started extracting the archive, and popped up a notice telling me not to close the window until it had completed. Once it was done, it moved immediately to the next step, installing the database. I got a warning for this again, because to complete the restore the plugin would have to delete the existing database. Again, this is very much the sort of warning I want my backup plugin to give me, and again I ignored it.

You have to test the database before the “Next” button will become active in this step. I clicked Test Database and it passed the necessary checks, so I went ahead and clicked Next.

The next step updates the database and config files to match the values of the new site. Duplicator Pro users can also run an additional find and replace during this step.

The plugin also gives you the option of creating a new admin account, running scans, and a few options for the wp-config file. I left everything as it was and clicked Next again.

The restore completed successfully, and Duplicator informed me that I would have to login to my WordPress admin and delete the installer files. This page also shows a “Review Migration Report” link that reveals information about the database and any errors encountered during the process.

Duplicator's Review Migration report.

Duplicator gives you a link to your WordPress admin, but I decided to take the long way around so I could check out the frontend of the site. Everything looked normal there, so I logged into my admin.

Once I was in my WordPress backend, the very first thing I saw was a notice right at the top of the Dashboard telling me that I had old Duplicator files hanging around, with a link to take me right to them. Clicking it took me to the “Tools” panel of Duplicator, and another link right at the top allowed me to delete the files.

Pros and Cons of Duplicator

The design is clean and simple. The interface is relatively intuitive, with helpful links at almost every step. Creating a new package flows logically from one step to the next. Clicking on options in the plugin will often open a new tab that displays those options in detail. When you’re done, you just save, close the tab, and go back to building your package.

The support offered for the free version is extensive. In terms of support, the only difference between Lite and Pro seems to be that Pro help tickets are given higher priority.

For me, there are two big drawbacks to Duplicator Lite. The first is that it won’t save the backup to a remote location. If you want your backup stored in the cloud, you have to do that manually. The second is that you can’t schedule backups at all. Both of those features are restricted to Duplicator Pro.


Developer: Backup by BlogVault Active Installations: 90,000+ Real-Time Option: Yes WordPress Compatibility: 4.0 or higher Price: Starts at $89 annually

BlogVault was first released on the WordPress plugin directory with version 1.02. It is currently on version 4.77, with more than 90,000 active installations.

Unlike some of the backup solutions we’re looking at in this article, there is no free version of BlogVault. However, they do offer a 7-day free trial.

BlogVault offers an integrated dashboard that lets you manage backups for all your sites in a central location. You can use the dashboard to access site history, add new sites, and make sure backups are enabled.

The plugin starts creating a backup the moment you activate it. Once it’s set up and configured, BlogVault will perform incremental backups that are then stored on BlogVault’s own servers. BlogVault also offers real-time backups for WooCommerce sites, with 365 days of backup history.

As you might expect with a paid plugin, tech support for BlogVault is available 24 hours a day, 7 days a week. However, the support team cannot be reached directly. All customer support is handled by a ticketing system.

Testing BlogVault

The first step in using BlogVault is to create an account at BlogVault and register for a free trial. After registration, you’ll receive an email with a link to the BlogVault dashboard that will allow you to add your sites and install the plugin.

Anything you do with BlogVault, you do through the BlogVault app rather than the plugin inside the WordPress dashboard. BlogVault adds its own item to the WordPress menu, but clicking on it just takes you to a screen showing some account information and a few buttons. From here, you can disconnect your current account, connect a new account, and visit the app dashboard. There’s also a link to a short video explaining how to use and configure BlogVault.

The options available when opening BlogVault for the first time.

I clicked Visit Dashboard and was immediately taken to the “Sites” tab of the BlogVault dashboard. This shows me all of the sites managed by this account, and where BlogVault is installed. This is currently just the test site, but it’s a handy feature if you’re managing a lot of sites. A dropdown menu lets you filter the view further, with options for “All”, “Active”, “No Plugin”, “Disconnected”, “Hacked”, and “Locked”.

Selecting any or all of your sites activates the “MANAGE” dropdown menu. You can use this to manage plugins, themes, users, and update WordPress.

Icons to the right of the site name show you status information about your site and BlogVault, such as if you have backups enabled. Hovering over any icon will show you more information, and some of the icons are actually buttons that will take you to other settings pages.

More buttons at the far right allow you to start a fresh sync, see site history, and display more details about the site. The dashboard showed that backups were enabled, but I decided to run a fresh sync.

The BlogVault dashboard.

I was treated to a message saying it was preparing to sync and that the process would start soon. The sync completed within a few minutes, and the plugin emailed me to tell me the backup was ready.

All information related to your backups can be found in the “Backups” module of the dashboard. It can be accessed from the “Sites” tab by clicking on the backup icon.

Clicking the backups button in BlogVault will take you to the plugin's backups module.

The module gives you a quick overview of your site health and backup stats, with buttons for performing functions such as automatic restores and uploading backups to DropBox. A section labeled “REAL-TIME UPDATES” consists of a single toggle and the notice that real-time backups aren’t enabled. However, this functionality is only available at the plugin’s highest tier.

Scheduling BlogVault Backups

Clicking on a site in the “Sites” tab will show you an overview of that site. Clicking the gear icon opens the site settings screen. Click Sync Time to adjust the backup schedule.

Settting the backup schedule in BlogVault.

Restoring With BlogVault

Hovering over the buttons near the top of the module pops up text that shows what each button does. I clicked on Download Backup and was presented with a screen where I could change the backup version I was about to download, edit the name of the file, or select to download just the files or database.

You can edit the file name by typing in the box marked “URL.” Anything added after “https://” will be placed at the beginning of the file’s name.

I left everything as it was and clicked Continue.

Downloading a backup from BlogVault.

A progress screen keeps you informed of how the process is rolling out and presents you with a button labeled “Download Link” at the end. Clicking this starts the download immediately.

Next, I wanted to test one of BlogVault’s more intriguing features: test restores. This sets up a free staging site that allows you to test your restores before rolling them out on your production site.

Clicking on the Test Restore button in the backups module opens a screen where you can change the backup you’ll use and the PHP version. Again, I left everything as it was and clicked Continue.

Testing the BlogVault restore before continuing.

I was again presented with a progress screen that showed me the stages of the process and percentage of completion. A message at the bottom informed me that the test restore would continue in the background if I left the page.

When it was finished, I was shown the username and password for my new staging site. BlogVault also emailed me this information, along with SFTP details. I clicked Visit Test Restore, filled in my credentials, and verified the site was operating normally.

A successful test restore with BlogVault.

Now it was time to give the automatic restore process a try. I clicked Auto Restore and was presented with a screen almost identical to the earlier downloads screen, but with the addition of “Advanced Options” consisting of a checkbox that allows you to copy the file permissions to the destination server. I left this unchecked and clicked Continue.

BlogVault's auto restore feature.

The restore took just a few minutes, with the usual progress screen showing me the stages. A quick visit to the site after it was completed showed everything working as it should.

Pros and Cons of BlogVault

BlogVault is fast, effective, and very easy to use. The free staging site is extremely welcome. Most backup plugins assume that you know not to roll out a backup to your production site without testing it first, but BlogVault goes out of its way to give you a method for testing.

Managing and restoring your backups is relatively easy, thanks to the off-site dashboard provided. This allows you to restore sites even if you can’t access them and you’re not comfortable using SSH/SFTP.

While there is no free version of the plugin, they do offer a 7 day free trial.

However, while BlogVault comes with storage, it has very little in the way of storage options. You can upload them to Dropbox or download through the dashboard, but otherwise the only place they’re stored is on BlogVault’s servers and their own Amazon S3 storage.

Jetpack Backup/VaultPress

Developer: Automattic Active Installations: 5+ million* Real-Time Option: Yes WordPress Compatibility: 5.8 or higher Price: Starts $47.40 for the first year, then $119.40 per year thereafter

* This is the number of Active Installations of all of Jetpack, not just Jetpack Backup.

Automattic started integrating VaultPress into its Jetpack suite in 2016. Today that integration is essentially complete, with VaultPress rebranded as Jetpack Backup in the latest versions.

Jetpack Backup is available both as part of Jetpack and as a standalone plugin, currently in public beta. It’s also included in the two higher pricing levels, Security and Complete. In this review, I’m using the Backups addon instead of the standalone plugin.

According to Jetpack, the only difference is that the standalone doesn’t include any of Jetpack’s additional features.

Jetpack Backup offers both scheduled and real-time backups. All backups are listed as part of your site’s “Activity” on The Jetpack Activity view shows other site events, not just backups. This makes it relatively easy to roll the site back to before a particular event, such as updating a plugin or theme.

All backups created by the plugin are kept as multiple copies stored on redundant servers. The plugin offers single-click restores, and restores can also be performed through the Jetpack mobile app. If you’ve activated real-time backups, Jetpack Backup also allows you to restore your WooCommerce store to any point, while retaining orders and customer data.

Support for Jetpack Backup is available through documentation and the usual community forums. Jetpack customers can also contact support through their dashboard.

Testing Jetpack Backup

Jetpack adds its own item to the menu bar in WordPress:

  • Dashboard: This gives you access to site stats and allows you to activate and upgrade Jetpack addons, such as security scanning.

  • Settings: This controls various Jetpack functions, most of which aren’t related to backups.

  • Backup: Clicking here takes you off your WordPress backend and over to your backup page at

  • Site Stats: A more in-depth view of statistics than is available in “Dashboard.”

  • My Jetpack: Currently in beta, this takes you to a page on where you can manage your plan and Jetpack components.

I’m not interested in Jetpack’s other functions (at least not today), so I clicked Backup. Jetpack Backup starts the first backup the minute you activate the plugin. The first backup usually takes a long time, as the plugin is taking a full snapshot of the site. Going forward, it uses incremental backups to record the changes.

Jetpack Backup starts the first backup the moment you activate the plugin.

Backups aren’t much good without a way to restore them. You need to provide server credentials to fully configure Jetpack Backup, as it’s not possible to use the automatic restore feature without providing these. I clicked on Settings and then on the arrow in the “Jetpack Backup” section to start the procedure.

Jetpack Backup settings.

This took me out of the backend and onto The first step of setting up server credentials is to identify your hosting provider. Jetpack Backup provides a list of the most common providers, and tries to guess which one you’re using. The final option in the list allows you to fill in all of the details manually.

Clicking on any of the options allows you to enter your server credentials, including connection type and whether you’ll use a password or private key. Once you’re done filling in the information, click Test and save credentials to proceed.

The plugin informed me that the connection was not successful. It turns out that Jetpack Backup requires XML-RPC enabled to work, but SpinupWP disables this by default. I popped into the SpinupWP app, flicked the toggle to enable XML-RPC, and tried it again.

Adding server credentials to Jetpack.

This time the plugin informed me that the connection was successful. I clicked Finish Up, which showed me a message informing me, again, that the connection was successful.

Restoring With Jetpack Backup

You have two to three options when it comes to restoring your site with Jetpack. You can restore through your account at or by downloading the backup file and restoring it manually. The third option is to restore your site to a particular event, but this is only available if your plan includes real-time backups. Jetpack makes a point of mentioning this several times, but as far as I can tell, every plan includes real-time backups. The free version of Jetpack doesn’t, but it doesn’t have any backup capability at all. 🤷‍♂️

Restoring to a day or event works in exactly the same way. The first step is to log into Next, click on Jetpack in the left-hand menu bar and select Activity Log from the menu.

The Activity Log shows all events that have occurred on the site, including backups. You can filter by “Date Range” and “Activity Type.” I clicked on Activity Type, selected Backups and Restores, and clicked Apply.

The Jetpack Activity Log.

This showed me all of the backups completed by Jetpack, organized by date and time. Each backup has two buttons: “Restore” and “Download.” I clicked Restore to start the automatic restore process.

The selected backup expanded, showing me exactly what was going to be replaced, along with a note informing me that the action I was about to take would “override and remove all content created after this point.” Checkboxes allow you to pick and choose which aspects of the site you want to restore. These are all checked by default. I left them that way and clicked Confirm Restore.

 Preparing to run a complete restore in Jetpack Backup.

The plugin informed me it was currently restoring my site to the date of the backup, complete with progress bar.

A Jetpack Backup restore in progress.

The restore was complete within a couple of minutes. I took a look at the site and everything appeared to be as it was. I had updated a couple of plugins after the backup was taken, and those updates had been rolled back.

Manual Restores With Jetpack

Clicking Download on one of your backups pops up the same options as automatic restores, allowing you to choose exactly what parts of your site are included in the backup tar.gz file. Once the plugin has prepared the file, click Download to save it. Extract the archive once it’s on your local machine, It contains two folders: wp-content and sql. The first has your plugins, themes, and files. The sql folder contains your database tables

You’ll need to SSH/SFTP into your server to complete the restore by replacing the plugins, themes, and uploads folders on the server with the folders extracted from your archive. I used FileZilla, but any method you normally use is fine. You can import your database backup using phpMyAdmin or a similar tool. Jetpack’s manual restore doc has command line instructions for this process if you have direct access to MySQL, as well as a note that iIf you’re restoring the entire database, it’s often easier to concatenate the files first and just restore a single database file.

Pros and Cons of Jetpack Backup

Jetpack Backup is easy to use. Once I enabled XML-RPC, I didn’t encounter any problems with backups or running the restore. The addition of Jetpack Backup as a standalone plugin is nice as well. If backups are all you want it to do, then you can install just the standalone plugin without needing to install Jetpack. Jetpack has gotten a bit of a reputation for causing site bloat. While you can always disable Jetpack functions you’re not using and bring that bloat down, the standalone plugin is a good option for folks who just want backups.

On the downside, there’s no way to change the backup schedule or storage options. Your daily backup is performed at the time Jetpack sets, and it’s stored on their servers. If you want your backups on another service, you’ll have to download them from Jetpack and upload them manually.

Backups are only stored for 30 days for customers on the Backups or Security plan. Upgrading to Complete gets you a full year. In addition, the basic plan only gives you 10 GB of storage for your backups. My site isn’t particularly huge, but my backup file was still around 470 MB. If you’ve got a big site, there is an option to upgrade to 1 TB of storage space.


Developer: iThemes Active Installations: Unknown Real-Time Option: Yes WordPress Compatibility: 4.5 Price: $80 USD per year and up

Developed by iThemes, the first version of the BackupBuddy plugin premiered in March 2010. This makes it one of the longest-running plugins designed specifically to backup WordPress sites.

BackupBuddy is a paid plugin, with the lowest tier (Blogger) starting at $80 USD. This gets you the ability to backup 1 site and 1 GB of BackupBuddy Stash, the company’s dedicated storage. That isn’t a lot of storage space—12-year-old me, so proud of his new 250 MB hard drive, just shed a single tear—but you can also configure BackupBuddy to use Amazon S3, Dropbox, Google Drive, Rackspace, or One Drive.

The plugin offers both real-time and scheduled backups. Recently, iThemes introduced BackupBuddy Multisite, currently in beta.

BackupBuddy support is available through documentation, and all customers receive access to private, ticketed email support. The help docs are well organized into sections and appear to cover almost everything that might come up.

Testing BackupBuddy

The first step is to create an iThemes account and buy the plugin. The installation process isn’t difficult, but it might be unfamiliar if you’ve only used free plugins before. After making your purchase, you download the plugin file, go your WordPress backend, click Plugins in the menu, click Add New, and then click Upload Plugin. BackupBuddy also has a tutorial on the process.

Once installed and activated, BackupBuddy adds its own menu item, with sections for “Backups”, “Stash Live”, “Destinations”, “Schedules”, “Diagnostics”, and “Settings.” I clicked on BackupBuddy, which opened the setup wizard. Here you can enter the email address where BackupBuddy will send notifications, create a password for your backups if you want, choose remote storage options, and select how often you want backups performed.

The options given on my plan were “Starter” which does a complete backup every month and a database-only backup every week, and “Active Blogger”, which steps up the frequency for complete backups to weekly and daily for the database. I wanted to create a backup right away, so I left it on “No Schedule (manual only)”, and clicked Save Settings.

The BackupBuddy setup wizard.

Completing the wizard opened “Backups”, which has three tabs: “Local Backups”, “Create Backup”, and “Restore Backup”. “Create Backup” shows the existing backup profiles, with a button to create a new profile, as well as a checkbox to offload the backup to remote storage.

I checked the box for sending to a remote destination, which allowed me to choose one I had already configured or create a new one. Another checkbox allows you to delete the local backup after it’s been offloaded. In BackupBuddy’s scheduled backups, you would configure all of these settings in advance. I had already configured Stash (v3), so I selected that.

Preparing to run a manual backup with BackupBuddy.

I clicked Complete Backup and was shown a page detailing the stages and progress of the backup. The backup completed successfully, with copies stored locally and in my Stash (v3) storage.

BackupBuddy's progress screen, showing a successful backup.

Restoring With BackupBuddy

To activate a BackupBuddy restore from within WordPress, click Backups and then Restore Backup. Clicking on Restore Files will restore your files without the database. I clicked Restore, which presented me with three options: restoring the entire site, restoring just the database, or restoring just the files.

The Restores tab of BackupBuddy.

I clicked Continue to restore the whole site. The plugin warned me that this would overwrite the current site, and offered me a checkbox to confirm that this is what I wanted to do. I checked the box and clicked Yes, proceed. The plugin let me know the process might take a few minutes, and that it was okay to navigate away without interfering with the restore.

The final stage of BackupBuddy's restore process.

Manual restores are a little more complicated. First, you’ll need to download a copy of the backup and the ImportBuddy PHP script. To download the script, click Backup and hover over “ImportBuddy” in the top right. This will open a dropdown menu with options to download the file or send it to a remote destination. Downloading the file will prompt you to enter a password, or use your default ImportBuddy password. You can set the default password in the “Settings” tab.

You can also get a copy of the file from iThemes Sync, or by locating it in the backup archive itself.

The next step is to upload importbuddy.php and the backup file to your WordPress root directory. You access ImportBuddy by navigating to your site and appending importbuddy.php to the address. Once you’re there, enter your password and you’ll be shown the first step of the restore process. ImportBuddy gives you the option of uploading a backup or restoring from BackupBuddy’s remote storage, with checkboxes to determine if you’re restoring files, the database, or both.

The first step of the ImportBuddy process.

From there, all that’s needed is to follow the steps as they’re presented. The ImportBuddy process even includes a one-click file cleanup to remove the old backup archives, etc., from your site.

Pros and Cons of BackupBuddy

BackupBuddy’s setup wizard walks you through the process in a logical, straightforward fashion, and gives you options along the way. It has its own storage, but gives you the option to offload your backups to a variety of other storage providers. This is a nice touch.

The plugin makes it easy to restore parts of your site through the WordPress admin, even down to a single file. The same functionality goes for rolling your site back to an earlier version. A couple of clicks and you’re done.

All things considered, BackupBuddy is an excellent solution for backing up your WordPress site. Complete site restores are more technically in-depth than some other plugins, as you need to SSH or SFTP into your server to get the files placed. This isn’t particularly challenging for most developers, and you probably won’t need to restore an entire site very often in any case. Once you’ve got the files in place, the ImportBuddy restore process mostly consists of checking a few boxes and clicking Next.


Winner: Jetpack Backup

Jetpack Backup’s combination of ease-of-use and low-cost real-time backups make it a clear winner. You’ll pay more after your first year, but the combination of features makes it well worth it. While you can’t set the schedule yourself, the plugin does tend to schedule backups for times when your site isn’t likely to be very busy. The addition of a standalone plugin that just performs backups is an attractive option for users who aren’t interested in Jetpack’s other functions.

Runner-up: Duplicator

Duplicator doesn’t offer as many features as our winner, but it has the advantage of a free version. The plugin benefits from a clean, simple design and an interface that’s easy to understand even if you’re not very familiar with backups. Duplicator walks you through every step, and they offer very good support for both the free and paid versions.

Wrapping Up

When you’re getting started with backups, the first step isn’t really choosing a plugin. It’s deciding on your backup strategy. A personal blog that you update biweekly probably doesn’t need the kind of robust real-time backups that you’d need for a busy WooCommerce store. Depending on just how much you value each individual post on that personal blog, a monthly snapshot backup that you perform manually might be sufficient. For anything more important, you’ll at least want scheduled backups performed on a regular basis.

It’s also important to consider what kind of support is offered and how much you expect to need it. Strong support can be crucial if you’re not fully comfortable with making changes to your server via SFTP or SSH.

Storage options are also a concern. Some plugins don’t offload the backups automatically. Of the ones that do, some may not work with your favorite storage provider. Finally, what’s the restore process like? Just like with support, the answer to this question depends a lot on your experience. If you’re new to WordPress—or just don’t like to mess with SFTP—then a plugin with an integrated dashboard might fit your needs better than one where you have to load up the files in case of a catastrophic site failure.

What do you use for your backups? Did we miss covering your favorite plugin? Let us know in the comments.

About the Author

Mike Davey Senior Editor

Mike is an editor and writer based in Hamilton, Ontario, with an extensive background in business-to-business communications and marketing. His hobbies include reading, writing, and wrangling his four children.