MagicWP Docs

MagicWP Migration

Move a site with our own backup and migration plugin, using a transfer token

MagicWP Backup Restore and Migration is our free WordPress plugin, on the WordPress.org plugin directory. It backs up a site in resumable chunks, then hands it to another site with a transfer token - the destination pulls the backup itself, so nothing is downloaded to your computer and back up again.

It is the method to use when you can still install a plugin on the old site.

MagicWP Backup Restore and Migration on the WordPress.org plugin directory

ConsiderationDetail
RequiresWordPress 6.2+, PHP 8.1+ on both sites
DestinationA new site - the plugin needs a working WordPress install to receive into
Good forAny site you can log in to and install a plugin on
Not forA site that is down, or one where you only have a backup file - use manual migration

1. Install the plugin on both sites

Install and activate MagicWP Backup Restore and Migration on the old site and on the new MagicWP site. It appears as MagicWP Backup in the WordPress admin sidebar.

Open it on both and run the system self-test from the dashboard. It reports PHP limits and directory permissions - better to see a problem now than half way through a transfer.

The MagicWP Backup dashboard, showing the environment report, backup count and the system self-test

2. Back up the old site

On the old site, open MagicWP Backup → Backup and create a backup.

Backups are chunked and resumable, so a large site on modest shared hosting will still finish - it picks up where it left off rather than dying at a timeout.

Under exclusions you can leave out Plugins, Themes, Uploads, Must-use plugins or Cache, and skip files over a size you choose. Leave these alone for a straight migration. The one worth using is the file-size limit if the old site has stray multi-gigabyte files in wp-content that you know you don't need.

3. Generate a transfer token

Still on the old site, go to the Migration tab.

  1. In Send this site, pick the backup you just made under Backup to send.
  2. Click Generate token.
  3. A Transfer token generated dialog appears with two values - the Transfer token (it starts with MB-) and the Source URL. Copy both.

The Migration tab on the old site, with a backup selected under Backup to send and the Generate token button below it

The token expires in 24 hours

It is single-purpose and hashed at rest - it only authorises downloading that one backup. If it lapses, generate another; the backup itself is still there.

4. Receive it on the MagicWP site

On the new site, open MagicWP Backup → Migration and use the Receive a site card:

  1. Paste the transfer token into the first field.
  2. Paste the source URL into the second.
  3. Click Migrate to this site.

The Receive a site card on the new site, with the transfer token and source URL filled in

A progress bar shows the phase and percentage as it pulls and restores. The restore remaps the database table prefix if the two sites differ, and does a serialized-safe search and replace on the URLs - so widget settings and plugin options survive rather than breaking into corrupted strings.

This overwrites the destination

Migrate to this site replaces the site's files and database with the incoming ones. Only ever point it at the site you intend to replace. The destination's own wp-config.php is preserved, so its database credentials keep working.

5. Finish up

Once the progress bar completes, log in to the new site and work through After the move - Fix Site first, then check URLs, test on the *.magicwp.net address, flush the caches, and only then point your domain across.

If a transfer stalls

SymptomCause and fix
Progress stops early in the pullThe old host is rate-limiting or timing out the download. Retry - the transfer resumes rather than restarting.
"Token invalid or expired"More than 24 hours passed, or the token was already consumed. Generate a new one.
Backup fails on the old sitePHP memory or time limits. Re-run it - chunks already written are kept - or exclude large files and copy them over SFTP afterwards.
Restore finishes but the site looks wrongRun Fix Site, then flush the page and object caches.
Ran out of disk part-wayThe new site's storage limit is smaller than the incoming data. Raise it under Settings → Storage Limit and retry.

On this page