How to migrate WordPress with a plugin
The simplest way to move a WordPress site between hosts, what its size limits are, and how to confirm it actually worked.
A migration plugin is generally the most straightforward way to move a WordPress site between two hosts, particularly if you are not comfortable working directly with FTP and phpMyAdmin. It packages the entire site — files and database together — into a single export, and handles the fiddly part of a WordPress migration, updating every internal reference to the old domain, automatically.
Why the automatic URL handling matters
WordPress stores its own site address throughout the database, including inside the content of individual posts and pages wherever something links to another page on the same site. Moving the files and a raw database export to a new domain without addressing this leaves those internal links pointing at the old address. A migration plugin handles this replacement as part of the export and import process, which is the main thing it does beyond simply moving files.
Many migration plugins impose a size limit on their free tier, commonly somewhere in the range of a few hundred megabytes to a few gigabytes depending on the plugin. A site with a large media library can exceed this without warning until the export fails partway through. Check the current limit for whichever plugin you choose, and confirm your site's total size — visible under Tools → Site Health → Info — comfortably fits within it before you start.
Before you start
- Take a separate backup regardless. A migration plugin is generally reliable, but it is still worth having an independent backup of the source site that does not depend on the migration succeeding. See backing up a WordPress site.
- Confirm the new hosting is ready. You need a hosting account with the domain added, and either an empty WordPress install ready to receive the migrated content, or nothing installed at all if the plugin's import process creates one for you.
- Note your current PHP version and any custom settings — memory limits, upload size limits — from the source site, so you can match them on the destination if the migration seems to run into limits partway through.
Exporting from the source site
-
Install the migration plugin
Add it to the WordPress site you are moving away from, the same as installing any other plugin.
-
Start a full export
Choose the option covering the entire site — files and database — rather than a database-only or content-only export, which would leave your theme and uploads behind.
-
Wait for it to package everything
Larger sites, particularly ones with a substantial media library, take noticeably longer. Do not close the browser tab or navigate away while this runs, since some plugins run the process in the browser rather than fully in the background.
-
Download the resulting export file
Save it somewhere you can access from the new hosting account, since you will need to upload it there next.
Importing to the destination
-
Install a fresh WordPress
Set up an empty WordPress install on the new hosting account. See installing WordPress on your hosting if you have not done this before.
-
Install the same migration plugin
Add the identical plugin — and ideally the same version — to the new, empty install.
-
Import the export file
Upload the file you downloaded from the source site and start the import. This overwrites the fresh install's content with everything from the export, so it should be done to an install you have not otherwise configured.
-
Wait for the import to complete
The plugin rewrites internal URLs to the new domain automatically as part of this step.
Before you switch traffic over
Do not point DNS at the new host the moment the import finishes. Test the migrated site first, ideally by editing your local hosts file to preview it on the new server while the domain still points at the old one — see previewing a site with your hosts file.
Check specifically for:
- Every page type loading correctly — home page, a post, a page, and any custom page templates the theme uses.
- Images and other media displaying properly, since a large media library is the most likely place for something to be missed in a size-limited export.
- Forms submitting and arriving correctly, since form plugin settings can sometimes reference the old domain directly.
- Permalinks working — visit a few individual posts and pages, not just the home page. See fixing WordPress permalinks returning 404 if any come back as errors.
Once everything checks out, point the domain at the new hosting account. See migrating a website to new hosting for the wider migration process this plugin step fits into, including keeping the old hosting active until DNS has fully switched over.
Frequently asked questions
Is a migration plugin free?
Many offer a free tier sufficient for smaller sites, with paid versions removing size limits or adding scheduling and automation. Which one fits depends on your site's size and how often you expect to migrate — a single one-off move rarely justifies a paid plan if the free tier covers the site's size.
Will a plugin migration bring my email over too?
No. A WordPress migration plugin moves the WordPress site itself — files and database — and has no involvement with mailboxes, which are a separate service entirely. See migrating mailboxes to a new host if email also needs to move.
Related reading
Copy first, test second, switch DNS last. Get that order right and a migration is boring — which is exactly what you want.
How to back up a WordPress siteFiles and database, together — a backup missing either one is not a backup. Three ways to take one, and how to prove it works.
How to change a WordPress site URLThree ways to change the WordPress site URL, and why a search-and-replace on the database is usually still required afterwards.
How to move WordPress to a new hostCopy the files and database across, update the configuration, test before anyone sees it, then switch DNS with the old site still live.