Moving a website to a new host sounds risky, but it follows a predictable order. The secret to zero downtime is simple: the old site keeps running until the new one is fully ready and tested, and only then is DNS switched.
What has to move
- Website files: everything under the document root.
- Databases: exported from the old host and imported on the new one.
- Email: accounts and their existing messages.
- DNS records: any custom records such as verification TXT, subdomains or external services.
- Settings: cron jobs, PHP version, redirects and SSL.
The migration in order
- Inventory: list domains, email accounts, databases and DNS records on the old host. Lower the DNS TTL a day ahead; see DNS propagation and TTL.
- Copy: transfer a full cPanel backup, or copy files and databases separately.
- Configure: update the app's database settings if names changed, and create the email accounts.
- Test before going live: preview the new site with your computer's hosts file or a temporary URL. Check pages, forms, logins and checkout.
- Switch DNS: change nameservers or the A record to the new server.
- Migrate email: sync remaining messages with IMAP migration once mail arrives at the new server; see migrate email over IMAP.
- Final checks: SSL issued, forms sending mail, backups running. Keep the old hosting for a few days before cancelling.
Tip: Freeze content changes (new posts, orders) during the final copy, or do a last database sync right before the DNS switch, so nothing is lost.
cPanel to cPanel is easiest
Between two cPanel hosts, a full account backup includes files, databases, email and settings in one file and can be restored in a single step. MdmHost support can help with moves to our hosting; see migrate a website from another host or open a ticket.
