The short version
Moving a WordPress site to a new host comes down to this order: prepare, copy, test, switch, verify, then cancel. Most migration disasters come from doing those steps out of order, usually switching DNS before the new copy has been tested, or cancelling the old host before checking email and backups.
This guide covers a standard WordPress site on typical hosting. If your site is a busy store, a multisite network, or uses unusual server configuration, the same principles apply with more care.
First: check whether your new host will do it
Many hosts offer free migrations, either automated tools or a support team doing it for you. For a simple site, that may be all you need. Read what’s included, though: host migrations usually copy files and the database only. DNS, email, scheduled tasks, server settings and post-move testing are still your responsibility. The rest of this guide is useful even if your host does the copying.
Step 1: Prepare
- List what the site depends on: PHP version, any cron jobs set up in the control panel, custom
.htaccessrules, email accounts on the old host, and any IP-restricted services (payment gateways or APIs that only accept requests from your server’s IP address). - Check your DNS records. Log in to wherever your DNS is managed (often your registrar or current host) and export or screenshot every record: A, AAAA, CNAME, MX, TXT (SPF, DKIM, DMARC, verification records). This is the step that saves your email.
- Lower the TTL on the records you’ll change (usually the A record for your domain and
www) to something short, such as 300 seconds, at least a day before the move. This makes the eventual switch take effect quickly and lets you roll back quickly. - Take a full backup of files and database and store it off the server.
Step 2: Copy files and database
You have three common options:
| Method | Good for | Watch out for |
|---|---|---|
| Migration plugin (export/import package) | Small to medium sites, non-technical users | Upload size limits on the new host; large sites may time out |
| Manual: SFTP + database export | Any site, full control | More steps; character set and table prefix must match |
| Server-to-server (SSH, rsync, WP-CLI) | Large sites, developers | Requires SSH access on both hosts |
For a manual move: download all files from the old host (including hidden files like .htaccess), export the database (with phpMyAdmin or wp db export), create a new database and user on the new host, import the database, upload the files, and update wp-config.php with the new database name, user, password and host.
If the domain stays the same, you don’t need to search-and-replace URLs in the database. If anything in the path changes, use a tool that handles serialised data safely (such as WP-CLI’s search-replace). A plain text find-and-replace on the SQL file can corrupt settings.
We handle files, database, email records, DNS and SSL, with the old host kept as a rollback.
Step 3: Test before anyone sees it
This is the step people skip. Before changing DNS, view the site on the new server while the rest of the world still sees the old one. Two ways:
- A temporary URL provided by the new host, though some sites redirect to the real domain, which defeats this.
- Editing your computer’s hosts file to point your domain at the new server’s IP address. Only your computer sees the new server; you test the real domain, exactly as visitors will.
Check: pages and images load, logins work, forms submit, search works, and for stores, add to cart and a test checkout. Look for PHP errors and compare the PHP version and settings with the old host.
Step 4: Protect your email
If your email is hosted with your old web host, you need to create the same mailboxes on the new host (or move email to a dedicated provider), migrate the mailbox contents (most providers offer an IMAP migration tool), and update MX records at the switch.
If your email is with Google Workspace, Microsoft 365 or another provider, mailboxes don’t move, but you must make sure the MX, SPF, DKIM and DMARC records survive any DNS change exactly. If you’re switching nameservers, recreate every record at the new DNS provider before switching.
Also update your SPF record if the website sends email (contact forms, order emails) from the new server.
Step 5: Switch DNS
For sites that don’t change much, simply update the A record (and www) to the new server’s IP. For stores, membership sites and anything taking submissions, do a final sync first:
- Briefly pause changes on the old site (maintenance mode, or a short order freeze at a quiet time).
- Export the old database again and import it on the new host, so recent orders, entries and comments come across.
- Update DNS.
With a short TTL, most visitors reach the new server within minutes. A few may reach the old server for a while longer due to caching, which is another reason not to cancel the old host yet.
Step 6: Verify on the live site
- Issue an SSL certificate on the new host (many do this automatically once DNS points there) and check HTTPS works with no warnings.
- Re-test forms, checkout and email deliverability (send to a Gmail address and check it isn’t in spam).
- Make sure scheduled tasks run (backups, scheduled posts, plugin cron jobs).
- Set up backups and monitoring on the new host.
- Watch Search Console and server logs over the following days for 404s and 5xx errors.
Step 7: Only then cancel the old host
Keep the old hosting for at least a week or two. It’s your rollback, and it’s where anything you forgot still lives: an email account, a file outside WordPress, a cron job. Before cancelling, take a final full backup of the old account and store it safely.
The most common mistakes
| Mistake | What happens | How to avoid it |
|---|---|---|
| Changing nameservers without copying records | Email and subdomains stop working | Recreate every DNS record first |
| Switching DNS before testing | Visitors see errors on a half-moved site | Test via hosts file first |
| No final sync on a store | Orders placed during the move are lost | Short freeze, final database sync |
| Cancelling the old host immediately | No rollback, forgotten data gone | Keep it for one to two weeks |
| Forgetting SPF for the new server | Form and order emails go to spam | Update SPF when the sending server changes |
If you’d like help, our hosting migration service covers all of the above. Google’s guidance on moving a site without URL changes covers the search side.
Frequently asked questions
How long does it take to move WordPress to a new host?
The copy itself can take minutes to hours depending on size. Allow a day or two around it for lowering TTL, testing and the switch, plus a week before cancelling the old host.
Will my site go down during the move?
Not if you test on the new server first and switch DNS with a low TTL. Visitors move from old to new within minutes.
Do I need to change my domain's nameservers?
Not necessarily. Often you only update the A record. If you do change nameservers, recreate every DNS record first.
Will moving hosts affect SEO?
Not if URLs stay the same and the new server is reliable. Watch Search Console for server errors in the days after the move.
About this guide
We build, repair, move and maintain WordPress and WooCommerce websites for businesses in the UAE, US, UK and Canada. This guide reflects how we approach the problem in client work, checked against the official documentation linked in the text. Published 16 October 2026.
Found an error or something out of date? Tell us and we’ll correct it.