WordPress migration guide

Move a WordPress site to a new host or domain, without the drama.

A WordPress migration moves a site’s files and database to a new server, a new domain, or both. It goes smoothly when you copy the site while the old one stays live, test the copy on the new server, and only then switch DNS. These guides walk through every method, and our free plugin does the heavy lifting.

Find your guide ↓ Free plugin on WordPress.org ↗
WordPress site moving from an old host to a new host in five steps: prepare, copy, test, switch DNS and monitor
Choose your situation

Which migration are you doing?

Each guide is written for one situation, with the steps in order and the problems people actually run into.

Methods compared

Five ways to move WordPress.

Every method below is legitimate. The right one depends on your site’s size, your access to the server and how much you want to do yourself.

MethodCostDownload to your computer?Good to know
Manual (SFTP + database)FreeNoFull control for developers; slow for big media libraries
WP-CLI over SSHFreeNoFast and scriptable; needs shell access on both servers
Archive plugin (export / import a file)Often free up to a sizeYesSimple for small sites; big archives hit upload and time limits
Server-to-server plugin (SwiftMigrate)FreeNoAny size on shared hosting; both REST APIs must be reachable
Host migration serviceVariesNoHands-off; scope and timing depend on the host
What safe migrations share

Five rules that prevent most migration problems.

Whatever method you choose, these rules come from the WordPress Advanced Administration Handbook, Google’s guidance on hosting changes and site moves, and a decade of moving client sites.

  • Back up first, and test the backup. Store it away from both servers.
  • Copy while the old site stays live. Switch DNS only after the new copy is tested.
  • Never plain find-and-replace the database. Serialized data breaks; use a serialization-safe tool and leave the guid column alone.
  • Lower DNS TTL a day before. The switch then takes minutes, not hours.
  • Keep a way back. A rollback copy on the new host and the old host for a week.
Free WordPress plugin

SwiftMigrate: server to server, verified, reversible.

SwiftMigrate is a free, GPL-licensed plugin in the WordPress.org directory. It sends files and database straight from the old server to the new one in parallel, checksummed chunks, checks every chunk before restoring, rewrites URLs and server paths safely, and keeps the new host’s previous state so one click undoes the switch.

It is developed by Hasan Alam Qazi and published by Organic Reach. It sends no data to us or any third party.

Get SwiftMigrate on WordPress.org ↗ How it works

Install in under a minute

In each WordPress admin (old site and new site):

  1. Go to Plugins → Add New Plugin.
  2. Search for SwiftMigrate.
  3. Click Install Now, then Activate.
1.0.1Current version
FreeGPLv2 or later
WordPress 6.2+Tested up to 7.1
PHP 7.4+Single-site installs
Questions, answered

WordPress migration FAQ.

Have a question about a specific move? Email hello@organicreach.agency.

A WordPress migration moves a site’s files (WordPress core, themes, plugins and uploads) and its database to a different server, a different domain, or both. The site should look and work exactly as before, at its new location.
For most people, a migration plugin. A server-to-server plugin such as SwiftMigrate sends the site directly from the old host to the new one, so nothing is downloaded to your computer and upload limits do not get in the way. Install it on both sites from the WordPress.org plugin directory.
Yes. The manual method (SFTP plus a database export and import) is free, WP-CLI is free, and SwiftMigrate is a free, GPL-licensed plugin with no size cap or paid tier.
A move to a new host on the same domain should not, as long as the site keeps working and Googlebot can reach the new server. A domain change causes a period of adjustment; page-to-page 301 redirects, Search Console’s Change of Address tool and keeping redirects for at least a year minimise it.
Keep it for at least a week. Some visitors still reach the old server while DNS updates, and it is your fallback if anything was missed.
Multisite migrations need extra database work, especially when domains change. SwiftMigrate supports single-site installs only; for networks, follow the multisite section of the WordPress Advanced Administration Handbook or have a developer run the move.