How to Migrate a WordPress Site
WordPress & Managed Editor
Disclosure: Some links on this page are affiliate links — if you sign up through one, we may earn a commission at no extra cost to you. It never changes our ratings, rankings or verdicts: we don't sell hosting and take no pay-for-placement.
Who it's for
- WordPress site owners
- Developers migrating client sites
- Agencies managing multiple WordPress installs
- Site owners switching to managed WordPress hosting
By Elena Novak, WordPress & Managed Editor
Why WordPress Migration Is Different
WordPress sites are more portable than most people expect, but they have one quirk that trips up manual migrations. The site’s URL is stored throughout the database, not just in a config file. Every post, page, image reference, and widget setting can contain the old domain hardcoded into the content. Move the files and database without addressing that, and the “migrated” site loads with broken images and dead internal links. Login redirects also bounce back to the old domain.
This guide covers both the plugin-based method, which handles that problem automatically, and the manual method for cases where a plugin isn’t practical. Both sit inside the broader process. See how to migrate a website for the full seven-stage framework this guide assumes as background.
Method 1: Migration Plugin (Recommended for Most Sites)
- Install a migration plugin on the current WordPress install (options include Duplicator, All-in-One WP Migration, or a host-provided migration tool).
- Create a full site package — the plugin bundles files, database, and media into a single exportable archive.
- Download the package or transfer it directly if the plugin supports host-to-host migration.
- Install a fresh WordPress instance on the new host, or use the plugin’s installer script if it provides one.
- Import the package into the new install. The plugin handles the database search-and-replace automatically, updating every stored URL reference to the new domain.
- Log in and check the dashboard for any plugin or theme conflicts flagged during import.
This method is faster and less error-prone for most site owners. It automates the exact step manual migrations get wrong.
Method 2: Manual Migration
- Copy the WordPress files via SFTP to the new host, including the
wp-contentfolder (themes, plugins, uploads). - Export the database using phpMyAdmin or a command-line
mysqldump. - Create a new database on the new host and import the exported SQL file.
- Update
wp-config.phpwith the new database name, username, password, and host. - Run a search-and-replace on the database for the old domain against the new one. Use a dedicated WP-CLI command or a search-and-replace tool built for WordPress databases — a plain SQL find-replace can corrupt serialized data.
- Flush permalinks by re-saving the permalink settings once the site loads on the new host.
The manual method gives full control over exactly what moves and how, which matters for large or heavily customized installs. It requires comfort with the database layer that the plugin method abstracts away.
Verify Before You Cut Over DNS
Whichever method you use, test the migrated site on the new host’s temporary URL or via a local hosts-file edit before touching DNS. Check that:
- Pages, posts, and media load correctly with no broken image links
- Plugins are all active and functioning, not just installed
- The admin dashboard logs in without redirect loops
- Any custom permalinks or SEO plugin settings survived the move
Only after this passes should DNS point at the new host — see how to migrate a website for the DNS cutover and rollback stages that follow.
Consider WordPress-Specific Hosting for the Destination
A generic shared-hosting plan can run WordPress. But a lot of the friction people associate with “slow WordPress” or “constant plugin conflicts” traces back to hosting that isn’t tuned for the platform. That includes missing object caching, outdated PHP handling, or resource limits that choke under plugin load. Migrating to WordPress hosting built specifically for the platform resolves a surprising amount of that friction, without changing a line of the site itself. If you’re evaluating destinations, best WordPress hosting covers what separates a WordPress-tuned host from a generic one.
If WordPress isn’t already installed on the destination and you’re starting from scratch instead of migrating an existing install, see how to install WordPress for that separate process.
How to Migrate WordPress Site: FAQ
Do I need a plugin to migrate WordPress, or can I do it manually? Either works. A plugin automates the database search-and-replace step that trips up manual migrations, making it the safer default for most site owners. Manual migration gives more control and is often preferred by developers comfortable with the database layer.
Why do images break after a WordPress migration? Usually because the database still references the old domain in image URLs. A migration plugin handles this automatically; a manual migration needs an explicit search-and-replace step against the database.
Can I migrate WordPress without any downtime? Yes, by fully testing the site on the new host before changing DNS, then keeping the old host live during DNS propagation. This is the same sequencing described in how to migrate a website.
Should I migrate to managed WordPress hosting? If performance or plugin conflicts have been a recurring issue on generic hosting, migrating to platform-specific WordPress hosting resolves much of that friction. It’s not required for a successful migration, but it often improves the result. It’s worth considering if the current host has been a repeated source of problems.
What should I do if the migrated site’s permalinks show 404 errors? Re-save the permalink settings from the WordPress dashboard on the new host — this regenerates the server’s rewrite rules for the new environment and typically resolves the issue immediately.