Why do you need to back up your self-hosted WordPress site?
Backing up your website is the single if not only true thing you can do to protect your site. If your site is hacked or if your web hosting server crashes, a good backup is the only fall back you have.
What parts of your WordPress website need to be backed up and how often?
The WordPress MySQL Database
The one irreplaceable part of your WordPress website is your database. All of your text content on your posts and pages, widgets, and every other change in the WordPress Dashboard including WordPress settings, plugin settings, theme settings, users, etc. is stored in the database.
You can always install or replace your WordPress theme, upload new images, or install new plugins, but you likely cannot easily rewrite all of your content.
The tricky thing about the database is that you cannot SEE it! It is not accessible via the File Manager in your web hosting control panel. It is not accessible via FTP. It is stored in a very special place on the server. It cannot be copied. It cannot be moved. It can only be exported and then subsequently re-imported via a database application liked phpMyAdmin. Since using phpMyAdmin is a bit technical, plugins allow you to do this with the click of a button.
How often should you back up your database? As often as you don’t want to lose data. When I was in college in the 80s, we used these notoriously unreliable storage devices called floppy disks. Remember those? They were 5.25″ pieces of flimsy plastic and magnetic film that went “bad” at the slightest provocation. The night before a deadline, all of my term papers merged themselves together into one file creating a fascinating summary of how I’d spent $40,000 of student loans and a personal crisis of epic proportions when I didn’t have a real term paper to turn in. My computer science instructor warned us:
“There are two kinds of people in the word: those who have lost data and those who will lose data.”
So, my advice? Back up your database as frequently as you don’t want to retype anything you’ve written on your site. Daily might be a good idea for most people and weekly for less frequent bloggers.
Your Uploaded Content in the wp-content Folder
All of your themes, plugins, and uploaded images are stored in the wp-content folder on the web hosting server, which you can see and download via your web host’s File Manager or FTP program or using a backup plugin.
How often should you back up your wp-content folder? As often as you don’t want to re-upload images or whenever you make major changes to your theme’s files. If your site went to hell in a hand basket, likely you could easily deal with re-uploading a few images, so backing up your FULL SITE (which should include your database and all your files) once a month or every two weeks is sufficient.
Other miscellaneous files
While you are at it, you should also backup your robots.txt, .htaccess, and wp-config.php files which are located in the public_html directory or WordPress root folder. But, not to worry, if you use one of the third-party backup solutions listed below, everything will be backed up automatically.
WordPress Back Up Options
1 – Web host backups
Cheap, shared web hosts
Your inexpensive shared web host probably has a back up of your website. However, this backup may not include your database, and it is likely to occur randomly. As a result, it is not something you can rely on to restore your website in the event of a hack or lost data.
Here is what HostGator has to say about their backups:
HostGator’s automatic backup service runs once a week on a random day, and each run overwrites any previous backups. Only one week of backups are kept at a time. The terms of our backup policy vary depending on the type of hosting account.
HostGator backups are provided as a courtesy and are not guaranteed. Customers are responsible for their own backups and web content and should make their own backups for extra protection. For additional information, please refer to our Terms of Service.
Managed WordPress hosts
Managed WordPress web hosts typically provide backups as part of their services and might not allow you to run additional backup plugins. The benefits of using a managed WordPress host are
- Backups and restore points are taken care of for you. Be sure to read your host’s policy about backups including how frequently they backup and if they guarantee their backups.
- Basic security protocols are enabled including limiting login attempts and a firewall. Many managed WordPress hosts control with Sucuri.net for malware scanning and clean up.
- Caching of your site is usually automatically enabled allowing your web pages to load much more quickly.
Personally, I choose to use either WP Engine or Get Flywheel for all of my clients. Over the years, as I’ve worked with many cheap and inexpensive web hosts, I’ve discovered that while some hosting is cheap, it comes at a price in terms of poor performance and having to manage backups and security piecemeal. When you add up all the costs of maintaining a site, using a more expensive web host and paying $15-30/month ends up being worth the investment in the long run. If you purchase a Pro account at WP Engine, you can host 10 sites for $99/month, which further brings down the price. WP Engine makes it very easy to migrate your site to them using a plugin.
2 – Off-site backups
It’s a good idea to have “off-site” backups, i.e. backups that are not on your web hosting server in case something goes wrong at the web host. See The Big Year, Server Crash story below. Depending on the host, their backups may not be backed up! If your only backups are on a server that has crashed, well, you don’t have a backup do you? 🙂
To create an off-site backup, you need to use a plugin or a service:
Premium: WorpDrive is my latest go-to plugin for backups. WorpDrive backup protection is an add-on integrated with iControlWP, a WordPress management utility. iControlWP allows you to both manage and backup multiple sites from one central control panel. They are competitively priced. One site is $4.50 for the management tool and backups, 30 sites is $29 (50 GB of storage), and 50 sites is $49 (150 GB of storage). It's the best deal out there. They also offer a test environment to be sure your backups are working and complete as well as easy ability to completely restore the site if needed with one-click.
The team at iControlWP is highly professional and also provides an amazing security plugin called WordPress Simple Firewall, which I use on all my sites as my go-to security plugin. If I had to make a pick WorpDrive would be it. The benefit of using WorpDrive as opposed to some other WordPress plugins is that it operates via FTP (file transfer protocol) rather than PHP (
Premium: BackupBuddy (affiliate link). This has been my favorite plugin for the past few years as it allows you to easily schedule backups, set backups to be transferred to a remote service such as an Amazon S3 account, Dropbox, or remote FTP. It also allows you to migrate sites by creating a backup archive and providing an import script which facilitates the migration process to restore the site on another host. The only issue I have with BackupBuddy is that on some hosts, the backups can run very slowly, time out, and be unreliable. I got tired of babysitting backups on my clients' sites, so that is why I have switched to using WorpDrive instead as WorpDrive bypasses the server functionality by relying strictly on FTP rather than PHP connectivity.
Free: BackWPUp Plugin. This plugin is relatively easy to set up, though it gets technical when configuring the backups to go to Dropbox or Amazon S3 cloud storage service. It is not as easy for restoring or migrating sites. You will definitely want to hire a tech geek if you need to restore form one of these backups.
Free: UpDraft Plus is quickly becoming the go-to backup plugin in the WordPress universe. It is currently the most installed backup plugin with a high star rating and great reviews and support. The premium version allows you to use their remote servers for storage. Cost for storage is $70/year for two sites (about $3/month per site). Using your own Amazon cloud account would be cheaper but more time consuming to set up initially. Updraft Plus has a built in migration utility and can help you restore and migrate sites using backups created by other plugins! Pretty sweet. Among the free plugins, this would be the first one to try.
Service: VaultPress Backup is a one-click restore backup service by the makers of WordPress (Automattic). For $5 per month, you get the peace of mind of daily backups, 30-day backup archive, and automated restores. This is the easiest to set up for non-technical people because you simply install a plugin and enter your API key, and you are all done!
Note: VaultPress backups (daily and on-demand) are included with all WP Engine Hosting accounts. This makes WP Engine a very good deal for hosting and backups combined not to mention firewall, fast page load times, and excellent support.
Back Up Your WordPress Site Now!
If you are reading this article and are not very technical and don’t have a full backup of your site, do these things right now:
1 – Install the BackWPUp Plugin and go to the BackWPUp Dashboard and click the blue button that says Download database backup. Whew! Your database is backed up for free! Click this button whenever you want a database backup. Better yet, create a job and have your database emailed to you regularly. Put this file in a safe place.
2 – Sign up for VaultPress for a $5 a month to get your site properly backed up regularly.
Tip: For a low-tech, quickie backup of your WordPress posts and pages, go to Tools > Export and export all your content to an XML file. This is only your text content (not your uploaded images), though links to your images are in your content – just not the images themselves. It’s better than nothing!
The Big Year, A Server Crash, and a True Story of Why You Need to Back Up Your Database TODAY!
A local birder, John Vanderpoel, contacted me in 2011 because he was undertaking A Big Year – an ambitious, all consuming, expensive, exhaustive year of traveling to spot as many birds as possible in an informal birding competition that originated in the late 1930s. John was prepared to take on the record holder Sandy Komito and find more than 745 birds (the official record of the time which was later revised to be 748). He planned to track the sightings on his Big Year 2011 WordPress blog. Only a few people a year dare to participate in this huge undertaking, and John came in one short of matching the record (four short of the revised record).
John was reportedly the fastest birder on record having sighted 700 birds by November of 2011. But partway through his Big Year, Network Solutions, where he hosted his website, had a server crash. John was tracking his progress in daily blog posts complete with photos and details of each sighting. He also had a spreadsheet, but his writing was all on the WordPress website. He contacted Network Solutions, and the only backup they had of the databases for the server that crashed was six weeks old! Six weeks old!!! That’s a lot of bird sightings for the fastest birder in the country during a Big Year summer.
Panicked, he contact me and asked me what I could do. I couldn’t really do anything. I had no backups, and the backup plugin I typically use doesn’t run properly on Network Solutions shared web hosting platform. I did a Google search and found that Google had cached all his old blog posts. I was able to use Google Reader (at the suggestion of John’s son) to get a nicely formatted feed of the site. From Google Reader, I copied all of the missing six weeks of posts and then pasted the content into a Word doc that John could use to piece back together his website. By the next day, Google had re-crawled the site and the missing posts were removed from the Google cache. We got that cached post information just in the nick of time.
When John consulted me about WordPress functionality — a few styling questions and how to list posts in the sidebar and use categories and tags — I wasn’t thinking about backups. I also knew that Network Solutions is one of the few web hosts who actually stores a lot of backup snapshots of people’s sites as I’ve found they came in handy.
This incident completely changed my mind about web host backups, even reliable and timely ones. In the event of a complete server crash, the web host’s backups may be lost, too! You need to have a backup and perhaps multiple backups stored in places other than at your web host, such as on a cloud server (like Amazon S3 or Dropbox) or VaultPress.
Lesson learned: Do NOT rely on your web host for backups ever and particularly during a Big Year!!!
Checking your backups
Once a month, check your backups! If you are using a plugin, this is particularly important. Sometimes the plugins lose connection to the Amazon cloud service. Or, your backups may have gotten too large to transfer over the Internet reliably and timely. This can happen if you inadvertently backup backups of your backups, resulting in exponentially increasing sizes of your backups. Your site might go from a modest 200 MB to a whopping 2 GB in no time.
Checking your backup size can also give you clues about other potential issues on your site such as:
- Images that have not been optimized for web and are being uploaded at full camera resolution – yikes!
- Backups of your backups
- Huge log files or logs being stored in the database (post to come soon about how to clean these up)
- Other files being included in your backups that are loose in your public_html folder that should be excluded form your backup
If you have a lot of images on your site, you may want to manually backup (via FTP) some of your older uploads folders (which are organized by year and month) and only backup the current year’s uploads.
The important thing is to monitor your backups. The last thing you want to do is think you have backups when you don’t!
Make sure that the backups are uploading okay to your Dropbox or Amazon S3 (or VaultPress account) and that they are being deleted (if using BackWPUp or BackupBuddy) from your WordPress directory at your web host.