The backup you have never restored is not a backup
Picture a shop whose website goes down hard. Database corrupted, files missing, the kind of failure where the only option is to restore from backup. The hosting panel shows backups running every night for two years. Green checkmarks all the way down. The owner assumes this will take twenty minutes. It takes six hours, and the site comes back missing a week of orders, because the automated backup was silently skipping the database and nobody had ever tried to restore it.
That is the usual shape of the call. The backup system reported success because it successfully copied the files it was configured to copy. It just was not configured to copy the thing that mattered most, and nobody found out until the day they needed it.
What a restore test actually involves
A restore test is not downloading a backup file and looking at it. It is not checking that the file exists or that it is not zero bytes. A restore test means taking the backup, putting it somewhere isolated, and bringing it all the way up to the point where you could serve traffic from it. For a website, that means restoring files, restoring the database, confirming that the database connects, and loading the site in a browser. For a mail server, it means confirming that mail routes and that user accounts authenticate. For a file server, it means mounting the restored volume and opening a few files at random.
The test has to be done in an environment that is separate from production, because a restore is destructive. You are overwriting what is there. If you restore directly into the live environment to test it, and the backup is incomplete, you just replaced a working system with a broken one. The correct way is to restore to a staging server, a local copy, or a snapshot that you can discard. That takes more time and more planning than clicking a restore button, which is why most people do not do it until they are forced to.
The other thing a restore test does is tell you how long the process takes. That number matters more than how many backups you have. If your site is down and the restore takes eight hours, you are down for eight hours. If you have daily backups but the restore process is manual and requires three different logins and a support ticket to get database credentials, your recovery time is however long it takes to find those credentials and wait for that ticket, plus the time to actually move the data.
Why automated backups fail silently
Most backup systems are designed to report success if the job completes without throwing an error. That is not the same as confirming that the backup is usable. A script that copies files will report success if it copied all the files it found, even if it did not find the database dump because the dump script broke two months ago. A panel backup will report success if it packaged everything in the public HTML folder, even if the actual application data lives somewhere else.
The other common failure is a backup that runs but fills up its own storage. The system keeps writing new backups and deleting old ones to make space, but the storage is too small, so it deletes the old backup before the new one finishes writing. The result is that you have one partial backup and no complete ones, and the logs show green because the script is doing what it was told to do. You find out when you try to restore and the file is truncated.
Permissions are the quieter failure. A backup script that runs as the wrong user can create files it cannot later read, or it can read files but write them to a location where the restore process does not have access. The backup exists. It is complete. You cannot use it.
Where this sits in what RedCyfer does
Every site on RedCyfer hosting has automated backups, and I test a restore from every site at least once a quarter. Not a spot check. A full restore to a staging environment, database connected, site loaded. The test is scheduled, it is documented, and if it fails, I fix the backup configuration before the next billing cycle. That is part of what the hosting fee pays for.
For Care Plan clients, restore tests are part of the quarterly maintenance window. If the site or the infrastructure changes, the test gets run again outside the normal schedule, because a backup configuration that worked before a platform update or a plugin change may not work after. The goal is not to have a lot of backups. The goal is to know, before you need it, that you can be back online in an hour instead of a day.
Need this kind of thinking applied to your own setup? Get in touch →