If you search for ‘How to backup a WordPress site‘ you’ll find many options on how to go about properly backing up a WordPress based website. Most of them probably do the trick, but here’s our take on the (second1) best way to back up your website:
BackupBuddy is a WordPress plugin that we use during development for migration purposes, but it’s also a superfantastic backup tool. The reasons we like it so much?
Scheduled backups – If it’s not scheduled does it happen? Set as many schedules as you like.
Send to Remote destination – S3, FTP, Dropbox, and moar!
Easy include/exclude of directories on the server
The first two are critical items when setting up a solid backup plan. Automated and scheduled on a regular basis so you don’t need to think about it; Send to multiple, remote locations to avoid a single point of failure. Email notifications are nice to have when a scheduled backup goes awry. Alright, let’s Back that thang up!
Decent hosting. Not required, but note that If you’re on a cheap shared hosting account (GoDaddy, BlueHost, etc.) you may run into problems. If you don’t know what good hosting is, we can help.
Steps to take
Install BackupBuddy. Install it as you would any other plugin. Activate while you’re at it.
Add a Remote Destination
Browse to BackupBuddy › Remote Destinations, find Amazon S3 and click Add New
Fill in the Destination Name. This can be what ever you want to help identify the destination. We use something like Spigot S3.
Fill in the AWS keys. Click on the ‘Get Key‘ link and you’ll be taken to the proper place to create an ID and secret key.
Add a Bucket – No spaces, must be unique. My_Awesome_Backups perhaps. By now that’s probably taken though.
I’ve usually left the region and storage class dropdowns alone. Feel free to research what they are though. Leave a comment if you find something good.
Add a Directory if you want. This is helpful if you want more than one destination in that bucket, like separate monthly, weekly, daily backups.
You can either test the connection, or simply click on Add Destination
Add a Schedule
Browse to BackupBuddy › Schedules
Fill out the Schedule Name, Choose Database or Full, and set the schedule.
Leave the ‘Delete local…’ unchecked and ‘Enable Schedule to run’ checked, then Add the schedule.
Check the Settings
Browse over to BackupBuddy › Settings
Fill out notification emails if you’d like them. Error notifications are nice.
We limit our local storage archives to between 5 and 10. The other limits we leave at 0.
Exclude any directories on your site that you think you don’t need to keep backed up. Backup directories from other plugins, for example.
Of course don’t forget to hit save.
Run a manual backup
Theoretically you’re good to go, but it’s nice to know things are working. Run a manual backup now and every time you update WordPress or plugins. Or do any kind of major or minor change to your site. Backups are your friend.
Browse to BackupBuddy › Backup
You may be prompted to enter a migration password. Let ’em have one. You may also be prompted for other things, just get past them and to the main backup screen.
Choose Complete Backup. It’s going to feel so good to know you have a zipped up portable version of your website in two minutes.
When it’s done click on Send to Remote Destination. Choose Amazon S3 and you’ll shortly see them show up in your account.
Check back periodically to make sure the schedule is running smoothly, but these are the basic steps. You’re on your way!
Some general guidelines and notes
We keep daily Database backups, and weekly Full backups. Your needs may vary.
An FTP client is handy for viewing your Amazon S3 space. We use Transmit.
Sometimes backups get hard to create, especially with large sites on crappy hosting. Optimize and upgrade.
1 The First Best Way
Actually what we laid out above is what we think is the best way IF you want to do it yourself. But for those who want the piece of mind of a WordPress expert keeping an eye on their site, our WP Maintain maintenance plan is the best. Skip all the above, leave it to us while you run your business.