BlogBackups & restores

cPanel Restore Full Backup: 5 Ways to Get Your Site Back

Akshat ChoudharyAkshat ChoudharyUpdated November 6, 2026 · 13 min read

feature image

Your site is down, and you know you made a full backup. You open cPanel, hunt for the Restore button next to it, and it simply isn’t there. Frankly, that’s a jarring thing to find at the worst possible moment.

Here’s the part nobody tells you upfront. cPanel can create a full backup, but it can’t restore one from its own Backup screens. The restore lives somewhere else, and where it lives depends on your hosting.

Don’t stress, though. We live inside backups and restores at BlogVault, and have tested this process ourselves. By the end, you’ll know where your backup is, which of the five routes is yours, and what to check so your site comes back whole.

TL;DR: Look for JetBackup in cPanel first, then try WHM, the command line, or your host’s support team. Only need part of your site? Extract the archive and restore just your files or database. For future WordPress restores, BlogVault offers a dashboard-based alternative that works even when your site is down.

Which route is yours?

Your situation Your route What comes back
Your cPanel shows a JetBackup icon 1. JetBackup The whole account, from your host’s backups
You have WHM root access 2. WHM The whole account, from your file
You can log in over SSH as root 3. Command line The whole account, from your file
You’re on shared or reseller hosting without those 4. Your host The whole account
You only need part of it 5. Extract what you need Files, database, or email

Not sure what WHM is? Think of cPanel as the key to your own flat and WHM as the building manager’s master key. It’s the server control panel (WebHost Manager) that hosts use, usually found at your server address with :2087 on the end. Shared hosting customers typically don’t get a login, and hosts can switch the restore screen off for resellers as well.

First, find your backup

Let’s start with the question we hear most: where did the file even go?

cPanel Backup Wizard showing the Back Up and Restore entry choices

If you made it in cPanel with the Home Directory destination, it’s in your home folder. Open File Manager, stay at the top level of your home directory (the folder above public_html), and look for a name that starts with backup- and ends in .tar.gz. cPanel’s own example is backup-7.10.2026_12-00-30_username.tar.gz. It also shows under Backups Available for Download on the Files > Backup screen.

If your host runs automatic backups, check Account Backups on that same screen. Those files appear only when your host has turned the feature on, so an empty list tells you to ask them.

If you downloaded the file, it’s on your computer. Check your Downloads folder, or the remote server if you sent it by FTP or SCP.

Test the file before you trust it. On your computer, gzip -t backup-file.tar.gz checks the compressed file for damage, and tar -tzf backup-file.tar.gz | head lists what’s inside without unpacking it. A download that stopped halfway fails these checks, and an unchecked backup is just a guess.

What’s inside a full backup

Open it up, and a full backup is one compressed file (a tarball) with a few folders inside. homedir holds your home directory, including public_html (your website files) and mail (your email). mysql holds one .sql file per database, such as mysql/username_wpdb.sql. cp holds your account’s settings. The backup also carries DNS zone files and SSL certificates.

cPanel says this layout can change over time. Look inside your own file before you assume where things are.

1. Restore it with JetBackup

Scan the Files section of cPanel for a JetBackup icon. Many hosts add it, and it lets you restore a full account without WHM or a ticket. It works from backups your host’s system takes, on a schedule and retention window your host sets, which is separate from the file you made on the Backup screen.

  • Log in to cPanel directly as the account owner and open JetBackup in the Files section. Resellers need to log out and sign in as the cPanel user first. Click Restore & Download.
  • Choose Full Backups, pick the date you want, and click Restore. Small accounts can finish within minutes, and larger ones take longer.
  • Treat the restore as an overwrite. JetBackup replaces your current data with the backup’s, so generate a download of the current account first if anything on it is newer.

📝 Note: The easiest route here when your host offers it. No JetBackup icon? Your host probably doesn’t, so move on to route 2.

2. Restore it in WHM

If you have root access, this route rebuilds the whole account from your file: files, databases, email, and settings.

phpMyAdmin Export page with Quick/Custom method and SQL format
  • Log in to WHM as root and search for “Transfer or Restore a cPanel Account.” You’ll find it under Transfers. Older guides point to “Restore a Full Backup/cpmove File,” but cPanel removed that screen in version 90. (A cpmove file is cPanel’s name for an account archive.)
  • Choose “Restore from a local cpmove file” if the backup is already on the server, or “Upload a file to restore” to send it from your computer. The local option lists only files stored in /home, /home2, /home3, /root, /usr, /usr/home, or /web. The file name also has to match a format such as cpmove-username.tar.gz, username.tar.gz, or cPanel’s own backup-date_time_username.tar.gz.
  • Tick “Overwrite if the cPanel user already exists” when you want the backup to replace the live account. Leave it off only when you’re restoring an account that doesn’t exist on the server yet.
  • Decide on Restricted Restore, then click Restore and watch the Account Restore screen until it finishes. Restricted Restore adds extra security checks meant for archives from sources you don’t trust. cPanel calls it experimental, and it won’t restore parked or addon domains, so for your own backup you’ll usually leave it off. Keep it on when you’re unsure where a file came from.

📝 Note: An overwrite restore replaces everything in the account, so anything newer than the backup is gone afterward. If the live site still holds recent orders or comments, export the current database first.

3. Restore it from the command line

If you can log in over SSH as root, one command does the job. Upload the file to a folder WHM searches, such as /home, then run:

Code
/usr/local/cpanel/scripts/restorepkg /home/backup-file.tar.gz

Give the script the full path to the file, or an account’s username. With a username, it searches the same folders WHM does, and it tells you where it looked if it finds nothing.

Know what --force does before you reach for it. cPanel’s documentation says it restores despite errors or warnings but leaves existing data in place, so it doesn’t replace a live account the way WHM’s overwrite checkbox does. To restore under a different username, the script offers --newuser, and the new name can’t already exist on the server.

4. Ask your host to restore it

On shared and reseller plans, the restore tools sit with your host’s support team. That’s a normal request, and a clear message makes it quick.

  • Make the file easy to reach. Upload it to your home directory, or have a download link ready.
  • Open a ticket with the details they need. Include your account username, the file name and date, and whether the account still exists. Here’s a message you can copy:

Hi, I need a full restore of my cPanel account (username: YOUR_USERNAME) from this full backup file: YOUR_FILE_NAME. It’s in my home directory. Could you tell me how long it will take, whether there’s a fee, and whether email or DNS will be affected while it runs?

Ask whether your host keeps its own backups too. They may have a more recent copy than yours, which can save you a day of lost orders.

Policies vary. Some hosts restore an uploaded full backup for free when the account already exists on their server, while others charge or point you to their own backups, so check before you plan around it.

5. Restore only your files, database, or email

Here’s a question worth asking: why restore the whole account when only one theme folder broke? Often you just need the part that went wrong. cPanel’s documentation describes this route for website files, and the same idea works for your database.

cPanel Restore a Home Directory Backup / Restore a Database Backup panel
phpMyAdmin Import page

Extract only what you need from the archive. You can unpack the whole file on your computer, or pull out one piece, such as tar -xzf backup-file.tar.gz mysql/yourdb.sql.

Upload your website files from homedir/public_html into your live public_html folder with File Manager. Replace only the folders you need, like one theme or plugin, so you don’t overwrite newer uploads.

Import the database from the .sql file in the mysql folder using phpMyAdmin. Open phpMyAdmin from cPanel, select your site’s database, click Import, choose the file, and click Go. If the database or its user doesn’t exist yet, create them under MySQL Databases first, add the user to the database, and make sure DB_NAME, DB_USER, and DB_PASSWORD in wp-config.php match. If the file is too big for phpMyAdmin’s upload limit, ask your host to import it from the command line.

Look in homedir/mail for email. Recreate the mailbox in cPanel first, then copy the messages into place, or ask your host to do it.

📝 Note: A manual import overwrites tables that share a name with the ones in the file. Export the current database first, even if the site looks broken. It takes two minutes, and it keeps your newest data safe.

Before you restore

  • Take a fresh backup of the account as it is now. A restore overwrites what’s there, so you want a way back.
  • Check your free disk space. cPanel says the server needs at least double the archive’s size free, because it extracts the file during the restore.
  • Confirm the backup’s date. Restoring last month’s copy by mistake can erase a week of orders.
  • Pick a quiet time. A full restore can briefly affect email delivery and DNS.
  • Gather your logins. Keep your WordPress admin details and the database details from wp-config.php close by.

After the restore, check these

Load your site in a private browser window and look over the layout, images, and links. Log in to WordPress and open a few posts and pages. Submit a form and run a test checkout if you take payments, and send and receive a test email if your mail lives on this account.

Check the padlock in your browser, because a certificate warning means the SSL certificate needs reinstalling. Confirm your scheduled tasks (cron jobs) still run. Set up two-factor authentication again if you used it on the cPanel account, since cPanel doesn’t carry it over in a restore.

Once everything looks right, take a new backup. The version you just restored is your new starting point. Then choose a backup schedule based on how often your site changes, so your next restore doesn’t leave you with missing orders, posts, or comments.

When the restore won’t start or fails

  • Your file doesn’t appear in the Select a File menu. Its location or name is off. Move it to /home and rename it to one of the accepted formats.
  • The restore finishes, but addon domains are missing or the account acts broken. Restricted Restore may have been on. cPanel says you must remove the account and restore it again without that option.
  • WHM says the archive isn’t valid. The file may be damaged or incomplete. Download it again and run gzip -t on it, because a file can upload cleanly and still be cut short.
  • The restore stops partway or complains about space. Free up disk space until you have double the archive’s size available, then try again.
  • Your site shows a database connection error afterward. Compare DB_NAME, DB_USER, and DB_PASSWORD in wp-config.php with the databases and user on the account.
  • You run the server yourself and restores keep failing. Check that MySQL’s skip-name-resolve setting is off, because cPanel warns it causes problems with restores.
  • You’re still stuck. Send your host the exact error text and the steps you took. Those details help them help you quickly.

Want restores to feel less like an event?

Full disclosure: we make BlogVault, so weigh this accordingly. A full cPanel backup is a manual safety net. You create it, store it, and restore it by hand or by ticket, and that’s fine for plenty of sites.

If you’d rather restore with a click, a WordPress backup plugin like BlogVault backs up your WordPress site automatically, stores encrypted copies away from your host, and restores the whole site, or only the files and tables you pick, from its dashboard. It works even when your site is down. It protects your WordPress site, so keep a full cPanel backup as well for email and account settings.

BlogVault restore dashboard showing backup versions, selective file and database table restoration, and advanced restore controls
BlogVault Backup Details dashboard showing backup verification, storage, frequency, file and table controls, Test Restore, and Restore actions

Signing up needs no credit card, and a 14-day money-back guarantee applies. You can try BlogVault, read how its one-click restores work, or follow our guide to restoring WordPress from a backup.

FAQs

Can I restore a full cPanel backup on shared hosting?

Usually only through JetBackup or your host. Shared plans rarely include WHM, so you’ll either use JetBackup if it’s there or send the file to support. You can still pull your website files or database out of the archive yourself.

Can I restore a full backup to a different server?

Yes, but cPanel prefers a different tool for moves. If you have root access on both servers, cPanel recommends WHM’s Transfer Tool and treats restoring from an archive as a last resort. When you do restore from an archive, WHM can replace the old server’s IP address in the account’s DNS records. Your domain still sends visitors to the new server only once its nameservers point there. If you’re moving your WordPress site, follow our WordPress migration checklist to check the destination server, DNS, and site functionality.

Does a full backup include my email?

Yes. A full backup carries your email data and settings, and the messages sit in the homedir/mail folder. If you only restore public_html, your email stays untouched.

Can I restore a full backup under a different username?

Yes, from the command line. The restorepkg script’s --newuser option restores the account under a new name. The name can’t already exist on the server, must be 16 characters or fewer, and needs its first eight characters to be unique.

How can I tell my full backup will restore before I need it?

Check the file, then test it somewhere safe. gzip -t and tar -tzf catch damaged archives. For real confidence, restore it to a test account or staging server, as our guide to testing backups explains.

Conclusion

You now know where your full backup lives and which of the five routes fits your access. The missing Restore button points you to JetBackup, WHM, or your host for the whole account, and to a few careful steps for just your files or database.

Pick your route, take a fresh backup of what’s there now, and test your site once it’s back.

Written by
Akshat Choudhary
Akshat Choudhary

Akshat is the founder and CEO of BlogVault, MalCare, and WP Remote.

Backups built for scale. Restores for the bad day.

No credit card · 14-day money-back guarantee

© 2026 BlogVaultWhatever breaks, you'll get it all back.