Beginner's Guide for WordPress / Start your WordPress Blog in minutes

How to Easily Move WordPress to a New Domain (Without Losing SEO)

Do you want to move your WordPress site to a new domain? Changing your website’s domain name can significantly impact your SEO rankings, so it’s a process that needs to be done very carefully.

While you cannot avoid temporary SEO fluctuations when migrating your website to a new domain, you can definitely minimize the impact and quickly regain your search traffic and rankings.

In this guide, we will show you the proper way to move WordPress to a new domain without losing SEO.

Migrating a WordPress website to a new domain name without loosing SEO

Here’s the 5 step process that we’ll cover to help you migrate your WordPress site to a new domain name:

  1. Create a Duplicator package of your WordPress site
  2. Create a database for your new domain name
  3. Unpack WordPress on the new domain
  4. Setup permanent 301 redirects
  5. Notify Google about the change

Video Tutorial

Subscribe to WPBeginner

If you’d prefer written instructions, just keep reading.

What to Know Before You Change Domains

Before you start, there are a few things you should know.

The process of transferring to a new domain will temporarily affect your search engine rankings, since Google and other search engines will need to adjust to the changes.

Yes, this will also temporarily affect your search traffic as well. Please keep in mind that this is normal, and it happens to all websites that switch to a new domain.

However, you can dramatically decrease the SEO impact by following this guide. We will show you the right way of moving your WordPress site to a new domain name, setting up proper 301 redirects, and notifying search engines.

Please note that this guide is not for moving WordPress site to a new host. This is for switching a domain name only. While the process is similar, there are a few extra steps involved in this process. These extra steps will help you to protect your SEO rankings and traffic.

Lastly, if your old website is on WordPress.com, then you need to follow the instructions in our guide on how to move from WordPress.com to WordPress.org instead.

Pre-Steps: What You Need to Get Started

In this guide, we are assuming that you have your WordPress website setup on oldsite.com, and you are trying to migrate it to newsite.com.

We are also assuming that you already have a WordPress hosting account, and you are familiar with your web hosting control panel.

You’ll also need to know how to use an FTP client like FileZilla, or how to edit files using the File Manager app available under your hosting account dashboard.

In case you don’t have a web hosting provider or are looking to switch to a new one, we recommend using Bluehost (great for small sites + comes with a free domain) and either SiteGround or WP Engine (great for larger sites or online stores).

Once you have those things in place, you’re ready to start the process!

Step 1: Create a Duplicator Package of Your WordPress Site

The first thing you need to do is create a full backup of your WordPress site. We’ll use this backup to create a duplicate of your website, so you can set up the redirects properly from your old domain to the new one.

While there are many WordPress backup plugins available, we’ll be using Duplicator which is a free backup and migration plugin.

Let’s start by installing and activating the Duplicator plugin on your old domain name. For more details, see our step by step guide on how to install a WordPress plugin.

Once activated, the plugin will add a Duplicator menu item in your WordPress admin. You need to click on the Duplicator menu, and then click on the ‘Create New’ button to create a new package, or copy of your WordPress site.

Create a new Duplicator package

After that, you will be asked to click on the Next button to continue.

Duplicator will now run the website duplicator wizard. First, it will run some tests to see if everything is in order. If the plugin finds an issue, then you will see a warning with instructions.

If all items are marked ‘Good’, then click on the ‘Build’ button.

Build package

The plugin will now start creating a duplicator package of your website files. This process may take a few minutes depending on the size of your site.

Once finished, you’ll see download options for the Installer and the Archive package. You need to click on the ‘One-click download’ link to download both files to your computer.

Download Duplicator package

The archive file is a complete copy of your WordPress files. It includes your WordPress themes, permalinks settings, plugins, uploads, and any other files created by WordPress plugins.

The installer script is a PHP file that will automate and run the WordPress migration by unpacking the archive file.

Step 2. Create a Database for Your New Domain Name

Before you can move your WordPress site to the new domain, you’ll need a new SQL database to unpack WordPress on your new domain name.

If you have already created a database, then you can skip this step.

To create a database, you need to visit your hosting account’s cPanel dashboard, scroll down to the ‘Databases’ section, and then click on the ‘MySQL Databases’ icon.

Creating a new database

Note: Your hosting control panel may look slightly different than the screenshots. However, you should still be able to find a Databases section with an option to create a new database.

Simply provide a name for your database and then click on the ‘Create Database’ button.

cPanel will now create a new database for you. After that, you need to scroll down to the MySQL Users section.

Next, provide a username and password for your new user and click on the ‘Create a user’ button. Make sure to note the username and password in a safe place.

Adding a new MySQL database user

The new user you just created still does not have permission to work on the database. Let’s change that.

Scroll down to the ‘Add User to Database’ section. First select the database user you created from the dropdown menu next to the ‘User’ field. Then select the new database you just created and click on the Add button.

Add user to database

Your database is now ready to be used for moving WordPress to the new domain name. Make sure to note down the database name, username, and password. You’ll need this information in the next step.

Step 3. Unpack WordPress on Your New Domain Name

Now you need to upload the Duplicator files you downloaded earlier to your new domain name.

The Duplicator package includes your WordPress installation as well. This means you don’t need to install WordPress on your new domain.

First, connect to your domain name using an FTP client. Once connected, make sure that the root directory of your website is completely empty.

After that, you can upload the archive and installer files to the root directory (usually it is public_html).

Upload Duplicator files to new domain name

Once both files have finished uploading, you are now ready to unpack WordPress.

Open a new browser tab and go to the following URL:

http://example.com/installer.php

Don’t forget to replace example.com with your new domain name. This will launch the Duplicator migration wizard.

Duplicator Wizard

The installer will look for the archive file. You need to check the terms checkbox and click on the Next button to continue.

Now, the installer will ask you to configure your WordPress database information.

Your host will likely be localhost. After that, you will enter the details of the database you created for your new domain name in the earlier step.

Connect your new database

Once done, click on the next button to continue.

Duplicator will now unpack your WordPress database backup from the archive into your new database.

Next, it will ask you to update the site URL or Path. You shouldn’t have to change anything since it automatically detects the new URL of your domain name and its path.

If it doesn’t, then you can change the URL to your new domain name. After that, click on the next button to continue.

Update site URLs

Duplicator will now finish the migration.

You can click on the ‘Admin Login’ button to enter the WordPress admin area of your website on the new domain name.

Finishing WordPress migration to new domain name

Step 4. Set Up Permanent 301 Redirects

The next step is to point users arriving on your old domain name to the new domain. This is done by setting up 301 redirects.

301 redirects are very important for SEO and user experience. Adding them will allow you to automatically redirect users and search engines to your new domain name.

In other words, whenever someone lands on a post or page on your old domain, they will be automatically redirected to the same post or page on your new domain, instead of seeing a 404 error.

To keep your redirects in place, you’ll need to keep your old WordPress installation active so it can continue to redirect to the new one you just created.

There are two ways to set up the redirects. The first method is easy and just takes a few clicks. The second method requires you to edit files manually.

Method 1. Set Up 301 Redirects With All in One SEO

For this method, we’ll be using All in One SEO (AIOSEO). It is the best WordPress SEO plugin on the market and allows you to easily optimize your WordPress website for SEO.

First, you need to install and activate the All in One SEO plugin on your old domain. For more details, see our step by step guide on how to install a WordPress plugin.

Note: You’ll need at least the Pro version of the plugin to access redirect manager addon. You can also set up AIOSEO on your new WordPress site to boost your search engine rankings and traffic even more.

Upon activation on your old domain, you need to visit All in One SEO » Redirects page and click on the Activate Redirects button.

Activate redirects

Next, you need to switch to the ‘Full Site Redirect’ tab and turn on the ‘Relocate Site’ toggle. After that, you need to enter your new domain name next to ‘Relocate to domain’ option.

Full site redirect

Don’t forget to click on the Save Changes button to store your settings.

Method 2. Manually Set Up Redirects to New Domain

This method requires you to edit the WordPress .htaccess file on your old domain name.

First, you need to connect to your old site using FTP and edit the .htaccess file.

This will be located in the same directory as your wp-includes or wp-admin folder. Open the .htaccess file and paste the following lines of code at the very top:

#Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]

Note: Replace newsite.com with your new domain in the above code.

Once you have applied these changes, then visit your old domain name. It should automatically redirect you to the new domain.

If it doesn’t, then it means the redirection is not setup properly, and your server likely doesn’t support redirect rules. You need to contact the support team at your web hosting company to get RewriteEngine turned on.

Step 5. Notify Google About Your New Domain

Now that you have moved WordPress to a new domain name and set up redirects, it is time to notify Google about your change of address. This will help Google find your new website domain quickly and start showing it in search results.

First you need to make sure that both your new and old domain are added to the Google Search Console as two different properties. See step 1 in our Google Search Console guide for instructions.

Next, you need to select the old domain name as the active property in your Google Search Console account dashboard.

Select old domain

After that, click on the Settings menu from the left column and then click on the ‘Change of Address’ tool.

Change of Address

Now you need to select your new domain under the Update Google section, and then click on the ‘Validate & Update’ button.

Add new address to change of address

That’s all, Google will now validate that your old domain is redirecting to the new domain and save your changes.

On the next screen, Google Search Console will show you a step by step wizard to submit your change of address request.

Notify Your Users About the New Domain Name

While the 301 redirects do their job, it is always good to make a public announcement about the migration.

You can do this by simply writing a blog post on your new site and sharing it on your social media accounts.

If you have an email newsletter or push notification subscribers, then you should send out an announcement to them, too.

This can be helpful in a lot of ways.

First and foremost, your users are more likely to remember the new domain once they read about it.

Second, you can ask your users to let you know if they see any bugs. You alone cannot test your site in every different type of browsers or system environment. It’s always helpful to have a fresh pair of eyes looking at it.

We hope that this tutorial helped you move your WordPress site to a new domain name. You may also want to see our guide on how to get a free email domain, or see our expert pick of the best business phone services.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit – a collection of WordPress related products and resources that every professional should have!

Reader Interactions

494 CommentsLeave a Reply

  1. Hi, One simple question,

    Domain1.com (expired but files are there in CPanel of X Hosting)
    Domain2.com (new domain added to X Hosting and nameservers updated to point to hosting server)

    I simply want my Domain2.com to point to files or folder of Domain1.com in my hosting account

    pls tell how to do this..this is not answered clearly anywhere

    • Hi Eben,

      In your domain settings there is an option to select the root folder or home directory for that domain. You can use that option and point it to the directory that has your older domain’s files.

      Admin

  2. Hi there,
    My website domain name has expired but I have a full backup of it using backup to dropbox. Now can I migrate the previous site to a new domain? If possible then what are the process?
    Thanks In Advance
    Rafi

    • Hi Rafi,

      Yes you can migrate it to a new domain name. The process actually depends on the backup you have. If you have complete WordPress backup then you can just upload it to your new domain name and then update URLs.

      Admin

  3. I enjoyed the article! I just wondered, what do i do if my new site is still being hosted with wordpress? there is no URL change either.
    I don’t think i’ll need to do any 301 redirects is that right?

    However, I am lost as to the steps i should take to move the traffic from A to B, does this depend on the DNS change? Would appreciate any advice!

  4. This is SUCH a helpful article.
    I’m currently stuck at the “sitename.com/installer.php” step. When I put this in the browser (but with my actual domain) I get a 404 error.
    The installer.php file is uploaded to my directory, so in theory it should work?

    I’ve double checked all the previous steps, and it seems to all be good, so I’m stuck.

    My first thought is that perhaps the dns nameservers haven’t fully propagated yet, and I’m being impatient.

    Anyone have an idea?

  5. Hey guys great article. I actually merged 2 existing sites together and moved all the content from my subdomain site onto my main domain site.

    All data has been transferred across and I have setup the redirect using htaccess file. All the links appear to be redirecting correctly =)

    my question is, what should I do with the OLD wordpress install (files, database etc) located on the subdomain?

  6. Great article! My question is similar but my client already has a new site hosted with blue host. Her old site is a wordpress.com site. She doesn’t need any of the content as she has completely finished the new site. My question is about the redirects from the old site. People still visit there and she’s got good rankings. What’s the best way to redirect the pages (urls) from her old wordpress.com site to her new self hosted site? No content or anything. Just the redirects.
    Thanks for all your help! You guys are the best!!

  7. Hi,
    I have a website with subdomain and I didn’t publish my main domain. when I trying to apply for adsense. it shows that you can’t register with subdomain.
    So I am trying to move my subdomain to main domain. But I have problems

    These are the problems below:
    1. I have register google analytics, google optimize, tag manager and webmasters and etc(SEOs) with subdomain
    2.Traffics and trackings

    So, Please help me to move my website safely

  8. I had an idea for a website and instead of registering for a domain i just made a subdomain from one of my other sites. The idea has developed into something more now. I want to register a domain name and move everything to it and delete the subdomain. I don’t have that much content, I haven’t started it up yet. I could just delete the subdomain and populate the new domain manually. But I do have the subdomain in google analytics and search console. Would it hurt my new site if I did just delete the subdomain, register a new domain and start from there.

  9. This article makes sense for how to move an entire domain to a new address, but what would change in this process if I only wanted to move some content from one site to another?

    I’m working with a client who has a new site being developed (for a large national audience), so that their current site can focus on driving local leads only.

    I want to know how to get their highest performing blogs on to the new national site without losing the excellent keyword rankings we’ve achieved over the past couple of years on their current site (which is the site moving to the extremely local focus).

    Any tips and/or guidance would be greatly appreciated, thanks in advance!

  10. unfortunately, I deleted all the old domain files including the .htacess file from the server without redirecting.Now I got my new domain and I don’t have my old domain files. could you please tell how can I redirect the users from old to the new domain in this situation? Else my domain will be penalized by Google which looks like duplication as I didn’t redirect.

    • Hi Sam,

      Assuming that you still have the old domain name registered, deleting the file only makes your website unavailable on your old domain. You can simply create a new .htaccess file in the old domain folder to set up redirects.

      Admin

  11. Hi, my current WordPress is in root folder; now I want to create WordPress Network / Multisite with sub-folders.
    Can I move my current example.com to example.com/subfolder-1 following the above? OR, is there a simple way to do this?

  12. Hi

    I want move a website to another domain however the structure is very different. The old website was created several years and hasn’t even submitted to google webmaster or console as it is now. What would be the best way to go around it.

  13. There are about a million unanswered questions that all ask the same thing:

    How long do you leave the old site up for?

    If you delete the old site files (to save backup space) will leave the edited .htaccess file in the old directory, will it continue to forward to the new site?

    Thanks.

  14. Hi,

    Thanks a lot for your post!

    I am using a domain abcd.com for my WordPress based website hosted on Bluehost and want to shift to wxyz.com. I have purchased this new domain.

    Now your article says “Next, you need to open your FTP program and connect to your new site. Make sure that the root directory, or the directory where you want to copy your website is completely empty. Upload the installer.php file and your package zip file to the new site.”

    What do you mean by “connect to new site”? As far as I read from your website, and FTP client is used to access files on your ‘hosting’ and not ‘domain’. How do I access the root directory of my new domain? I just have the domain name with me.

    I am not a pro with the website stuff so I contacted my domain provider, they said you can simply change the A name record and nameservers.

    I am stuck, please help me.

    • Hi Abhay,

      Domain names are addresses that point to files hosted on your hosting account. Please see our guide on the difference between domain names and web hosting to learn more.

      If your new domain is also hosted on Bluehost, then you can go to your domains settings and find out your root folder. It could be any folder inside your website’s root directory. Usually it is named after your domain name.

      Admin

      • Hi,

        I am using the following service providers:

        Hosting: Bluehost
        Old Domain: Hostgator
        New Domain: Godaddy

        Now how to I access the root folder of my new domain?

        • Hi Abhay,

          First you will need to point your GoDaddy domain to Bluehost servers by changing its DNS settings. Next you will need to add your domain name to your Bluehost hosting account. Go to your hosting cPanel dashboard and click on Add Domains.

  15. Hi!! Thanks for this!!

    I have a question though: Do I need to keep my old domain like forever? Until when should I wait to finally delete my old domain?

  16. Hi, I am trying to shift a blog between two domain hosted on the same server and with the same MySQL server versions. However while installing database i am getting a connection error and and reason mention in the message was the MySQL Version issue. Below is the exact message i am getting:

    NOTICE: The current version detected was released prior to MySQL 5.5.3 which had a release date of April 8th 2010. WordPress 4.2 included support for utf8mb4 which is only supported in MySQL server 5.5.3+. It is highly recommended to upgrade your version of MySQL server on this server to be more compatible with recent releases of WordPress and avoid issues with install errors.

    Any help in this regards is really appreciated.

    Thanks

  17. Everything worked perfectly with the move but what now?

    How long do you need to keep the old installation and will the redirect still work with just the edited .htaccess in the directory?

  18. Very helpful post, thank you. With your help, moving to the new domain was a breeze.

  19. Firstly, thank for your great work….i want to migrate my site to a new domain in the same server…the old domain is in the public directory so will the new site be a subdomain or what im confused??

    • Hi Smith,

      You can point your domain name to any folder inside public_html. For example, you can create a new folder under public_html and name it after your new-domain.

      Admin

  20. Hi,
    Thanks for this awesome content. Please I want to know how long it will take Google to rank the new site as the old site. And also, would all the link juice of the old site be passed to the new site?
    Because the moment I changed the URL following this all traffic and post ranks drop. Now I’m wondering if it will take position again on search.

    • Hi Adesanmi,

      Please see the step 4. It allows you to tell Google that your website address has changed. The search rankings will start reappearing in sometime. Meanwhile, your 301 redirects will keep sending users to your new website.

      Admin

  21. Thanks for this detailed post. I’m wondering why I need to duplicate the wordpress site. Why can’t I just change the domain for the current site without duplicating it? If I create a duplicate wordpress installation, it will exist in a subfolder, which is not ideal, especially for the link structure. Thanks in advance.

      • Thanks for your reply. I have another question. If I use the Duplicator plugin, do I have to first create a database for the new site before I run the duplicator installer? Do you have instructions for doing this? The instructions above indicate that the installer should be put into a folder that is completely empty. That implies that I cannot first use the WordPress installer that comes with BlueHost to install WordPress (and I assume also creates the associated database). Thanks for your help.

        • Hi Tanya,

          Yes, you will need to create the database. We will soon update the article with more detailed instructions. Meanwhile, you can create a new database by visiting your hosting account’s Cpanel dashboard. Look for the databases section and click on MySQL Databases. You will first need to create a new database, after that you will need to create a new database user. Finally, you will need to add your new database user to your database.

  22. Hey Wpbeginner, thanks for the article. How can i move my free domain under wordpress to a paid hosting and new domain name. Ive search everywhere but no clue. Thanks

  23. Hi Wp-Support,

    Thanks for such a great article. Though it’s was written months ago, it’s an evergreen article.

    However, my question is: I recently registered a new domain, in fact it is my first WordPress website. But it has not yet been indexed. Does the process you outlined here applies to my new site as well?

  24. Great article. I followed it step by step and it appears that my old site is now redirecting and that my Google Analytics and Webmaster Tools are all working too. Thanks!

  25. Hi!
    First of all I would like to congratulate you on your great, helpful and comprehensive posts. The steps seem really simple to follow.
    I want to ask something that is not yet covered, neither in the text, nor in your replies. Lets say that my current site is https://www.example.net (it already has a SSL certificate) and I want to redirect all pages to https://www.example.com ( https as well), without changing host provider.
    Which code should I use in .htaccess file? Should I do anything else?
    Thank you in advance!

  26. Hi,
    What should we do with old domian name.

    For how much time one should keep old data as it is on the old domain.

  27. Hi, I just purchased a new domain name and want to change the old domain to the new one. My worry now is, my current hosting does not have SSL cert and I am using the Cloudflare Flexible SSL. Do I need to put in redirect both http and https (even though I don’t have the cert in my hosting)?

    How about Cloudflare? Do I use the same account, edit it with new domain name or register a new account?

    Many thanks in advance.

  28. Thanks for this. Does this only work for wordpress.org? I have wp.com and can’t seem to find the htaccess link and it looks like the only way to change my site name with the new domain is to pay to map it. Is this normal?

  29. Hi,

    There is a question about my sitemap

    After submitting the new website’s sitemap to Search Console, the old website sitemap should be removed

  30. Hi, thanks for your nice tutorial! Can you please clarify the best way to execute Step 4, when you have to migrate your site every 2 months or so due to having it blocked by the local authorities? Cheers

  31. My band has a sign up page (.net) and a website (.com). The .net is a redirect to a directory on the .com site, it’s not its own real domain. The .com is also a add-on domain of my main domain, so it’s like this:
    Main domain – add-on .com (as a folder of the main) – .net (a folder in the .com)

    I set up a WP site on my main domain. It put it in the root, even before the .www folder that has the main, the add-on, etc. But it has a specific path, so (finally) the question:

    Can I just change the redirect of the .net to the new WP install I’ve done? Sorry if this sounds like a Gordian knot, but that’s the best way I can explain it. I haven’t used WP much before, and I wanted to make sure it wouldn’t freak out being the subject of a redirect. As in, the plug-ins, Paypal, etc.. The redirect would really only affect the main landing page, where people sign up for the mailing list.

    Thanks for your help.

  32. This article helps a lot thank you. I just have one question. I have my primary domain and the new domain and both point to the same root. When you type either domains they will go to the same homepage but of course all posts and pages are under the primary domain.

    This being said I’m not switching locations or anything. I mean the root file will remain the same I only need to switch is the domain name {with home and posts redirects of course}. So, do I need to do the whole duplicator step thing???

    This process is really scary for me!
    Any help will be appreciated.

    Kind regards
    Cami

  33. For step 3 and step 4:

    if the site uses the same url, that should not be needed or?
    as well we got a 301 on our topp domain but don’t know how to remove it..
    The 301 is not there on the www. but without the www. it is there!

    A bit bizare and mindboggler..

    Thanks for thoughts:)

    • Hi Team,

      I just moved from my old domain to a new one. I have a basic account on Bluehost hence the customer support team says I can’t add it as an addon domain to create 301 redirects. My old domain was 6 months old, now I have to again start from the very first step. Can you help me how I can fix this?

  34. Where I can find full service for domain migration?

    I need to migrating (rebranding) domain1.com to domain2.com with all of the contents and urls, also the subdomain. Looks like it’s a complicated job :(

    Thanks

  35. Hi there,

    I want to ask you, how about to redirect domain and change the paltform at the same times, I wanna move aaaa(dot)com (using blogspot custom domain) to bbbb(dot)com using wordpress self-host.
    What the best step to avoid losing my ranking at the search engine to do it?

    Thanks

  36. One question or factor typically not mentioned when you change a domain is how long does it take to get back your rank in Google, and the answer according to this article below is 2-6 months depending on what you do to improve it.

  37. Thank you for publishing this article, I would not have remembered to notify Google of the change, I was simply going to resubmit the new site to index. Also have to make the change in GA!

    Much more work than anticipated but it’s done!

  38. First off, nice article very helpful.
    The question is how long do I need to leave the old site up? or can I delete the old site now that I have the new site up and running.
    Thanks in advance.

  39. I want to change my domain and move that WordPress to new hosting! will this have any effect only ranking? backlinks or like that?

    Any anyone suggests me any post how I can move my WordPress to Blogger completely?
    No just copy past I want to completely move into blogger.
    Is this possible?

  40. Is there a way to transfer Facebook comments from the old domain? I’m using facebook comments on my old website and would love to keep them on the new domain.

  41. Hi, I wan some help please

    My case is a little different

    I migrated content of my website example.com from blogger to WordPress with dedicated server and I decided to leave the first active until I finish the development of the wordpress version that has a provisional domain ‘example. net’

    When I finished developing, I tried to permanently change the .NET domain name to .COM because I might lose all the search results from the search engines.

    How can I reach this goal and thank you

  42. Hello sir, i already change my site address in webmastertool, but now again i need to change the domain. so what should i do now?

  43. Good post, I am trying to move only partial content not the entire website. What is the best way to go about it and not lose SEO ranking?

  44. Thanks so much for this post – very straightforward and helpful as I tackled something intimidating.

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.