To migrate a WordPress website to a new domain, you copy the files and database to the new address and then update every stored URL. After that, you redirect the old domain and tell Google about the move. Most sites finish in one afternoon, and the slow part is waiting for DNS and for Google.
This guide was tested in October 2026 on WordPress 7.1.3 with a local test site and a real search-replace run. I also read the Duplicator listing as it appeared that month. The URL, redirect and search steps were checked against the WordPress migration documentation and Google’s site move guide.
You will see three ways to move the files and database, and the one step that breaks most moves, which is the URL replace. Then you will set up redirects, use the Change of Address tool, and fix the problems that show up afterward.
How to Migrate a WordPress Website to a New Domain
To migrate a WordPress website to a new domain, back up the site and copy the files and database to the new host. Replace the old URL, test it, add 301 redirects from the old domain and submit a Change of Address in Google Search Console. Do them in this order.
- Back up the site: Save the files and the database before you touch anything.
- Prepare the new domain: Point it at your hosting and add an SSL certificate.
- Copy the site and replace the URLs: Use a plugin, your host’s tool or a manual copy. Then update every stored link.
- Test the new site: Check it on a temporary address before you switch DNS.
- Redirect the old domain: Send every old URL to its new twin with a 301.
- Tell Google: File a Change of Address and resubmit your sitemap.

Google also sets expectations for the result. Its documentation says to expect temporary fluctuation in site ranking during the move. Plan the move for a quiet week and avoid the middle of a sale.
What to Prepare Before You Move
Before you move a WordPress site, make a full backup and list everything tied to the old domain. That list usually holds email addresses, a CDN, license keys, API keys and any hardcoded links. Ten minutes on the list saves hours of hunting for broken pieces later.
Back up the files and the database, and keep the backup off the server you are moving. A WooCommerce store also needs its products and orders safe. Follow our guides on WooCommerce product backup and how to back up the WooCommerce database.
Then set up the destination. Register the new domain, point it at your hosting and install an SSL certificate. The new address should load over HTTPS from the first visit.
These services often hold the old domain. Check each one:
- Email: Mailboxes on the old domain keep working only if you leave its DNS and mail records alone.
- CDN and caching: Both need the new domain added, and the old cache needs a purge.
- Plugin licenses and API keys: Some are tied to a domain and need to be reactivated.
- Chatbots and widgets: Embedded scripts may point at the old address. Check the best WordPress chatbot plugins settings you use.
How to Migrate WordPress Site to New Domain With a Plugin
A migration plugin is the fastest way to migrate a WordPress site to a new domain without touching a database. It packs the files and database into one backup, and an installer on the new host rebuilds them and swaps the URLs. Duplicator is a common choice and has a free version.
On the WordPress.org listing in October 2026, Duplicator shows 1+ million active installations and a 4.9 rating from 4,940 reviews. The page says it packs your files and database into a single backup that you can reinstall on a new server.
Duplicator follows this flow, and other migration plugins work in a similar way:
- Install the plugin: Add it on the old site and then create a package or backup.

- Download both files: Save the archive and the installer to your computer.
- Upload them to the new host: Place both in the empty root folder of the new domain.
- Run the installer: Open the installer address in your browser and enter the new database details.
- Confirm the new URL: Let the installer replace the old address and then log in and test.
The free version has limits. According to its listing, Dropbox, Google Drive and Amazon S3 storage need Duplicator Pro. It also does not support multisite networks. A multisite move needs another route.

How to Move WordPress Site to New Domain Manually
A manual move copies the files over SFTP and moves the database by export and import. You then edit wp-config.php and update the URLs. It takes longer than a plugin but works on any host. Use it when a plugin hits a size limit.
This is also the route to transfer WordPress site files between two servers you control. Each step below is a small job, and none needs special skills.
Follow these steps in order:
- Download the files: Copy the whole WordPress folder from the old host over SFTP.
- Export the database: Use phpMyAdmin or your host’s backup tool to save a
.sqlfile. - Create a new database: Make an empty database and user on the new host.
- Import the data: Load the
.sqlfile into the new database. - Upload the files: Place the folder in the new domain’s root directory.
- Edit
wp-config.php: Enter the new database name, user, password and host.
If a file looks missing after the upload, remember that the front controller is index.php, which our guide on what index.php is in WordPress explains. WordPress cannot load without it.
How to Update the URLs in the Database
After the import, the database still holds the old address in posts, options and widgets. The safe fix is the WP-CLI command wp search-replace, because it handles serialized data. A plain find and replace on the SQL file can break your settings.
The WP-CLI search-replace documentation says the command handles PHP serialized data intelligently and does not change primary key values. Run it with a dry run first:
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --dry-run wp search-replace 'https://old-domain.com' 'https://new-domain.com'
The first line previews the changes without saving them. Run the second line only after the preview looks right, and make sure the backup exists.
Worth knowing: The WordPress migration guide also warns that a blanket replace can cause issues with data serialization. It recommends a tool such as search-replace instead.
Why Plain Find and Replace Breaks Serialized Data
WordPress stores widget and plugin settings as serialized text, and each string carries its own length. A plain replace changes the text but not the length. WordPress can no longer read the value. The setting resets or the page breaks.
In my test, I saved a setting with the link https://old-site.com/shop/, which serialized with a length of 26. A plain replace of the domain turned it into https://newstorebrand.com/shop/. The length stayed at 26 while the text grew to 31 characters. PHP could not unserialize it.

I then ran a real wp search-replace on a test site. It updated a post link and a different saved setting, and that setting still loaded as an array. Its length counter had moved from 27 to 35 to match its new text.
How to Lock the URLs With wp-config.php
You can also set both addresses in wp-config.php, which is useful while you test a copy. The wp-config documentation says setting WP_SITEURL there overrides the siteurl value in the options table. WP_HOME works the same way for the home address.
define( 'WP_HOME', 'https://new-domain.com' ); define( 'WP_SITEURL', 'https://new-domain.com' );
When these constants exist, WordPress greys out both address fields in Settings > General. My test site showed exactly that. A locked field means a constant is in charge.
Keeping a blog on a subdomain but showing it under /blog works with a reverse proxy for a subdomain and the same two address settings.

How to Set Up 301 Redirects From the Old Domain
To keep your traffic after the move, send every old URL to the matching new URL with a permanent 301 redirect. Google recommends server-side permanent redirects wherever you can set them. Keep them in place for a year or more.
On an Apache host, you can add a rule to the .htaccess file of the old domain. This pattern follows the R=301 example in the Apache documentation, with the domains swapped for yours:
RewriteEngine On
RewriteCond "%{HTTP_HOST}" "^(www\.)?old-domain\.com$" [NC]
RewriteRule "^(.*)$" "https://new-domain.com/$1" [R=301,L]
The Apache documentation says R=301 issues a permanent redirect, which tells search engines to update their index. Replace both example domains. Then check an old address with curl -I and look for a 301 status and the new Location header.
The same site move guide says to keep the redirects for as long as possible. That means at least 1 year. Do not let the old domain expire in that time or the redirects stop working.
How to Tell Google About the New Domain
After the redirects work, tell Google with the Change of Address tool in Search Console. Add and verify both the old and new domains first. Google’s help page says to use the tool after you have moved and redirected your site.

The same page lists moves that do not need the tool. A switch from HTTP to HTTPS and a change between www and non-www both skip it, but a new domain needs it. Then submit your new sitemap and watch the Page indexing report for 404 errors.
If you want a specialist to handle the redirect map and the DNS cutover, our WordPress migration services cover it. That saves the risk when the old site earns real traffic.
What About Transferring a WordPress Domain?
Transferring a domain and moving a site are two different jobs. A domain transfer moves the registration from one registrar to another, and it does not copy your WordPress files. Searches to transfer WordPress domain settings often mean the site move covered in this guide.
A full WordPress migration from one domain to another changes the address that visitors and search engines see. That is why it needs redirects, while a registrar transfer needs none.
If you only change registrars, the site can stay where it is and you update nothing inside WordPress. If you change the web address itself, follow the steps above. Many people do both. Finish the site move first and the registrar transfer second.
Common Problems After You Migrate a WordPress Site
Most problems after a move come from three places: stale URLs, a skipped settings save and a search setting left on. Each one has a quick fix inside the dashboard. Work through the list below before you assume something deeper is wrong.
- 404 errors on posts: Go to Settings > Permalinks and click Save Changes without changing anything.

- Missing from search results: Open Settings > Reading and clear the box that discourages search engines.

- Images still load from the old domain: Run the search-replace again and then clear the cache.
- Redirect loop: Check that the old and new domain rules do not point at each other.
Tip: After the move, keep watching the site for a few weeks. A WordPress care plan puts someone on watch while Google settles in.
Conclusion
Now you know how to migrate a WordPress website to a new domain. Back up, copy the site, replace the URLs with search-replace, redirect the old domain and tell Google. The URL replace and the 301 redirects matter most. Give them the most care.
Test on a temporary address before you switch DNS, and keep the old domain’s redirects for at least a year. If you are moving a busy site and want a second pair of hands, our team can plan the cutover with you.
Frequently Asked Questions (FAQs)
Q1. Will I lose my SEO rankings if I move my WordPress site to a new domain?
Rankings usually shift for a while. Google’s site move guide says to expect temporary fluctuation during a move. Good 301 redirects, a Change of Address and a fresh sitemap give the new domain the best chance of keeping its position.
Q2. How long should I keep the 301 redirects?
Keep them as long as you can, and for at least a year. Google’s site move guide gives 1 year as the minimum. Keep paying for the old domain so the redirects keep working.
Q3. Must I change my CDN after switching domains?
Yes, in most cases. Add the new domain to the CDN, update any origin or hostname settings and purge the cache. Old cached files can keep serving links to the previous address until you do.
Q4. What do I do about my email accounts?
Email depends on DNS records and has nothing to do with WordPress. If you keep the old domain, leave its mail records alone and mail keeps working. If you want addresses on the new domain, create the mailboxes there and move the old mail over.
Q5. Do I need to change backlinks?
You cannot edit other sites’ links. The 301 redirects do the work. Ask the owners of your most valuable links to update them to the new address. The rest follow the redirect.
Q6. Will my plugins or licenses break?
Some will. A license or API key tied to the old domain needs reactivating on the new one. Check each paid plugin’s account page after the move and reconnect the ones that ask.
Q7. Can I move a WordPress site to a new domain without a plugin?
Yes. Copy the files and the database by hand, edit wp-config.php and run wp search-replace for the URLs. It takes longer than a plugin, but it works on any host and avoids size limits.
