Migrating your WordPress site to a new host sounds intimidating, but I've done this process hundreds of times for clients and I can tell you: it's straightforward when you follow the right steps. Whether you're moving from Bluehost, SiteGround, GoDaddy, or any other host, this guide will walk you through every single step.
I've seen migrations go smoothly and I've seen them go sideways when people skip steps. This guide is designed to help you avoid the pitfalls. By the end, your site will be running on WP Engine's lightning-fast infrastructure with zero downtime.
Let's get started.
What You'll Need Before Starting
Before you begin the migration, make sure you have the following ready:
- Access to your current WordPress admin dashboard (wp-admin)
- FTP/SFTP credentials for your current host (in case the plugin method fails)
- Access to your domain registrar or DNS provider (GoDaddy, Namecheap, Cloudflare, etc.)
- A WP Engine account (you can sign up here → use code WPE20 for 20% off)
- Your current hosting login credentials
Don't have a WP Engine account yet? No problem → I'll walk you through that in Step 2.
Step 1: Back Up Your Current Site
This is the most critical step. Never, ever start a migration without a fresh backup. I've learned this the hard way early in my career, and I refuse to let you make the same mistake.
Option A: Use a Backup Plugin
The easiest way to create a complete backup is with a plugin. Here are my top recommendations:
- UpdraftPlus → Free, reliable, and creates both file and database backups. My go-to choice for most migrations.
- Duplicator → Creates a complete site package (files + database) that can be used for migration. This doubles as both a backup and migration tool.
- All-in-One WP Migration → Simple export/import tool that works well for smaller sites.
Option B: Manual Backup via Your Host
Most hosting providers offer built-in backup tools. Log into your current hosting control panel (cPanel, Plesk, or a custom dashboard) and look for:
- Backup Wizard → Usually found in cPanel under the "Files" section
- JetBackup → Common on many shared hosts
- Automated daily backups → Check if your host already has recent backups you can download
Option C: Manual Backup via FTP + phpMyAdmin
For the technically inclined, you can manually back up your site:
- Connect to your site via FTP/SFTP using FileZilla or your preferred client
- Download the entire
public_html(orwww) folder to your computer - Export your database via phpMyAdmin → go to your database, click "Export," and choose "Quick" method with SQL format
Pro Tip
Store your backup in at least two places → your local computer AND a cloud service like Google Drive or Dropbox. Redundancy saves lives (or at least websites).
Verify Your Backup
After creating the backup, check that the file size looks reasonable and that the backup file isn't corrupted. A typical WordPress site backup ranges from 100MB to 2GB depending on media files. If your backup is only a few kilobytes, something went wrong.
Step 2: Create Your WP Engine Account
If you haven't already, head to WP Engine's website and sign up for an account. Here's what to expect:
- Choose your plan → The Startup plan ($20/month) is perfect for a single site. If you have multiple sites, the Professional plan supports up to 10 sites.
- Complete the signup process → You'll need to provide payment information. Use code WPE20 to get 20% off your first payment.
- Set up your install → Once logged into the WP Engine User Portal, click "Create Install" and give your site a name. This creates a staging URL like
yoursitename.wpengine.comwhere your migrated site will live.
Take note of your WP Engine install name and the SFTP credentials provided in the portal → you'll need these for the migration.
Need help choosing a plan? I break down the options in my full WP Engine review.
Step 3: Migrate Your Site to WP Engine
Now comes the actual migration. WP Engine offers two main methods → I'll cover both.
Method A: WP Engine Automated Migration Plugin (Recommended)
This is the easiest and most reliable method for most users. WP Engine provides a free migration plugin that handles everything for you.
- Install the plugin on your current site: In your WordPress dashboard, go to Plugins → Add New, then search for "WP Engine Automated Migration" (or get it from the WordPress plugin directory). Install and activate it.
- Get your migration credentials: Log into your WP Engine User Portal. Go to your install → Settings → Migrations. You'll find your migration key and email/transfer URL.
- Enter credentials in the plugin: Back in your WordPress dashboard, go to WP Engine Migration → Settings. Enter the migration key and your WP Engine account email.
- Start the migration: Click "Start Migration." The plugin will begin transferring your files and database to WP Engine's servers.
- Wait for completion: Depending on your site size, this can take anywhere from 10 minutes to a few hours. You'll receive an email notification when it's done. You can also check the progress in the plugin dashboard.
Important
During the migration, continue using your site as normal. The migration plugin works in the background and creates a snapshot of your site. Any changes made after the migration starts won't be transferred → so avoid publishing new posts or making significant changes during this window.
Method B: Duplicator Plugin (Alternative)
If for some reason the WP Engine migration plugin doesn't work with your setup, the Duplicator plugin is a reliable fallback that I've used successfully on dozens of migrations.
- Install and activate Duplicator on your current site
- Create a new "Package" → this bundles your files and database into a portable archive
- Download both the installer.php file and the archive file (usually a .zip or .daf)
- Upload both files to your WP Engine install via SFTP using the credentials from your WP Engine portal
- Visit
yourdomain.wpengine.com/installer.phpin your browser and follow the Duplicator setup wizard - Complete the installation → Duplicator will import your database and configure wp-config.php automatically
- Delete the installer files after completion (Duplicator prompts you to do this)
Method C: Request Free Professional Migration
If your site is complex (large e-commerce store, multisite, custom applications), WP Engine offers free professional migration assistance. After signing up, submit a migration request through your user portal and their team will handle the entire process for you. This is especially useful if you're not comfortable with the technical steps above.
For detailed instructions, you can always reference the WP Engine support documentation, which covers migration in depth.
Step 4: Test Your Site on WP Engine (Before Going Live)
After the migration completes, your site is live on WP Engine's staging URL → something like yoursitename.wpengine.com. Do not skip testing. This is where you catch issues before your visitors see them.
What to Test:
| Test Item | What to Check |
|---|---|
| Homepage | Loads correctly, all images display, layout intact |
| Internal pages | Test key pages (About, Services, Contact, blog posts) |
| Forms | Submit test entries through contact forms, checkout flows |
| E-commerce | Add to cart, complete a test purchase, verify payment processing |
| Media library | All images, videos, and files transferred correctly |
| Plugins | All plugins activated and functioning as expected |
| Permalinks | Go to Settings → Permalinks and click "Save Changes" to reset them |
| SSL/HTTPS | WP Engine provides free SSL → verify the padlock appears |
| Admin login | Confirm you can log into wp-admin on the new server |
Fix Broken Links
If you notice broken links or missing images, it's usually a search-and-replace issue with the database URLs. WP Engine handles this automatically with their migration plugin, but if you used Duplicator or a manual method, you may need to run a search and replace. The Better Search Replace plugin works well for this → just replace your old domain with your new WP Engine staging URL.
Check Performance
Run a speed test on your WP Engine staging URL using Google PageSpeed Insights. You should see immediate improvements compared to your old host. WP Engine's EverCache and CDN typically deliver significantly better Core Web Vitals scores.
Step 5: Update Your DNS Settings
Once you've confirmed everything works on the staging URL, it's time to point your domain to WP Engine. This is done by updating your DNS records.
Find Your WP Engine IP Addresses
In your WP Engine User Portal, go to your install → Domains. WP Engine will provide you with:
- A record IP address → for pointing your root domain (example.com)
- CNAME target → for pointing your www subdomain (www.example.com)
Update DNS at Your Registrar
Log into your domain registrar or DNS provider (GoDaddy, Namecheap, Cloudflare, etc.) and update the following records:
| Record Type | Name/Host | Value |
|---|---|---|
| A Record | @ (or leave blank) | WP Engine IP address |
| CNAME | www | WP Engine CNAME target |
If you're using Cloudflare as your DNS provider, make sure the proxy status (orange cloud) is set correctly. WP Engine recommends setting the proxy to "DNS Only" (grey cloud) for the A record to avoid SSL conflicts, though you can use Cloudflare's proxy if you configure it properly.
Reduce TTL Before Migration (Pro Tip)
If you planned ahead, you should have reduced your DNS TTL (Time To Live) to 300 seconds (5 minutes) at least 24 hours before the migration. This makes DNS propagation much faster. If you didn't do this, don't worry → propagation will still happen, it just might take longer.
Step 6: Final Cutover
After updating your DNS, here's what happens next:
- Add your domain in WP Engine: In your User Portal, go to your install → Domains → Add Domain. Enter your domain name (e.g., example.com and www.example.com). WP Engine will verify the DNS and provision SSL certificates automatically.
- Wait for DNS propagation: This typically takes 1 to 48 hours, though most changes propagate within 1-4 hours. You can check propagation status using tools like DNS Checker.
- Test your live domain: Once propagation is complete, visit your actual domain (not the WP Engine staging URL) and verify everything works.
- Force HTTPS: In your WP Engine portal, enable "Force HTTPS" to ensure all traffic uses SSL. This is critical for SEO and security.
Don't Cancel Your Old Host Yet!
Keep your old hosting active for at least 7 days after the migration. This gives you a safety net in case anything goes wrong. After a week of smooth sailing on WP Engine, you can safely cancel your old hosting.
Troubleshooting Common Migration Issues
Even with a smooth migration, you might encounter a few bumps. Here are the most common issues I've encountered and how to fix them:
Site Shows Mixed Content Warning
If you see a warning that your site is "not fully secure" after migration, it's because some resources (images, scripts, stylesheets) are still loading over HTTP instead of HTTPS.
Fix: Install and run the Better Search Replace plugin to replace all instances of http://yourdomain.com with https://yourdomain.com in the database. Alternatively, enable the "Force HTTPS" setting in your WP Engine portal.
Pages Return 404 Errors
If your homepage loads but internal pages show 404 errors, it's a permalink issue.
Fix: Log into your WordPress admin dashboard, go to Settings → Permalinks, and simply click "Save Changes." This flushes the rewrite rules and fixes most 404 issues. If the problem persists, check that your .htaccess file was transferred correctly.
Database Connection Error
If you see "Error establishing a database connection," your wp-config.php file has incorrect database credentials.
Fix: WP Engine manages database credentials automatically. If you used Duplicator, re-run the installer. If you used the WP Engine migration plugin, contact their support → they can regenerate the correct credentials.
Email Stopped Working
WP Engine does not host email services. If your email was handled by your previous host, you'll need to set up email separately.
Fix: Update your MX records at your DNS provider to point to your email service. Common options include:
- Google Workspace → Professional email with Gmail interface
- Microsoft 365 → Outlook-based business email
- Zoho Mail → Free tier available for up to 5 users
- Your old host's email service → Some hosts let you keep email separately
Critical: Do not change your MX records during DNS propagation for your website. Wait until your site DNS is fully propagated, then update MX records separately to avoid email disruption.
Slow Migration or Plugin Timeout
For very large sites (over 5GB), the migration plugin may time out or stall.
Fix: Try the Duplicator method instead, or request free professional migration from WP Engine's team. They have tools and server-level access that can handle large migrations without timeout issues.
After Migration: Optimization Tips
Now that your site is on WP Engine, take advantage of everything the platform offers:
- Enable the built-in CDN → WP Engine includes a global CDN. Turn it on in your portal for faster load times worldwide.
- Set up staging environments → Use WP Engine's one-click staging to test changes before pushing them live.
- Configure daily backups → WP Engine runs automated daily backups, but you can also create on-demand backups before making major changes.
- Install the WP Engine plugin → This gives you access to caching controls, CDN purging, and other platform features directly from your WordPress dashboard.
- Monitor performance → Use the WP Engine portal to track your site's performance metrics and resource usage.
For more optimization tips, check out WPBeginner's WordPress performance guides and the WP Engine knowledge base.
Ready to Migrate to WP Engine?
Get started today and use code WPE20 for 20% off your first payment!
Get WP Engine (20% Off)Need Help With Your Migration?
If you're not comfortable handling the migration yourself, or if your site is particularly complex (large e-commerce store, custom applications, multisite network), I offer professional WordPress migration services. I'll handle the entire process → backup, migration, testing, DNS updates, and post-migration optimization → so you can focus on running your business.
Get in touch with me here to discuss your migration needs.