Move your WordPress site only after you have a verified backup, a tested copy on the new host, and a DNS rollback plan. A clean migration is not about speed. It is about reducing risk, proving the site works, and avoiding lost orders, broken forms, or missing media files.

TLDR: Back up files and the database, copy them to the new host, test the site on a temporary URL or hosts file entry, then update DNS only after everything works. For example, a 12 GB WooCommerce store with 4,800 products may take two to four hours to move, but DNS switching can still cause email or checkout issues if rushed. In one common case, cutting image sizes before migration can reduce transfer time by 30% or more. Keep the old hosting active for at least seven days after the move.

1. Confirm Why You Are Moving

Before touching files, write down the reason for the move. Is the current host slow? Is support poor? Are renewal costs too high? Are backups unreliable? This matters because the new host must solve the specific problem, not just offer a cheaper first-year price.

Check these items before you commit:

  • PHP version: Match or improve the version your site already uses.
  • Database support: Confirm MySQL or MariaDB compatibility.
  • Storage type: SSD or NVMe storage is preferred.
  • Server location: Pick a data center close to most visitors.
  • Email hosting: Find out if email is included or separate.
  • Backup policy: Daily backups are good, but external backups are still needed.
  • Staging support: Useful for testing before launch.

The catch is that many hosts advertise “free migration,” but the service often excludes large sites, custom server rules, multisite setups, or email accounts. Read the limits before relying on it.

2. Audit the Existing WordPress Site

A quick audit prevents confusion later. Log in to WordPress and record the current setup. This simple step helps when something looks different after the move.

  • WordPress version
  • Active theme and child theme
  • Active plugins
  • PHP version
  • Database size
  • Uploads folder size
  • Custom cron jobs
  • Custom rewrite rules in .htaccess or server config
  • CDN, firewall, and caching settings
  • SMTP or transactional email settings

Deactivate and delete plugins you no longer use. Remove old themes, except the active theme and one default WordPress theme. Also clear spam comments, expired transients, and old backup files stored inside wp-content. Honestly, it feels like every second migration has a forgotten 3 GB backup ZIP sitting inside the uploads folder, slowing the whole job down for no reason.

3. Create Complete Backups

Never rely on one backup. Create at least two. One should come from your hosting control panel or server. The second should come from a trusted WordPress backup plugin or manual export.

Your backup must include:

  • WordPress files: Core files, themes, plugins, and uploads.
  • Database: Posts, pages, users, settings, orders, and plugin data.
  • Configuration files: Such as wp-config.php, .htaccess, and custom server rules.
  • Email records: MX, SPF, DKIM, and DMARC values.
  • SSL details: Certificate status and renewal method.

Download a copy to local storage or private cloud storage. Then test the archive. A corrupt backup is worse than no backup because it gives false confidence.

4. Prepare the New Hosting Account

Set up the new hosting space before transferring anything. Create the domain entry, database, database user, and password. Record those details in a secure password manager.

Then check the server basics:

  • Set PHP memory limit to at least 256 MB for most business sites.
  • Raise max upload size if the site has large media files.
  • Enable required PHP extensions such as curl, mbstring, zip, and imagick.
  • Install a temporary SSL certificate if your host supports it before DNS changes.
  • Disable aggressive server caching until testing is finished.

If the host provides a temporary URL, use it carefully. Some WordPress sites do not behave well under temporary URLs because internal links and serialized database entries may break. A safer method is to edit your local hosts file and point the real domain to the new server IP for testing only.

5. Transfer Files and Database

You can move the site manually, with a migration plugin, through SSH, or by asking the new host to do it. For small sites, a plugin is often fine. For larger stores, membership sites, or busy publications, SSH and database tools are more reliable.

Manual migration usually follows this order:

  1. Upload WordPress files to the new server.
  2. Import the database into the new database.
  3. Edit wp-config.php with the new database name, user, password, and host.
  4. Check file permissions.
  5. Update paths or URLs if needed.
  6. Flush permalinks in WordPress after login.

For WooCommerce or membership sites, reduce the time between database export and DNS switch. If customers place orders on the old site after the database copy, those orders will not appear on the new site unless you sync them.

6. Test Before Updating DNS

This is where careful work pays off. Do not change DNS until the new copy passes basic checks.

Test the following:

  • Homepage loads without errors.
  • Admin login works.
  • Menus, links, and search work.
  • Contact forms send messages.
  • Checkout works, if the site sells products.
  • User login and password reset emails work.
  • Images and downloads load correctly.
  • Permalinks do not return 404 errors.
  • Mobile layout looks normal.
  • Analytics, pixels, and consent tools still fire as expected.

Use your browser console to check for mixed content errors. These happen when HTTPS pages load images, scripts, or styles over HTTP. Fix them before launch. Also run a crawl with a site audit tool if the site has many pages.

7. Lower DNS TTL Before the Switch

DNS controls where visitors go when they type your domain. Lower the TTL value before migration if possible. A value of 300 seconds is common for planned changes. Do this 24 to 48 hours before the final move.

When ready, update the domain’s A record to the new server IP. If you use a CDN or DNS proxy, update records there as well. Keep screenshots of the old records before making edits.

Do not forget email records. Many site moves cause email outages because MX records were changed by mistake. If email is hosted elsewhere, keep MX, SPF, DKIM, and DMARC records exactly as they are.

8. Run Post-Migration Checks

After DNS points to the new host, test again from a normal browser, mobile connection, and private window. Ask a colleague in another location to check too. DNS can resolve differently during the first few hours.

  • Confirm SSL is active and valid.
  • Check key pages and forms.
  • Place a test order if using ecommerce.
  • Review server error logs.
  • Clear all WordPress, server, CDN, and browser caches.
  • Submit the sitemap in Google Search Console.
  • Check robots.txt and indexing settings.
  • Confirm scheduled tasks are running.

Expect to waste time on caching. It is common to fix a problem, reload the page, and still see the old error because three cache layers are fighting each other. Clear them one by one.

9. Watch Performance and Errors

For the next 48 hours, monitor the site closely. Check uptime, server load, checkout logs, form submissions, and search traffic. If the site earns revenue, keep a simple log of orders before and after the move.

Compare key metrics:

  • Average page load time
  • Time to first byte
  • PHP errors
  • Database errors
  • 404 errors
  • Conversion rate
  • Organic landing page traffic

A small speed gain is common after a good move. A drop from 2.8 seconds to 1.6 seconds can improve user experience, especially on mobile. But speed means little if forms stop sending or payment callbacks fail.

10. Keep the Old Host Temporarily

Do not cancel the old host on launch day. Keep it active for at least seven to fourteen days. This gives you time to recover missed files, compare settings, or restore data if a hidden issue appears.

Once you are confident, take a final archive from the old host. Store it securely. Then cancel the service through the host’s official process and keep confirmation records.

Final Checklist

  • Backups verified: Files, database, and config saved.
  • New host prepared: PHP, database, SSL, and limits checked.
  • Site copied: Files and database moved cleanly.
  • Testing complete: Forms, login, checkout, media, and links checked.
  • DNS updated: Domain points to the new server.
  • Email protected: MX and authentication records preserved.
  • Monitoring active: Errors, speed, uptime, and sales watched.
  • Old host retained: Kept online during the safety period.

A WordPress migration should feel controlled, not lucky. Follow the checklist, test before the switch, and keep rollback options ready. That is how you move hosts without turning a routine upgrade into an expensive outage.