Migrations without Drama: A Zero-Downtime Checklist
WordPress migrations can be risky, but with proper planning and a zero-downtime checklist, you can move hosts or platforms without losing traffic or data.

Why Migrations Fail
Common pitfalls
Most migration problems stem from poor planning: incomplete backups, missing DNS records, broken redirects, or plugin conflicts. Rushing a migration without testing leads to downtime, lost data, or Search Engine Optimization (SEO) damage.
The good news: with a methodical checklist and staging validation, you can achieve zero-downtime migrations even for complex sites.
Pre-Migration Planning
Audit your current site
Document everything before you start:
- WordPress version, PHP version, database size
- Active plugins and themes (with versions)
- Custom code, cron jobs, external integrations
- DNS records (A, CNAME, MX, TXT)
- SSL certificates and renewal process
Choose your migration method
Options include:
- Plugin-based: Use migration plugins like Duplicator or All-in-One WP Migration (good for small sites)
- Manual: Export database, transfer files via SFTP, update URLs (more control, higher complexity)
- Host-provided: Many managed hosts offer migration services (easiest, but less control)
For mission-critical sites, manual or host-provided methods offer more reliability.
Test environment setup
Create a staging copy of your new host. This is where you’ll dry-run the migration and catch issues before touching production.
Migration Execution Checklist
1. Full backup
Backup your current site (database + files). Store it offsite. Verify you can restore it if needed.
2. Database export and import
Export your WordPress database using phpMyAdmin or WP-CLI. Import it to the new host. Run search-replace to update URLs (old domain → new domain or old paths → new paths).
Example WP-CLI command:
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables --dry-run
Run with --dry-run first, then remove that flag to execute.
3. File transfer
Copy WordPress files (wp-content, themes, plugins, uploads) to the new host via SFTP or rsync. Preserve file permissions and ownership.
4. DNS preparation
Lower your DNS Time To Live (TTL) to 300 seconds (5 minutes) at least 24 hours before migration. This speeds up DNS propagation when you switch.
5. Test on new host
Use a hosts file entry or temporary domain to test the new site before changing DNS. Verify:
- Homepage loads correctly
- Admin login works
- Forms submit successfully
- Media files load (check for broken image paths)
- SSL certificate is active
6. Redirects and permalinks
Set up 301 redirects for any URL changes. Update WordPress permalink settings if needed (Settings → Permalinks, click Save).
7. DNS cutover
Update DNS A records to point to the new host’s IP. Wait for propagation (5-30 minutes with low TTL). Monitor both old and new hosts during this window.
8. Final sync
After DNS propagation, do a final sync of any content added to the old site during migration (if applicable). Then shut down the old site to prevent split-brain issues.
9. Post-migration verification
Check:
- All pages load
- Forms and checkout work
- Analytics and tracking codes fire
- SSL certificate is valid
- Email (if hosted on same domain) still works
10. Monitor for 48 hours
Watch error logs, uptime monitors, and user reports. Keep the old host backup active for at least a week in case you need to roll back.
Troubleshooting Common Migration Issues
Broken images or assets
If images don’t load, check that file paths are correct and that search-replace updated all URLs. Also verify file permissions (typically 644 for files, 755 for directories).
Database connection errors
Double-check wp-config.php database credentials (host, name, user, password). Ensure the database user has full privileges.
Redirect loops
If you see infinite redirects, check .htaccess rules and WordPress Site URL / Home URL settings (in wp_options table or Settings → General).
References
Key Takeaways
- Plan thoroughly: audit current site, choose migration method, set up staging.
- Execute methodically: backup, export/import database, transfer files, test before DNS cutover.
- Monitor post-migration and keep old host backup active for rollback.
