cPanel to cPanel migration: a checklist
Updated 6 min readBy the DNSPeek team
A cPanel-to-cPanel move is usually one full account backup restored on the new server, or a WHM Transfer Tool run if you have root access on the new side. The backup carries files, databases, mailboxes, DNS zone and cron jobs, but not server-level settings such as PHP extensions or firewall rules. Test the restored account on the new IP before you change DNS, then sync email and switch.
Two ways to move a cPanel account
| Method | Who can use it | How it works |
|---|---|---|
| Full account backup and restore | Anyone with the cPanel login on the old host | Create a full backup in cPanel (Backup → Download a Full Account Backup), then ask the new host to restore it, or restore it yourself in WHM if you have it. |
| WHM Transfer Tool | Root or reseller access on the new server | WHM connects to the old server and copies one or more accounts, including their databases and mail. |
| Host-run migration | Customers of hosts that offer free migrations | The new host does one of the above for you. Ask what they include and when they will do the final sync. |
All three give the same result: the account exists on the new server, with the same username, home directory, databases and mailboxes, while DNS still points at the old one. That is the window in which you test.
What a cPanel backup copies, and what it doesn’t
A full account backup is thorough, but it only knows about the account. Anything configured at the server level stays behind.
| Usually copied | Check by hand |
|---|---|
| Home directory, including public_html and addon domain folders | PHP version per domain (MultiPHP) and PHP extensions |
| MySQL or MariaDB databases and their users | PHP limits such as memory_limit and upload_max_filesize |
| Email accounts, mail, forwarders and filters | Server firewall, ModSecurity rules and IP allowlists |
| DNS zone of the account’s domains | Remote database access hosts and SSH keys |
| Cron jobs, subdomains, addon and parked domains | Dedicated IP addresses and anything hard-coded to the old IP |
| Installed SSL certificates | Third-party integrations that allowlist the old server’s IP |
Compare the PHP version first: a site moved from PHP 7.4 to 8.x without checking can fail with fatal errors that only show on some pages. A QA report crawls the site on the new server and lists PHP errors printed on pages, missing files and server error pages.
Step by step
Step 1: Inventory the old account
Note the domains, PHP version per domain, PHP limits, cron jobs, email accounts and any external services that allowlist the old IP.
Step 2: Lower the TTL
Set the TTL of the A and MX-related records to 300 seconds a day or two before the move. Check the current values with the TTL checker.
Step 3: Create the backup or run the transfer
Generate a full account backup in cPanel and download it, or start a WHM Transfer Tool run from the new server.
Step 4: Restore and match the server settings
Restore the account on the new server, then set the same PHP version, extensions and limits for each domain.
Step 5: Test on the new IP before DNS
Open the site on the new server with a preview link (domain plus new IP), click through key pages, submit a form and sign in to the CMS. Share the link with the site owner.
Step 6: Run a QA report
Crawl the preview with a QA report: it flags broken pages and files, PHP errors, redirect problems and missing email DNS records.
Step 7: Switch DNS and sync mail
Freeze content, point the A records (and MX, if mail moves too) at the new IP, then copy mail and data that arrived on the old server meanwhile.
Step 8: Verify and keep the old account a while
Watch propagation with the DNS propagation checker, check the certificate, and cancel the old account only after traffic and mail have stopped arriving there.
Email: the part people forget
If the domain’s MX record points at the old cPanel server (often mail.example.com on the same IP), mail keeps arriving there until DNS changes. Messages that arrive after your backup exist only on the old server. Plan for that:
- Switch the website and mail records at the same time, then copy the mail that arrived in between. The new host can rerun the transfer for mail only, or you can sync mailboxes over IMAP.
- Tell users their mail client settings may change if the mail hostname or certificate changes on the new server.
- Check that the SPF record lists the new server if it sends mail, for example from contact forms. Look it up with the SPF checker, and check MX with the MX lookup.
If email is hosted elsewhere, such as Google Workspace or Microsoft 365, leave MX alone. Just make sure the DNS zone on the new side carries the same MX, SPF, DKIM and DMARC records before you move nameservers.
Change the A record or the nameservers?
If the domain uses the old host’s nameservers, you have two choices. Changing the nameservers to the new host is clean but slower, because the delegation at the registry is cached for up to two days by many resolvers. Changing only the A records at the current DNS provider is fast and reversible, and you can move nameservers later when nothing else is changing.
Either way, compare the zone on both sides first. The DNS compare tool shows records that differ between the old and new DNS servers, and the nameserver checker shows which nameservers the registry hands out today.
SSL on the new cPanel server
cPanel’s AutoSSL often cannot issue a certificate for your domain until it points at the new server. Until then the server presents its own hostname certificate or a self-signed one. To test the site over HTTPS anyway, set a DNSPeek preview link to Skip verification, and confirm the real certificate after the switch with the SSL checker. See SSL modes.
cPanel migration checklist
cPanel to cPanel
- Domains, addon domains and subdomains listed
- PHP version, extensions and limits noted for each domain
- Cron jobs and external IP allowlists noted
- TTL lowered to 300 seconds in advance
- Full account backup downloaded or WHM transfer completed
- Same PHP settings applied on the new server
- Site checked on the new IP with a preview link
- Contact form sends mail from the new server
- QA report run, critical findings fixed
- DNS zone compared: MX, SPF, DKIM and DMARC present on the new side
- A records switched; mail synced after the switch
- Certificate issued and valid on the new server
- Old account cancelled only after traffic and mail stopped
Frequently asked questions
Does a cPanel full backup include email?
Yes. A full account backup includes email accounts, their stored messages, forwarders and filters. Messages that arrive on the old server after the backup are not in it, so sync mail again after the DNS switch.
Can I restore a cPanel backup without WHM access?
Not as a whole account. Restoring a full backup is a WHM function, so on shared hosting you upload the backup and ask the new host to restore it. With only cPanel access you can restore parts, such as the home directory or a database, from partial backups.
Will my site go offline during a cPanel migration?
No, as long as the old account keeps running until DNS has moved. The old server serves visitors while you restore and test on the new one, and after the switch visitors move over as their DNS caches expire.
How do I test the restored account before changing DNS?
Request the site from the new IP under its real domain name. A DNSPeek preview link does this in any browser and can be shared; a hosts file entry does it on one computer. Opening the site by IP alone usually shows the server default page instead of your site.
Should I move the nameservers to the new host?
Only if you want the new host to manage DNS. Changing nameservers takes longer to spread than changing an A record, so many people switch the A records first and move the nameservers later, after copying every record to the new zone.