cPanel Backups: How to Back Up Your Site and Restore It
Nothing ruins a Monday like logging into your site and finding a blank page, a hacked homepage, or a botched plugin update you can't undo. If you've got a recent backup, it's a five-minute fix. If you don't, it's a very long day. Here's how cPanel backups actually work, how to set them up properly, and how to restore one without making things worse.
Symptom: you need your site back, right now
Usually it's one of these:
- A plugin or theme update broke the site and you need to roll back.
- You migrated content or edited the database and something's now missing.
- The site got compromised and you need a clean version from before the infection.
- You deleted a file, table, or email account by accident.
In every case, the fix is the same: pull a backup from before the problem started and restore just the piece you need — not necessarily the whole account.
Cause: most people only back up half the site
A WordPress or PHP site isn't just files. It's files plus a database, and often email accounts, forwarders, and cron jobs too. A lot of manual backups only grab the public_html folder and skip the database, which means the restore comes back with old content, missing orders, or broken logins. Understanding what cPanel actually backs up fixes this.
What's inside a cPanel backup
| Component | What it includes | Typical size |
|---|---|---|
| Home directory | public_html, mail, tmp, and any other folders under your account | Largest part, especially with uploads/media |
| MySQL databases | Every database tied to the cPanel account, as .sql dumps | Small unless you have huge tables or logs |
| Email accounts & forwarders | Mailbox configs, forwarders, filters, autoresponders | Config only — not the actual email messages in a partial backup |
| Other account config | Cron jobs, DNS zone files, resource records | Small |
Fix: how to create a proper backup
Option 1 — Full account backup (best before big changes)
Use this before a major migration, PHP version change, or anything risky.
- Log in to cPanel and open Backup or Backup Wizard.
- Click Download a Full Website Backup.
- Choose a destination — Home Directory is fine to start, but don't leave it there long term (more on that below).
- Optionally set an email address to notify you when it's done. Full backups on large accounts can take a while to generate.
- Click Generate Backup, then download the resulting
.tar.gzfile to your own machine or cloud storage once it's ready.
A full backup is great for disaster recovery but awkward for quick restores — you usually don't want to overwrite the whole account just to fix one broken plugin.
Option 2 — Partial backups (best for day-to-day safety)
Under Backup Wizard → Backup, you can download these separately:
- Home Directory Backup — just your files.
- MySQL Database Backup — pick one database at a time, downloaded as a
.sqlfile. - Email Forwarders & Filters Backup — small config files, easy to keep current.
Grabbing the database separately means you can take a quick 30-second snapshot before running updates, without waiting on a full account archive.
Automate it — don't rely on memory
If your account runs on JetBackup or a similar tool (check under Files → JetBackup or ask your host), you can schedule daily or weekly backups that run automatically and retain several versions. On Getwebup hosting plans, automated daily backups are included and stored off-server by default — check Backup → JetBackup in your cPanel to see your retention window and available restore points.
If you're managing backups manually, put a recurring reminder on your calendar. "I'll remember" is how six-month-old backups happen.
The 3-2-1 rule, simplified for hosting
Keep at least:
- 1 copy on the server (fast to restore from, but useless if the server itself has an issue)
- 1 copy off the server — your own computer, S3, Google Drive, wherever
- Automated + manual — scheduled backups for routine safety, plus a manual one right before any risky change
Never let the only copy of your backup live in the same public_html folder it's backing up. If the account gets compromised or disk fills up, that copy goes down with everything else.
How to restore
Restoring a full backup
- Go to Backup Wizard → Restore.
- Choose the type of restore — Home Directory, Database, Email, or full account, depending on the file you have.
- Upload the backup archive.
- Confirm and start the restore. Larger accounts can take several minutes.
If your host disables self-service full restores (some do, since a bad full restore can overwrite the wrong things), open a support ticket and attach the backup file or its location — support can run the restore server-side.
Restoring just the database
This is the more common scenario — content is wrong but files are fine.
- Open phpMyAdmin from cPanel.
- Select the affected database.
- Important: export the current (broken) database first, just in case. Click Export → Quick → Go.
- Click Import, choose your
.sqlbackup file, and click Go. - Clear any caching plugin or CDN cache afterward so you're not looking at stale pages.
Restoring just files
Use File Manager or an FTP client. Extract the archive to a temporary folder first (not directly into public_html), then copy over only the files you actually need — usually a single plugin, theme, or wp-config.php — rather than dumping the whole archive on top of a working site.
Prevention: make the next incident boring
- Back up before every risky action — core updates, plugin updates, PHP version bumps, theme changes.
- Test a restore at least once. A backup you've never restored from is a guess, not a safety net.
- Watch your disk quota. Backups stored in the home directory count against your allocation and can trigger the same "disk full" issues that break sites outright.
- Keep more than one restore point. A single backup protects you from mistakes made today; several versions protect you from problems that took a week to notice.
- Document your database name and prefix. When you're restoring at 2 a.m., you don't want to be guessing which database goes with which site.
Backups aren't exciting until the day they save you. Set them up once, automate what you can, and the worst-case scenario becomes a quick restore instead of rebuilding from scratch.
Frequently asked questions
How often should I back up my cPanel site?
For most WordPress or CMS-driven sites, daily automated backups with at least 7 days of retention is a good baseline. Add a manual backup before any major update, migration, or plugin install regardless of your automated schedule.
Can I restore just my database without touching my files?
Yes. Export your current database as a safety copy in phpMyAdmin, then import your backup .sql file into the same database. This won't touch any files in public_html.
Where should I store my backup files?
Keep at least one copy off the server entirely - your own computer, cloud storage, or an external backup service. A copy that only lives in your hosting account isn't protected if the account itself has a problem.
Why did my full backup restore overwrite things I didn't expect?
A full account restore replaces the entire home directory and all databases with the backup's contents, including anything created after that backup was taken. For targeted fixes, restore just the file or database you need instead of doing a full restore.
My backup file is too large to download - what now?
Very large accounts (big media libraries, huge databases) can time out on download. Split the backup into home directory and database components separately, or ask your host to move the backup to remote storage or generate it via SSH/cron so it doesn't rely on your browser staying connected.