The short answer
To move hosts without downtime, copy your website to the new server while the old one keeps serving visitors, test the copy privately, then update your DNS. Since both servers hold a working copy, visitors always reach a live site. Lowering your DNS TTL beforehand speeds up the switch.
Step 1: Lower your DNS TTL in advance
TTL (time to live) tells resolvers how long to cache your DNS records. Cloudflare's documentation explains the trade-off: longer TTLs speed up lookups, but updates take longer to reach visitors.
About 24 to 48 hours before the move, drop the TTL on your A record (and MX if email is moving) to something short like 300 seconds. Wait at least as long as the old TTL so caches expire. Now, when you switch, most visitors move over within minutes.
Step 2: Take a full backup
Download a complete backup from your current host: files, every database and email if you're moving it. In cPanel, a full account backup covers all three. Keep a copy on your own computer as a safety net.
Step 3: Copy the site to the new host
Restore the backup on the new server or use a WordPress migration plugin. Between two cPanel hosts, a full cPanel backup can often be imported directly. Check that:
- All files are present
- The database imported without errors
- Your
wp-config.phpor app settings point to the new database name, user and password
Step 4: Test before anyone else sees it
Preview the site on the new server before changing DNS. The common way is to edit your computer's hosts file so your domain points to the new server's IP only on your machine. Then click around properly:
- Home page, product pages and forms
- Login and admin area
- Checkout and contact forms (send a test)
Fix anything broken now, while real visitors are still on the old server.
Step 5: Freeze changes and do a final sync
If your site changes often, like a store taking orders, pause updates briefly and do a final database export and import so the new server has the latest content. Quiet brochure sites can usually skip this.
Step 6: Switch DNS
Update your domain's A record to the new server IP, or change nameservers if you're moving DNS to the new host too. Thanks to the low TTL, traffic shifts quickly. Leave the old server running so anyone with cached DNS still sees a working site.
Step 7: Check SSL, email and then cancel
Once DNS points to the new server, confirm your free SSL certificate has been issued (on cPanel hosts, AutoSSL handles this). Send and receive test emails. After a week or two with no issues, cancel the old hosting. Then raise your TTL back up.
Migration checklist
| Task | When |
|---|---|
| Lower DNS TTL | 24 to 48 hours before |
| Full backup | Before copying |
| Restore on new host | Day of move |
| Test via hosts file | Before switching DNS |
| Final sync | Just before switching |
| Update DNS | Switch day |
| Verify SSL and email | After DNS update |
| Cancel old host | 1 to 2 weeks later |
Or let the new host do it
Doing it yourself is very doable, but fiddly. WhyShared includes free migration on its shared hosting plans: the team moves your files, databases and emails for you. If speed is the reason you're moving, read how to speed up WordPress on shared hosting once you're settled in.
Frequently asked questions
How long does DNS propagation take?
It depends mostly on the TTL set before the change. With a low TTL, most visitors switch within minutes. Some resolvers cache longer, so keep the old host active for a while.
Will moving hosts hurt my SEO?
Not if the URLs stay the same and the site stays online. A clean move with no downtime and the same domain has no lasting SEO impact.
Do I lose emails when moving hosts?
You can, if MX records change before mailboxes are copied. Migrate email accounts first, then update MX, and check both inboxes for a few days.
Should I cancel my old host before moving?
No. Cancel only after the new site has run smoothly for a week or two.
