Whether you're moving a single client from your old reseller plan to your new ipxcore one, consolidating two servers, or doing a full provider switch, WHM has built-in tools that handle 95% of cases without you needing to touch the command line. This article walks through the methods in order of preference.
Method 1: Transfer Tool (best for whole-server moves)
WHM's Transfer Tool moves multiple accounts at once with a wizard interface. Best for: moving lots of accounts, or moving to a brand-new server.
- On the destination server (the new one), log in to WHM.
- Go to Transfer or Restore Tool → Transfer Tool.
- Enter the source server's details:
- Remote Server Address: hostname or IP of the old server
- SSH Port: usually 22 (or 2222 on cPanel servers with custom port)
- Authentication: root password (preferred if available) or root SSH key
- Click Fetch Account List. WHM connects, lists every cPanel account on the source.
- Tick the accounts to transfer. For a full server move, check the box at the top.
- Configure options:
- Live transfer: ON if you want minimal downtime (the source stays up; we sync the delta at the end)
- Express Transfer: OFF (it skips email, which you almost always want)
- Copy DNS Configuration: ON
- Click Copy. The transfer runs in the background; you can close the browser.
Time estimate: ~5 minutes per GB on a 1 Gbps link. A 100 GB transfer takes about an hour.
Method 2: Account-to-account transfer (single account)
For moving one account between two existing WHM servers:
- On the destination server: Transfer or Restore Tool → Copy an Account from Another Server.
- Enter the source server hostname, SSH port, and root credentials.
- Pick the cPanel username from the dropdown of accounts on the source.
- Click Copy.
Faster than the multi-account Transfer Tool for single accounts because it doesn't enumerate the whole server.
Method 3: Backup + restore (no SSH access between servers)
If you can't set up SSH between source and destination (different providers with restrictive firewalls, or a one-way migration where you've lost root on the source), use a manual backup-and-restore:
- On the source: log in to cPanel as the user. Generate a Full Account Backup (Backup → Generate Full Backup → Home Directory destination).
- Download the resulting
backup-DATE_user.tar.gzfile via FTP or File Manager. - Upload the file to the destination server (SFTP into
/homeas root, or place it in your reseller account's home directory and use WHM's restore). - On the destination: WHM → Transfer or Restore Tool → Restore a Full Backup/cpmove File. Browse to the file and click Restore.
This works between any two cPanel servers regardless of network connectivity.
DNS strategy: minimize downtime
Most "migration downtime" isn't actually server downtime — it's DNS propagation lag. Strategy:
- Lower TTL on your DNS records 24-48 hours before the migration. Set them to 300 seconds (5 minutes). This shrinks the worst-case propagation window.
- Run the transfer. Source server keeps serving traffic during this.
- Verify the new copy. Test the destination using a temporary URL or by editing your local
hostsfile. Confirm the site, email, and databases all work. - Update DNS. Switch nameservers (or A records) to the new server. With 300-second TTL, ~95% of visitors hit the new server within 10 minutes.
- Wait 48 hours with both servers running. Stragglers with cached DNS will resolve to the old server until their cache expires.
- Decommission the old server. Verify access logs show no recent traffic, then cancel.
What gets transferred (and what doesn't)
WHM's transfer tools handle:
- All home-directory files
- All MySQL databases and users
- Email accounts, mailboxes, filters, forwarders, autoresponders
- FTP accounts
- DNS zone files
- Cron jobs
- SSL certificates (re-issued via AutoSSL after DNS points to new server)
- cPanel password (preserved)
- Subdomains, addon domains, parked domains
What doesn't transfer automatically:
- Custom server-level config (Apache, php.ini overrides done outside cPanel) — you have to re-do these on the new server
- Email in IMAP folders that arrived between the transfer start and DNS cutover — mitigated by Live Transfer mode, which does a final delta sync
- Anything outside the cPanel account (data in
/root,/etc, custom services, etc.)
Common pitfalls
- Username collision: if the username already exists on the destination, the transfer fails. Either delete the destination account first, or use the rename option in the transfer tool.
- SSH connection refused: source server has SSH locked down to specific IPs. Ask their support to whitelist your destination server's IP.
- Disk full during restore: always verify the destination has 2x the source backup size of free space (cPanel extracts, then commits).
- Email arriving on the old server post-cutover: if you didn't use Live Transfer, you may have a few hours of mail stranded on the old server. Re-export those mailboxes manually before decommissioning.
Need help?
Migrations are stressful. Open a ticket with the source server details and we'll do the migration for you free of charge — we do hundreds of migrations a month and have seen every weird edge case.