Moving a site from one cPanel host to another is one of the most common hosting tasks, and the one that causes the most unnecessary stress. Done in the right order, it's a clean process with zero downtime if you handle the DNS cutover correctly. This guide covers the two main methods (full cPanel backup and manual migration), how to test the new server before going live, and how to time the DNS switch to minimise visitor disruption.
The single most important pre-migration step is lowering your DNS TTL (Time to Live) on all records, especially the A record, to 300 seconds (5 minutes), at least 24 to 48 hours before migration day. TTL controls how long DNS resolvers around the world cache your records. If your TTL is 86400 (24 hours) and you change your A record, some visitors could still be hitting the old server for up to a day after the switch. With TTL at 300, propagation after the DNS change completes in minutes.
Log into wherever your DNS is managed, your domain registrar, Cloudflare, or your current host's DNS panel, and update the TTL value on your A record, AAAA record (if used), and www CNAME. Leave MX records at their existing TTL if you're not moving email. The TTL change itself propagates based on the current TTL value, which is why you need to make this change a day or more ahead of the actual migration.
The most reliable migration method uses cPanel's built-in full account backup, which bundles your files, databases, email accounts, DNS zones, cron jobs, and SSL certificates into a single archive. This is the approach most professional migration services use because it preserves everything in one operation.
On the source host, go to cPanel → Backup. Look for the main Backup tool (not the Backup Wizard, which only creates partial backups). Select "Full Account Backup" and choose to save the backup to your home directory. Once generated, the backup file appears in your home directory as a .tar.gz archive. Download it via FTP or the File Manager download option, these files are often several gigabytes for established sites, so allow adequate time.
On the destination host, contact their support and ask them to restore a cPanel full backup. Most hosts running WHM/cPanel can do this via the WHM Restore interface. Provide the location of your backup file (upload it to a temporary location they can access, or send via SFTP). The restore creates a near-identical copy of your account including all databases, email accounts, and cron jobs. Ask your new host what their process is before you start, some request the file in advance, others have a specific procedure for uploads.
When a full backup restore isn't available or practical, migrate manually. This is more steps but is fully reliable when done correctly.
Files: In cPanel File Manager on the source host, navigate to public_html, select all contents, right-click and compress to ZIP. Download the ZIP to your local machine. Upload it to public_html on the new host and extract it. For large sites (over 500MB), use FTP with FileZilla for more reliable transfer, large File Manager operations can time out.
Database: Open phpMyAdmin on the source host. Select your database from the left panel. Click the Export tab, choose Quick format SQL, and download the .sql file. For large databases over 100MB, use Custom export with gzip compression. On the new host, go to cPanel → MySQL Databases, create a new database and user, assign ALL PRIVILEGES, then open phpMyAdmin on the new host and import the .sql file via the Import tab.
Configuration: Update your wp-config.php (or equivalent application config) with the new database credentials. For WordPress, update DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST. Also verify the siteurl and home values in wp_options match your domain.
Email accounts: Email accounts are not transferred by the manual method. Recreate them in cPanel → Email Accounts on the new host with the same usernames and passwords. If you need to preserve existing emails stored in the old IMAP mailboxes, use a desktop email client like Thunderbird to copy messages from the old IMAP account to the new one before decommissioning the old host, or use a dedicated IMAP migration tool like imapsync.
SSL certificates don't transfer between hosts, each server needs its own certificate for your domain. Before going live on the new host, install SSL. Most cPanel hosts provide free Let's Encrypt certificates via cPanel → SSL/TLS → Let's Encrypt SSL. The installation takes under a minute and the certificate activates immediately. Do not skip this step: attempting to preview the site via the hosts file trick on an HTTPS site without a valid certificate will produce browser security warnings that make testing difficult.
After installing SSL on the new host, verify the certificate covers both yourdomain.com and www.yourdomain.com. Let's Encrypt via cPanel typically installs for both variants automatically, but confirm before testing.
Verify your site works on the new server before cutting DNS over using the hosts file method. On your local machine, edit your system hosts file:
C:\Windows\System32\drivers\etc\hosts (open Notepad as Administrator)/etc/hosts (use sudo)Add a line using the new server's IP address:
123.456.789.000 yourdomain.com www.yourdomain.com
Your browser now resolves your domain directly to the new server while the rest of the world still sees the old one. Browse the entire site: check all pages load, images display correctly, forms submit, WordPress admin works, and SSL is active (the padlock appears in the browser address bar). Test any functionality specific to your site, WooCommerce checkout, booking systems, membership areas. Fix any issues you find before proceeding. Remove the hosts file entry once you're satisfied and ready to cut DNS.
With testing complete and TTL already at 300 seconds, update your A record (and CNAME for www) to point to the new server's IP. Propagation completes for most resolvers within 5–15 minutes. Use our DNS Propagation Checker to monitor global propagation, you're looking for the new IP to appear from the majority of listed locations.
Keep the old host account active for at least 48 hours after the DNS switch. Some resolvers cache longer than the TTL suggests, and you may need to reference the old server for any files that weren't captured in the migration. Once you've verified the new site is operating correctly from a clean browser session (incognito or a different device, which won't have local DNS caching), raise the TTL back to 3600. Then cancel the old hosting account. Finally, check that outgoing email from the site (contact form notifications, order emails) is working correctly, SMTP configuration may differ between hosts.
HostBible plans are built for performance and reliability. If you're migrating, our team can help guide you through the process from start to finish at no extra cost.
View Hosting Plans