Moving a WordPress site sounds daunting โ but it does not have to be. Whether you are switching hosts, changing domains, or pushing a staging site to production, this guide walks you through every method, every checkpoint, and every potential pitfall. Zero downtime, zero data loss.
When to Migrate Your WordPress Site
Common migration triggers include: outgrowing your current hosting (slow speeds, frequent downtime), finding a better-priced host with superior performance, rebranding to a new domain, or moving a site from a staging environment to live production. Each scenario requires slightly different handling, but the core process remains the same.
Pre-Migration Checklist: Backup Everything
Before touching anything, complete these steps:
- Full site backup โ Use UpdraftPlus, BackupBuddy, or your host's backup tool. Download both the database dump and the full file archive.
- Document current settings โ Screenshot your permalink structure (Settings โ Permalinks), active plugins list, and any custom DNS records.
- Note PHP version โ Check your current PHP version (Tools โ Site Health). Your new host must support the same or higher version.
- Deactivate caching and security plugins โ They can interfere with the migration process.
Never skip the backup. A full backup is your safety net โ if anything goes wrong, you can restore your original site in minutes.
Method 1: Migration Plugins (Recommended for Beginners)
Migration plugins handle the entire process with a few clicks. The top three:
- All-in-One WP Migration โ Export your entire site as a single file, import it on the new host. Handles URL replacements automatically. Free for sites up to 512MB.
- Duplicator โ Creates a package (installer.php + archive.zip). Upload both to the new host via FTP, run installer.php, and follow the wizard. Supports larger sites.
- Migrate Guru โ A cloud-based migrator that handles sites up to 200GB. No storage limits on your end โ it copies directly between servers. Free and fast.
With any plugin method, the process is: export on the old host, import on the new host, update DNS, verify. Total time: 30โ60 minutes.
Method 2: Manual Migration (Full Control)
For advanced users or very large sites, manual migration gives you complete control:
- Export the database โ Via phpMyAdmin or WP-CLI:
wp db export. This creates a .sql file containing all your content, users, and settings. - Copy all files via FTP โ Use FileZilla or your host's file manager. Download the entire WordPress directory (wp-content, wp-admin, wp-includes, and all root files).
- Create a new database on the new host โ Note the database name, username, and password.
- Import the database โ Via phpMyAdmin on the new host, import the .sql file.
- Update wp-config.php โ Edit the database credentials (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST) to match the new server.
- Search-replace URLs โ Use WP-CLI (
wp search-replace 'olddomain.com' 'newdomain.com') or the Better Search Replace plugin to update all internal links.
DNS Changes and Propagation
After migration, point your domain to the new host by updating nameservers or A records. DNS propagation takes 24โ48 hours globally, though most users see the change within a few hours. During propagation, some visitors may still land on the old server, which is why you should keep both sites running until propagation completes.
Post-Migration Testing Checklist
Before declaring the migration complete, verify:
- All pages and posts load without errors
- Internal links work (no old URLs lingering)
- Contact forms send email successfully
- SSL certificate is active and valid
- Images, CSS, and JavaScript load correctly
- Admin dashboard is accessible at /wp-admin
- Site speed is as expected on the new host
Troubleshooting Common Migration Issues
- White screen after migration โ Usually a PHP version mismatch. Enable WP_DEBUG in wp-config.php to see the error.
- Mixed content warnings โ Some URLs still use http://. Use Really Simple SSL or a search-replace tool to fix.
- Database connection error โ Double-check wp-config.php credentials against your new database settings.
- Missing images โ File permissions may be wrong. Set wp-content/uploads to 755.
Minimizing SEO Impact During Migration
Keep your URL structure identical. Do not change permalinks during migration. Set up 301 redirects from any old URLs that change. Submit your new sitemap to Google Search Console. Keep the old site live until DNS propagation completes. These steps ensure your rankings survive the move intact.
WordPress migration, when done methodically, is a straightforward process. Choose the plugin method for simplicity, or the manual method for full control. Either way, with proper preparation, your site moves without a hiccup. Need migration help? We handle WordPress migrations end-to-end โ zero downtime guaranteed.