Free WordPress plugin

Move a whole WordPress site to a new server, directly.

SwiftMigrate sends your files and database straight from the old server to the new one. Every chunk is checked on arrival, URLs are rewritten for the new address, and the previous version of the new site is kept so you can roll back with one click. Nothing is downloaded to your computer.

Version 1.0.0 WordPress 6.2+ PHP 7.4+ GPLv2 or later
Parallel transferSmall files packed together, large files split into chunks.
Verified on arrivalAnything missing or damaged is sent again before restore.
Rollback keptThe new site’s previous state stays until you delete it.
How a migration runs

Four steps, two sites, one key.

Install SwiftMigrate on both sites. The new site can be a fresh WordPress install on any host or domain.

Step 1

Generate a key on the new site

Open SwiftMigrate → Receive a site and click Generate migration key. The key holds the site address and a one-off secret, and expires after 24 hours.

Step 2

Paste it on the old site

Open SwiftMigrate → Send this site, paste the key and connect. A pre-flight check compares both servers before anything moves.

Step 3

Choose what to move and start

Database, media, themes, plugins, WordPress core and other root files. Close the tab at any time; the migration resumes where it stopped.

Step 4

Restore, check, keep or roll back

After every chunk is verified, restore with one click. Log in with the old site’s details, check the site, then delete the rollback copy or roll back.

What happens under the hood

Built so a migration can’t half-finish.

The database is imported into temporary tables first, so the live site on the new server keeps running during the import. Site addresses and server paths are rewritten inside those tables, including serialized, JSON-escaped and URL-encoded data that a plain search-and-replace would break.

Plugins, themes and WordPress core are moved into place in one pass, and all database tables are switched in a single step straight after. Visitors see either the old site or the new one, never a mix.

  • Direct server-to-server transfer with parallel streams
  • SHA-1 checksum on every file and chunk, rejected if it doesn’t match
  • Every chunk confirmed before restore; gaps are resent automatically
  • Different table prefixes handled automatically
  • Extra find-and-replace pairs for old CDN or email domains
  • One-click rollback of files and database
  • Full, downloadable log of every migration

Security

Only someone with the migration key can write to the new site. Every request between the two servers is signed with HMAC-SHA256, carries a timestamp and can be used only once, so a captured request can neither be changed nor replayed. Keys expire and are revoked when the plugin is deactivated.

Your files and database go only to the site whose key you paste. SwiftMigrate uses no third-party service and sends nothing to Organic Reach.

Good to know

Never transferred: wp-config.php, .htaccess, .user.ini, php.ini and web.config stay as they are on the new server, so its database login and server rules keep working.

Requirements on both sites: WordPress 6.2 or later, PHP 7.4 or later, a writable wp-content folder and a reachable WordPress REST API.

Not supported: multisite networks. Avoid editing content on the old site while a migration runs.

Free download

Get SwiftMigrate

Enter your name and email and the download starts straight away. We also email you the link, valid for 24 hours, so you can install the plugin on your second site too.

To install: in WordPress go to Plugins → Add New Plugin → Upload Plugin, choose the ZIP file and click Install Now. Do this on both the old and the new site.

1.0.0Version
28 September 2026Last updated
WordPress 6.2+Tested up to 7.1
PHP 7.4+GPLv2 or later

Download SwiftMigrate 1.0.0

Free. One ZIP file for both sites.

Questions, answered

Before you migrate.

Still stuck? Email hello@organicreach.agency.

On the new site (the destination). Install SwiftMigrate there, generate a migration key, then paste that key into SwiftMigrate on the old site and start the migration from the old site.
Yes. When you restore, the destination’s database, themes, plugins and media are replaced by the incoming site. Its wp-config.php and .htaccess are kept. With “Keep a rollback copy” switched on (the default), one click undoes the switch.
The username and password from the old site. The new server now holds the old site’s database, including its users.
No. Files and database content go only to the WordPress site whose migration key you paste. SwiftMigrate uses no third-party service and sends nothing to Organic Reach. Use HTTPS on the new site so the transfer is encrypted.
A security plugin or the host firewall on the new site is usually blocking the WordPress REST API. Turn on “Firewall-friendly mode” in SwiftMigrate’s settings on the old site, or allow POST requests to /wp-json/swiftmigrate/v1/transfer on the new site. SwiftMigrate checks the signature of every request itself.
Yes. Progress is saved on the server. Open SwiftMigrate → Send this site again and press Resume.
No. Both sites must be single-site WordPress installs.
Nothing. SwiftMigrate is free and licensed under the GPL (version 2 or later), like WordPress itself.
Built by Hasan Alam Qazi

SwiftMigrate is developed by Hasan Alam Qazi, a senior web consultant with a decade of WordPress engineering and technical leadership, and published by Organic Reach. About the author