As people in the IT say, if you don't have a backup of your project it means it is not important to you.
There are numerous scenarios on what could go wrong from accidentally deleting your database to being hacked and your site filled with malware and harmful scripts. Think for a moment if this happens to you - how many hours it will take to rebuild your site? And this is a great loss both of development time and cost and your traffic and search engine positions.
To be able to react fast in an emergency situation you need to have a backup. A lot of web hosts don't support that service or if they do they make it for their safety and will not let you restore your data, or it will be partial. All the web hosting providers that we recommend are making daily/weekly backups of your data, but that is not enough. It is a neat feature that will help you restore to a healthy version of your project fast, but it also has its limitations and as in this example on Reddit, you can see that even big names like Bluehost can screw up your backup.
- nobody cares for your data like you do (hosting companies handle hundreds of thousands of backups, and there is a big chance something could happen to yours).
- the web hosting providers keep only backup for a limited time, like a week or two. What if the site was hacked before the date of the last backup and by the time you realized it and decided to restore it, the backup version is also compromised?
- even of they keep your backup on a separate machine there is a big chance it is in the same data center and if some natural disaster occurs, your site is gone.
What to make a backup truly means?
The best practice for any data that you care about is to store it in three separate places - backup on your web hosting for fast access and restore, a copy on a separate hard drive at your home and a copy in the cloud like DropBox, pCloud or Amazon S3.
Also, make sure you keep versions of it since every software is regularly updated and you would like to keep at least 3-4 versions and, at least, two months back. This way you can be sure that even if some of the backup versions is compromised you still have a base to build on.
How to make a backup?
How to generate a backup via FTP
Making a backup trough FTP is the oldest and least tech method. This is how it works:
1. Connect to your server with your favourite FTP client like FileZilla.
2. Start downloading all your files. This can take forever if you have many files so you can make your life easier and your backup faster if you have access to a hosting control panel where you can archive your files first. This way you download only one file, and it is much faster.
3. Organize your folders, so you know which version of your backup goes where
4. Don't forget to backup any databases. You can do this with PhpMyAdmin. (Ask you host for access)
How to generate a backup via cPanel
If you have access to cPanel, your backup generation can be much faster because cPanel can pack up all your files and databases in one archive. Here are the steps
1. Log into cPanel
2. Go to Files and click on the Backup icon
3. Here you have two options:
a) under Full Backup click Download a Full Website Backup. On the next step click Generate and input your email. cPanel will send you an email when the backup is ready. Kepp in mind that the full backup creates an archive of all of your website’s files and configuration. You can use this file to move your account to another server or to keep a local copy of your data.
b) Under Partial Backups click on the Download, a Home Directory Backup > Download. This is a much faster and easier to restore the backup version of only your home directory.
You can make one full backup every month and a partial backup every week.
How to automate your backup
The answer is with additional software. If you run your site on some of the most used CMS platforms like Joomla or WordPress you can use Akeeba Backup. This plugin has a free version that works quite well and it semi-automates your backup process. It has a lot of advanced options, but the whole backup process is just one click, it is from your admin panel, and it makes and archive that is easy to restore and have your database in there as well. Here is how you make a backup with Akeeba:
The trick is that after the backup is ready, you have to download the backup via FTP in binary mode.
If you want it to be fully automated, you have to purchase Akeeba Backup paid version which supports backup to remote locations like DropBox or Amazon S3 or software like BackupMachine.
And don't forget - always download a local copy!
If you have any questions, let us know in the comments.