Migrating a WordPress site sounds intimidating — but with the right approach, it’s a straightforward process that you can complete in under two hours without any downtime. Whether you’re moving to a faster host, escaping bad service, or consolidating multiple sites, this step-by-step guide walks you through the entire WordPress migration process safely from start to finish.
What You’ll Need Before Migrating
- Access to your current hosting control panel (cPanel, Plesk, or SSH)
- Login credentials for your new hosting account
- Access to your domain registrar (for DNS changes at the end)
- A migration plugin (we recommend Migrate Guru — free and excellent)
- Approximately 1–2 hours of time
Step 1: Choose Your Migration Method
There are three main ways to migrate a WordPress site. Choose the one that matches your technical comfort level:
| Method | Difficulty | Best For |
|---|---|---|
| Migration Plugin (Migrate Guru) | Easy | Most users — automated and reliable |
| Manual (cPanel + phpMyAdmin) | Medium | Developers who want full control |
| Host-Assisted Migration | Easy | When your new host offers free migration |
Method 1: Migrate Using a Plugin (Recommended)
Step 1: Install Migrate Guru on Your Current Site
Log into your existing WordPress dashboard and go to Plugins → Add New. Search for “Migrate Guru” by BlogVault, install it, and activate it. This free plugin can move sites of any size — including those over 1GB that other plugins can’t handle.
Step 2: Set Up WordPress on Your New Host
Before migrating, you need a WordPress installation on your new host to migrate to. Log into your new hosting control panel and install a fresh copy of WordPress. Most managed hosts (Kinsta, WP Engine, Cloudways) let you do this in one click from their dashboard.
Step 3: Get Your New Host’s SFTP/FTP Credentials
In your new hosting dashboard, find your SFTP/FTP credentials: host (server IP), username, password, and port (usually 22 for SFTP). You’ll enter these into Migrate Guru to tell it where to send your site files.
Step 4: Run the Migration
Go back to your old WordPress site and open the Migrate Guru plugin. Enter your email address, agree to the terms, and click Migrate. Enter your new host’s SFTP credentials when prompted. Migrate Guru will run the migration entirely on its own servers — it won’t slow down your live site during the process. You’ll receive an email when it completes.
Method 2: Manual Migration (Step-by-Step)
Step 1: Export Your WordPress Database
Log into your current host’s phpMyAdmin (usually accessible through cPanel). Select your WordPress database from the left sidebar, click the Export tab, choose Quick export, select SQL format, and click Go. Save the .sql file to your computer.
Step 2: Download All WordPress Files via FTP
Connect to your current host via FTP (use FileZilla — it’s free). Navigate to your WordPress root directory (usually /public_html/ or /www/) and download all files to your computer. This includes wp-content, wp-admin, wp-includes, and all files in the root.
Step 3: Create a New Database on Your New Host
Log into your new host’s cPanel. Go to MySQL Databases, create a new database, create a new database user, and assign the user to the database with All Privileges. Note down the database name, username, and password.
Step 4: Import the Database
Open phpMyAdmin on your new host, select the new empty database, click the Import tab, choose your .sql file, and click Go. The import will recreate all your tables and data.
Step 5: Upload Files to New Host
Connect to your new host via FTP and upload all the WordPress files you downloaded in Step 2. This will again take time depending on your site size.
Step 6: Update wp-config.php
Edit the wp-config.php file on your new host and update it with your new database credentials:
define( 'DB_NAME', 'your_new_database_name' );
define( 'DB_USER', 'your_new_database_user' );
define( 'DB_PASSWORD', 'your_new_database_password' );
define( 'DB_HOST', 'localhost' );
Step 3: Test Your Site Before Changing DNS
Before pointing your domain to the new server, you need to test that everything works correctly. Do this using a temporary URL (most hosts provide one) or by editing your computer’s hosts file to preview the new server while your domain still points to the old one.
Check the following on your test preview:
- Homepage loads correctly
- Internal links work
- Images display properly
- Forms submit correctly
- Admin dashboard is accessible
- Any plugins or custom functionality works
- SSL certificate is active (HTTPS)
Step 4: Update DNS to Point to New Host
Once you’ve confirmed everything works, log into your domain registrar and update your nameservers or A record to point to your new host’s IP address.
DNS propagation takes anywhere from a few minutes to 48 hours, though it’s usually complete within 1–4 hours. During propagation, some visitors may see the old site while others see the new one — this is normal.
Step 5: Post-Migration Checklist
Once DNS has propagated and your site is live on the new host, run through this checklist:
- ✅ Verify SSL certificate is active and HTTPS works
- ✅ Submit new sitemap to Google Search Console
- ✅ Test contact forms and any checkout processes
- ✅ Check that your caching plugin is configured for the new host
- ✅ Set up automated backups on the new host
- ✅ Test site speed with GTmetrix or PageSpeed Insights
- ✅ Cancel your old hosting (after keeping it active for 1–2 weeks as a safety net)
Common Migration Problems and How to Fix Them
| Problem | Likely Cause | Fix |
|---|---|---|
| White screen of death | PHP error or plugin conflict | Enable WP_DEBUG, check error logs |
| Database connection error | Wrong wp-config.php credentials | Re-check DB name, user, password, host |
| Images not showing | Wrong file permissions or missing files | Set directories to 755, files to 644 |
| Admin login redirects to old URL | URLs still pointing to old host in DB | Run Search & Replace in database for old URL |
| SSL not working | Certificate not installed on new host | Install free Let’s Encrypt SSL via new host’s cPanel |
Frequently Asked Questions
Will my SEO be affected by migrating hosts?
No — if your URLs stay the same and you maintain 301 redirects for any changed URLs, migrating hosts has zero impact on SEO. In fact, moving to a faster host typically improves your search rankings over time through better Core Web Vitals scores.
How long does a WordPress migration take?
Using a plugin like Migrate Guru, most migrations complete in 30–90 minutes depending on site size. Manual migrations typically take 2–4 hours. DNS propagation adds another 1–24 hours before visitors see the new server.
Can I migrate a WordPress site without any downtime?
Yes — this is called a zero-downtime migration. Keep the old host active throughout the process, test everything on the new host first, then switch DNS only after you’re satisfied. During DNS propagation, some users see the old site and some see the new one — but since you migrated an identical copy, both versions are current.
Final Thoughts
A WordPress migration doesn’t have to be stressful. Follow these steps in order, test before switching DNS, and keep your old hosting active for a week or two as a backup. The actual migration is usually the least scary part — it’s the preparation and testing that make the difference between a smooth switch and a disaster.
Rather not deal with it yourself? Our WordPress Migration & Hosting Setup service handles everything from backup to DNS switch with a zero-downtime guarantee. Starting from $199.