Migrate Guru Tutorial: How to Move Your Site in 3 Clicks

affiliate disclosure

Disclosure: WPrBlogger is reader-supported. We may earn a commission if you purchase through our links at no extra cost to you.

I have tested a handful of WordPress migration plugins over the years, including All in One WP Migration and UpdraftPlus. 

Both work, but both also run into the same wall on larger sites: file size caps (free plan), server timeouts, or a restore process that stalls halfway through. 

After running several WordPress site migrations, Migrate Guru has become my default choice. I walk you through my exact process in this Migrate Guru tutorial, along with the cleanup steps that nobody mentions until your site starts throwing fatal errors on the new server.

Why Migrate Guru Handles Large Sites Better

Most migration plugins run the entire transfer through your own server’s PHP process. That means your host’s execution time limit, memory limit, and upload size limit all apply to the migration itself. 

If your site has a large media library or a bloated database, the migration can simply time out before it finishes.

Migrate Guru, which is built by BlogVault, works differently. Once you kick off the migration, the heavy lifting happens on BlogVault’s own servers rather than your hosting account. 

That is why you can watch the site migration move through tens of thousands of files without your source or destination server choking. 

It also explains why the plugin does not need you to babysit a browser tab open the entire migration time.

Before You Start: A Quick Pre-Migration Checklist

Do not skip this part. A few minutes here save hours later.

  • Take a full backup of the source site (files and database), even though Migrate Guru does not touch or delete anything on the source. This is just insurance.
  • Confirm the destination hosting account is ready, meaning WordPress is installed, or at least PHP and MySQL are provisioned, and you have wp-admin access.
  • Check that the PHP version on the destination server matches or exceeds the minimum required by the source site, especially if the site relies on a page builder or a plugin with a minimum PHP requirement.
  • Note your current DNS records for the domain (A record, MX records if you use hosted email, any CNAME records for subdomains) before you touch anything. You will need these later.
  • Lower your DNS TTL (time to live) a day or two before the migration if possible. A lower TTL means faster propagation once you actually point the domain to the new server.
  • Make sure no one else is actively editing the site during the migration window, since content changes made after the migration starts will not carry over.

Step 1: Install Migrate Guru on Both Sites

Install and activate the Migrate Guru plugin on the source site (the one you are migrating from) and on the destination site (the one you are migrating to). 

Click “Yes, I’ve installed it” on both sites. 

Side by side view of Migrate Guru installed on both the old and new WordPress sites before starting the website migration process.

The Migrate Guru dashboard will confirm once you’ve installed and activated the plugin on both sites, showing a green “Installed on both sites” status.

Step 2: Copy the Migration Key from the Destination Site

This is the step that trips people up most often, so pay attention to which site you are on.

On the destination site, look at the top of the Migrate Guru screen and copy the migration key.

Migrate Guru migration screen highlighting the Copy Key button used to copy the destination site's migration key before transferring a WordPress website.

The plugin will show a pop-up confirming, “we assume this is the site you’re migrating to,” along with a warning not to paste the same key back into step 2 on that site. 

Migrate Guru migration key popup displaying the destination site's migration key with a Copy Key button and instructions for pasting the key into the source WordPress site.

This warning exists for a reason. If you accidentally grab the key from the wrong site or paste it into the wrong field, Migrate Guru will reverse the sites and try to migrate in the opposite direction.

Switch to the source site, paste the key into the migration key field, and click Validate Key. Once validated, the plugin confirms the key with a green checkmark and moves you to step 3.

Step 3: Review the Migration Overview Before You Commit

This step matters more than it looks. Before you click “Initiate Migration,” Migrate Guru displays a Migration Overview panel with two boxes: “Migrating From” (your old site) and “Migrating To” (your new site), each showing the corresponding domain or temporary URL.

Migrate Guru migration overview screen showing the source and destination WordPress sites, email notification field, and the Initiate Migration button before starting the website transfer.

Read both boxes carefully. Double-check that the “Migrating From” domain is genuinely your source site and the “Migrating To” domain is your intended destination, whether that is a live domain or a temporary staging URL like a .cpanel.site address. 

This is your last chance to catch a reversed connection before any data moves. Once you confirm this looks correct, enter your email address (Migrate Guru sends status updates here) and click Initiate Migration.

Step 4: Let the Migration Run

Once migration starts, you will see live progress: total file size transferred, table count, and a running file counter (something like “Migrating Site (Copying Files 5000 / 17726)”). 

Migrate Guru migration progress screen showing file transfer status, completed database tables, and a progress bar while migrating a WordPress website to a new server.

Depending on the site’s size and your connection, this can take anywhere from a few minutes to over an hour, especially for larger sites with large media libraries.

You do not need to keep the tab open the whole time since the migration runs on Migrate Guru’s infrastructure, but I usually leave it running in the background so I can catch any errors immediately.

Step 5: Confirm the Migration Completed and Test the Temporary URL

When the migration finishes, you see a “Migration Completed Successfully!” confirmation that includes the source URL, an arrow, the destination URL, and a “Visit Site” button. 

Migrate Guru success screen confirming that the WordPress website migration completed successfully, with a link to visit the newly migrated site.

Click through and actually browse the new site on its temporary URL before touching DNS. Check the homepage, a few inner pages, the contact form, and anything dynamic like a shopping cart or membership login.

This is the point where problems tend to surface, usually in one of two ways: a white screen, a fatal PHP error or a site that loads but looks visually broken (missing styles, broken images, mixed-content warnings).

Step 6: Fix Fatal Errors and Plugin Conflicts First

If the site throws a fatal error or a white screen on the temporary/destination URL, the culprit is almost always a plugin that does not play well with the new server environment, whether that is a different PHP version, a different web server (Apache versus LiteSpeed or Nginx), or a caching plugin trying to write to a path that does not exist on the new host.

To fix this:

  1. Log in to cPanel or your custom dashboard on the destination server.
  2. Open the Softaculous plugin manager (or use File Manager, or FTP/SFTP) and deactivate all plugins at once. Bulk-renaming the plugins folder or individual plugin folders works if Softaculous is unavailable.
  3. If deactivating plugins does not restore wp-admin access, use WordPress’s link recovery mode. WordPress sends an automatic email with a recovery link when it detects a plugin causing a fatal error, and that link lets you deactivate the offending plugin directly from the dashboard even if the site is otherwise inaccessible.
  4. Once you can log into wp-admin normally, reactivate plugins one at a time, reloading the site after each one. The plugin that breaks the site will show itself immediately. Note it, and either update it, replace it with an alternative, or leave it deactivated until you can troubleshoot it with the plugin developer.

Step 7: Clean Up the Database Before You Touch DNS

Here is the part that is easy to get backwards, and getting the order wrong is exactly what causes a “working” temporary site to break the moment you point the real domain at it.

While your migrated site is still living on the temporary URL, browsing it, testing it, and reactivating plugins can cause some plugins and page builders to write that temporary domain into the database. Either into cached page data, widget settings, or theme options that store absolute URLs instead of relative ones. 

If you skip cleaning this up and go straight to a DNS switch, you end up with a live site on your real domain that still has broken links, images, or scripts pointing at the old temporary .cpanel.site address.

So the order should be:

  1. Install a Search and Replace plugin (or use WP-CLI’s search-replace command if you have shell access, which is faster and more reliable for large databases).
  2. Run a search-and-replace pass to catch any staging or temporary URL fragments that were written into the database during testing, replacing them with your real, final domain rather than the temporary one. Search for every variation you can think of: http:// and https:// versions, with and without www, and the raw temporary domain itself.
  3. Check wp-config.php on the destination site for hardcoded WP_HOME or WP_SITEURL constants. If either is defined there, it overrides whatever is in the database, and a search-and-replace alone will not fix it. Update these manually to your real domain.
  4. Clear any caching plugin’s cache (WP Rocket, LiteSpeed Cache, Breeze, whichever you are running) after the search and replace, since a cached version of the page with the old URLs baked in will otherwise keep serving stale content.

Do this cleanup while the site is still isolated on the temporary URL. You want the database fully pointed at the correct final domain before that domain is actually live and receiving real traffic.

Step 8: Update DNS to Point to the New Server

Once the site is clean and tested on the temporary URL, update your domain’s DNS records, typically the A record, to point to the new server’s IP address. 

If you are also changing hosts entirely (not just servers within the same host), you may need to update nameservers instead of just the A record, depending on how the new host manages DNS.

After updating, wait for full propagation before moving to the next step. Propagation can take anywhere from a few minutes to 24-48 hours depending on your previous TTL setting and your visitors’ DNS resolvers. 

You can check propagation status with a DNS lookup tool to see whether the new IP is resolving globally before assuming the switch is complete everywhere.

Step 9: Reinstall or Reissue an SSL Certificate

Many hosts auto-provision a free SSL certificate (typically Let’s Encrypt) once they detect that the domain is resolving to their server, but this usually only happens after DNS has propagated. 

Check your destination host’s SSL status once propagation is confirmed, and manually trigger a certificate issue if it has not happened automatically. Do not skip this step. A site that goes live without HTTPS working correctly will throw browser security warnings immediately.

Step 10: Add Your CDN Only After DNS Has Fully Propagated

If you are planning to run the site behind Cloudflare, QUIC.cloud, or a similar CDN, add it only after DNS propagation is confirmed, and SSL is working correctly on the new server. 

Adding a CDN before the domain is fully pointed to the new server, or before SSL is issued, tends to create its own layer of SSL and caching headaches that are harder to diagnose because you are troubleshooting DNS, SSL, and CDN caching issues simultaneously rather than one at a time.

Step 11: Final Post-Migration QA and SEO Checklist

Once the domain is live on the new server with SSL and CDN (if applicable) in place, go through this checklist before considering the migration done:

  • Browse the site on the real domain, not the temporary URL, and check for mixed content warnings in the browser console.
  • Confirm forms (contact forms, newsletter signups) are still submitting correctly, since form plugins sometimes store endpoint URLs that need to match the current domain.
  • Check that your SEO plugin (Rank Math, Yoast, etc.) is configured correctly and that the sitemap is generating properly at the new location.
  • Resubmit your sitemap in Google Search Console if the domain or URL structure changed at all.
  • Verify robots.txt is not accidentally blocking search engines, which sometimes happens if a staging configuration carried over.
  • Set up uptime monitoring for the first 24-48 hours after going live so you catch any intermittent DNS or server issues early.
  • Deactivate and delete the Migrate Guru plugin from both sites once you are confident the migration is stable, since there is no reason to leave it active afterward.

A Quick Note on Migrate Guru vs UpdraftPlus vs All in One WP Migration

Based on my testing, UpdraftPlus is solid for scheduled backups and smaller restores, but I have encountered upload size limits and timeouts when using it for a full site migration on shared hosting. 

All in One WP Migration works well until you hit its file size cap on the free version, and the premium extensions to remove that cap add up in cost if you only migrate occasionally. 

Migrate Guru is free regardless of site size, and because it processes the transfer on its own servers rather than yours, it has been the most reliable option for me on larger sites with a lot of media files or a heavy database.

Final Thoughts

Migrate Guru handles the actual file and database transfer reliably, but the migration itself is only half the job. 

The real risk sits in the cleanup: plugin conflicts on the new server, leftover staging URLs in the database, and a DNS or SSL sequence done out of order. 

Get the order right (test on the temporary URL, fix plugin conflicts, clean the database, then switch DNS, then add your CDN), and the migration should go live without the client, or your own site, noticing anything happened at all.

Shamsudeen Adeshokan

About The Author

Shamsudeen is a WordPress expert with 10+ years of blogging experience, helping beginners build and grow successful websites.

Featured on Search Engine Land, HuffPost, SEO PowerSuite, ProBlogger, and more, Shamsudeen shares practical tutorials, expert tips, and step-by-step guides to make WordPress easy for everyone.

Let's connect on social media platforms...

Leave a Comment

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top