Migrating WordPress with a plugin: how it works and where it fails

A migration plugin bundles the site (files and database) into a package, which you carry to the destination and unpack there, swapping the old address for the new one on the way. It works well on small and medium sites, and fails almost always for the same reasons: time, memory and size. The best-known plugins, such as Duplicator, All-in-One WP Migration and UpdraftPlus, are third-party programs, with their own rules and limits: we do not sell them, and support for a plugin is its author’s. For migrating by hand, without a plugin, see moving a site by hand.

The two usual designs

Design How it works What usually goes wrong
Package and installer The plugin makes an archive file and an installer file. You send both to the new domain’s empty folder, open the installer in the browser and give it the new database details. Uploading very large files; the installer left on the server.
Single file and a plugin at the destination You install a clean WordPress at the destination and the same plugin; you import the export file. The import size limit (the plugin’s and PHP’s); free editions of a plugin may have a limit of their own.

Step by step

1 Take a backup first, by another route: the migration plugin is not your backup (generating the zip and sql of a WordPress site).
2 Compare versions. The destination’s PHP version should equal or be close to the source’s; see which PHP version to use. A very old site on a very new PHP can break.
3 Prepare the destination. Add the domain to the new account and, depending on the design, leave the folder empty or install a clean WordPress.
4 Export at the source. Follow the plugin and, where offered, exclude what does not need to travel (old backups kept in the folder, caches).
5 Import at the destination. If the file is larger than the upload limit, raise the limit (raising the WordPress upload limit) or send the file by FTP to the folder the plugin indicates.
6 Test before changing the DNS, in your computer’s hosts file (testing a migrated site before you change the DNS).
7 Save the permalinks again (Settings, Permalinks) and clear the caches. If the home page opens and the others give 404, this is it.
8 Only then change the DNS (migrating without downtime).

Where it fails

Symptom Usual cause What to do
The export stops halfway, or gives a 500 or 504 error PHP execution time or memory exhausted. Raise the time and memory (PHP limits) and repeat.
The import says the file is too large PHP’s upload limit, or the plugin’s. Raise the limit or send it by FTP.
The site opens but the images do not The uploads folder did not come across, or came incomplete. Copy wp-content/uploads by FTP.
The site jumps to the old address The addresses in the database were not swapped. See changing the WordPress site address.
The design (Elementor, say) is unstyled The page builder stored its stylesheet with the old address. Ask the builder to regenerate its styles and clear the caches.
Database connection error The database details were not swapped. Edit the destination’s wp-config.php.
Delete the installer and the package from the server when you finish. With a package and installer, the files are reachable by address and hold the whole database and its passwords. Anyone who guesses the name can download them.
On a shop, freeze orders during the migration. A plugin copies one instant; whatever comes in afterwards is lost. See migrating a WooCommerce shop without losing orders.

The plugin migration will not finish? Tell us the domain, the plugin and the error message, or ask us to handle the migration.

Open a support ticket

SEE ALSO

Moving a site by hand: files by FTP and the database

How to generate zip and sql files to migrate a WordPress site

Testing a migrated site before you change the DNS (the hosts file)

Hosting migration

RECOMMENDED PRODUCT

WordPress hosting

One-click install, updates handled, and speed that holds up. from $5.36/mo (3-year plan, with coupon)

See plans
  • 0 Users Found This Useful
Was this answer helpful?