Skip to content
WordPress Tips

How to Migrate a WordPress Site to a New Host (Without Breaking Anything)

Learn how to migrate a WordPress site to a new host without downtime or data loss. Step-by-step guide using plugins and manual methods, with a post-migration checklist.

Thakur Aarti
6 min read
Abstract blue digital background representing seamless WordPress site migration and data transfer to a new web hosting server

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.

⚠️ Before You Begin: Create a complete backup of your site before starting the migration. Even if the migration goes perfectly, having a backup gives you a safety net. Use UpdraftPlus, Duplicator, or your host’s backup tool.

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:

MethodDifficultyBest For
Migration Plugin (Migrate Guru)EasyMost users — automated and reliable
Manual (cPanel + phpMyAdmin)MediumDevelopers who want full control
Host-Assisted MigrationEasyWhen your new host offers free migration
💡 Pro Tip: Always check whether your new host offers free migration services before doing it yourself. Kinsta, WP Engine, and SiteGround all offer free migrations — it’s worth using them.

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.

⏱️ Note: Downloading via FTP can be slow if your site is large. A site with lots of images may take 30–60+ minutes to download. This is why the plugin method is faster for large sites.

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.

💡 Pro Tip: Use whatsmydns.net to check DNS propagation from different locations around the world. Once your domain resolves to the new host’s IP globally, propagation is complete.

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

ProblemLikely CauseFix
White screen of deathPHP error or plugin conflictEnable WP_DEBUG, check error logs
Database connection errorWrong wp-config.php credentialsRe-check DB name, user, password, host
Images not showingWrong file permissions or missing filesSet directories to 755, files to 644
Admin login redirects to old URLURLs still pointing to old host in DBRun Search & Replace in database for old URL
SSL not workingCertificate not installed on new hostInstall 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.

Leave a Reply

Your email address will not be published. Required fields are marked *