How to Migrate Your Site Between Hosts With Zero Downtime
A step-by-step guide to moving your site from one host to another without losing visitors, email, or SEO rankings — with a full pre/during/post checklist.
Moving a site between hosts scares many owners — and the fears are valid: lost email, hours of downtime, even tanked Google rankings. With the right prep, migration can happen without a visitor noticing. Here's the full playbook based on our experience migrating 800+ sites for Best Host customers.
Why you might need to migrate
- Bad service at your current registrar (slow support, dropped tickets)
- Slowdowns after a period of stability
- Unjustified price hikes
- Trust loss or commercial dispute
- Moving to hosting closer to your audience geographically
- New technical requirements (PHP 8.3, Redis, LiteSpeed)
- Consolidating multiple sites in one account
- Upgrading from shared to VPS or dedicated
Before migration: the full checklist
Pre-migration checklist
- Full backup of site, databases, and email (two copies: local + cloud)
- Document current DNS (A, AAAA, MX, CNAME, TXT, SRV records)
- List every active mailbox with credentials
- SSL certificate — check portability or plan reissue
- Rollback plan if things go wrong
- Notify customers (if you're B2B or SaaS)
- Pick a low-traffic time (3–5 AM or Friday)
- List installed plugins/extensions
- Export databases in a size the new host accepts
Step 1: Prepare the new host
- Request a full backup from your old host (cPanel Full Backup or manual).
- Upload and extract on the new host into
public_html. - Create the databases and update
wp-config.php(WordPress) or.env(Laravel) or equivalent. - Test through your local hosts file before any DNS change:
# /etc/hosts (macOS/Linux) or C:\Windows\System32\drivers\etc\hosts (Windows)
123.45.67.89 example.sa www.example.sa
This makes only your machine see the site on the new host before DNS actually changes. Visit the site, test every important page, contact form, payment, search, login.
Step 2: Sync the latest data
Right before DNS change, sync any new data:
- Articles published after the first backup
- New store orders and customers
- Emails not yet copied
- User-uploaded files
Use rsync scripts for files:
rsync -avz --progress old-server:/var/www/uploads/ new-server:/var/www/uploads/
And for MySQL:
mysqldump -u user -p old_db | ssh new-server 'mysql -u user -p new_db'
Or use WP All-in-One Migration / Duplicator for WordPress.
Step 3: Lower TTL 24 hours in advance
DNS records have a time-to-live (TTL). Drop it to 300 seconds (5 minutes) a day before migration so the new value propagates quickly. 48 hours after, restore to 3600.
A @ OLD_IP TTL: 300
MX @ mail.example.sa TTL: 300
Step 4: Change DNS
When ready, update A and MX records at your registrar. Propagation clock starts — 10 minutes to 48 hours (usually 1–4 in 2026 thanks to modern DNS).
Tip: keep the old host live for 72 hours after the switch so everyone reaches the new server. Emails may still hit the old server during this period.
Use whatsmydns.net to check global propagation.
Step 5: Post-migration
- Activate the new SSL certificate
- Test sending/receiving for every mailbox
- Verify all forms (contact, subscribe, payment)
- Watch Search Console for a week — any crawl errors?
- Check speed with PageSpeed Insights
- Review error logs (
error_log) - Verify all redirects and .htaccess
- Re-set up cron jobs and scheduled tasks
- Update IPs in third-party services (CDN, email API)
- Re-enable daily backups
WordPress migration specifics
WordPress has migration quirks. Two best tools:
1. WP All-in-One Migration
- Free (up to 512 MB) or $99 Pro
- One-click move: export from old, import on new
- Handles everything: database, media, settings
2. Duplicator
- Free for smaller backups
- Builds a "Package" runnable on any new server
- More flexibility than All-in-One
3. Manual (the most powerful)
- Upload files via FTP
- Export database via phpMyAdmin
- Replace old URLs with Better Search Replace
- Update
wp-config.php
Migrating e-commerce safely
Migrations are more critical for stores because any error means lost orders. Extra steps:
- Pause new orders during migration (maintenance mode)
- Migrate all databases together: products, orders, customers, reviews
- Test payment gateways (Mada, Apple Pay) on Sandbox
- Update webhooks at Stripe, Moyasar, Tap, etc.
- Test shipping integrations (SMSA, Aramex)
- Run a real purchase test before going live
Common mistakes (avoid them)
- Forgetting email migration: emails don't move with the site. Export manually or use imapsync.
- Changing DNS before testing: always test via hosts file first.
- Not lowering TTL: leaves migration in limbo for hours.
- Killing the old host immediately: keep it for 72+ hours as insurance.
- Not updating robots.txt: if you copied a staging site,
robots: noindexmay leak. - Forgetting sitemap: update sitemap.xml and resubmit to Search Console.
- Skipping backups: start fresh backups on the new server immediately.
How long does migration take?
| Site type | Approximate time |
|---|---|
| Small brochure site | 1–3 hours |
| Medium WordPress (< 10 GB) | 3–6 hours |
| Medium WooCommerce store | 6–12 hours |
| Large site (> 50 GB) | 12–24 hours |
| Custom web app | Depends on architecture |
Free migration from Best Host
Our team migrates free for every new customer — we handle everything above and protect rankings and email. The whole process typically takes 24–48 hours with no one the wiser. We support migrations from:
- HostGator, Bluehost, GoDaddy, Hostinger
- Salla, Zid, Shopify
- AWS, DigitalOcean, Linode
- Any other Saudi host
Bottom line
Zero-downtime migration is possible with proper prep. Follow the checklist, test before changing DNS, and keep the old host for 72 hours. If you'd rather not worry, our team handles the whole process for free — WhatsApp us and we'll start prep today.