Do you want to move a WordPress site from subdomain to root domain?
The process is fairly easy to follow, and there is a way to save your SEO rankings as well.
In this article, we will show you how to easily move WordPress from subdomain to root domain with step by step instructions.
Transferring WordPress from Subdomain to Root Domain
A subdomain is an extension of your root domain name. For example, http://yourwebsite.example.com is a subdomain of example.com. In this case, example.com is the root domain.
Search engines consider the subdomain to be a totally different website. This is why you need to make sure that you properly redirect search engines to the root domain after the transfer. This will help you preserve search rankings after moving your website.
Unlike moving a WordPress site to a new host or a new domain name, moving a site to the root domain is a bit easier.
Primarily because both are usually hosted with the same web hosting company. This allows you to skip a few steps.
Let’s take a look at how to move a WordPress site from subdomain to root domain.
Step 1. Create a Complete Backup of Your Website
You should always keep a backup solution installed on your website for automated backups. There are plenty of WordPress backup plugins that you can use to keep your WordPress content safe.
Now, if you already have a backup plugin installed, then you may be thinking that you can skip this step.
This step is to remind you that even if you have automated backups of your website, you still need to create a complete backup of your site. This includes a database backup as well as a backup of all your WordPress files and folders.
Once you have created a complete backup, make sure that you store it on a remote location or on your computer.
Step 2. Moving Your WordPress Files From Subdomain to Root Folder
First, you need to connect to your website using an FTP client or cPanel’s file manager. Once connected, go to your subfolder location and download all your WordPress files to your computer.
Next, open the public_html folder of your root domain. Depending on how your WordPress hosting environment is set up, this folder could also be named www or after your domain name.
Now, you need to upload all WordPress files you downloaded earlier to the root directory.
Step 3. Change WordPress URL and Site URL Settings
Once you move the WordPress files, you will not be able to access the WordPress admin area on the root domain. Trying to log in to the root website will send you back to the subdomain website’s admin area.
To fix this, switch to the FTP client and go to the root directory of your domain name. Next, you need to edit the wp-config.php file and add the following lines just before the line ‘That’s all, stop editing! Happy blogging’.
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');
Don’t forget to replace example.com with your own domain name. If you want your root website to use www, then you will need to enter the URLs with www prefix.
Save your changes and upload the wp-config.php file back to your website.
You can now visit your WordPress site’s admin area on the root domain name.
Step 4. Update URLs
Your WordPress site has moved to the root domain, but there will be links inside your WordPress database pointing to the subdomain.
Let’s fix that.
You will need to install and activate the Search & Replace Everything plugin. For more details, see our step by step guide on how to install a WordPress plugin.
Upon activation, you need to visit the Tools » WP Search & Replace page from your WordPress admin panel.
At the top of the page, you need to enter your subdomain URL next to the ‘Search for’ field and add your root domain in the ‘Replace with’ field.
When you scroll down the page, you can choose to update URLs in specific tables within your WordPress database like your posts, comments, options, user data, terms, and other areas. Or, you can select all of the tables.
Next, hit the ‘Preview Search & Replace’ button.
The plugin will then show you a preview of all the changes it will make.
If everything looks okay, click on the ‘Replace All’ button to continue.
The plugin will now update all URLs in your WordPress database.
Step 5. Redirect All Subdomain Traffic to The Root Domain
Now that you have moved WordPress files, let’s make sure that your subdomain traffic is redirected to the root domain name.
Go to your subdomain folder and make sure that hidden files are forced to be visible.
Your FTP client settings have an option to always show hidden files. In FileZilla, it is located under the Server » Force Showing Hidden Files option.
If you are using cPanel File Manager, then click on the ‘Settings’ button at the top right corner of the screen. This will bring up the preferences popup. You need to select ‘Show hidden files’ and then click on the ‘Save’ button.
If your subdomain folder already has a .htaccess file, then you can delete it and create a new one. Inside the new .htaccess file, you need to copy and paste the following code:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^yoursubdomain\.example\.com$ [NC]
RewriteRule ^(.*)$ "http://example.com/$1" [R=301,L]
</IfModule>
Don’t forget to replace your subdomain with your actual subdomain, and example.com with your domain name.
Please note that the RewriteRule line uses a non-www URL. If you want to use www in your root domain, then you will need to add your URL with a www prefix.
Save your changes and upload your .htaccess file to the server.
That’s all. You have successfully moved your site from subdomain to root domain. You can now visit your website to see it in action. Test out your website to make sure that everything is working fine.
We hope this article helped you move your site from subdomain to root domain. You may also want to see our ultimate WordPress SEO guide for beginners, as well as our picks of the best 404 redirect plugins for WordPress.
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.
Olaf
Many people try to perform migrations using various migration tools, and the results are often half-baked. This is a perfect guide on how to do it properly from A to Z. I’ve tried the Search and Replace plugin during a similar process, and it has since become a must-have utility in my toolkit. There aren’t many plugins like Search and Replace because this one does its job perfectly. I especially appreciate that it performs the change in two phases: first, it finds and displays the results, and then it asks if it should actually change the desired URL. This way, you can comfortably go through the entire list of what it found. Really great plugin for migration proces!
kzain
This is a comprehensive guide for migrating my WordPress site from a subdomain! Both the plugin and manual options provide valuable approaches. Feeling much more confident about tackling this migration now, especially with the reminder to back up the website first, Thanks!
Raluca Laslo
This post saved me hours of work. Every point in it worked exactly as advised. Thank you so much!
WPBeginner Support
You’re welcome!
Admin
Jiří Vaněk
Previously, I rewrote the URL using phpMyAdmin directly in the database, which was tedious for me. That’s why I was interested in the Go Live Update URLs plugin mentioned in the article. Thanks for the tip; according to the description, I feel that it will significantly speed up my migration work and I won’t have to make changes manually via the MySQL database. Great tip.
WPBeginner Support
Glad it was helpful
Admin
Anna
I’m moving from a subdomain to a new domain – can I follow this guide to do this?
jpettett
If it’s on the same server, than most likely yes. Some of the details may depend on how your hosting is set up and if the different files for each domain are all under the same account.
If the account doesn’t offer a way to move the files directly, you may want to check out this guide: https://www.wpbeginner.com/wp-tutorials/how-to-properly-move-wordpress-to-a-new-domain-without-losing-seo/
Heidary
hello and thank you for this article
i moved a website from subdomain to domain but the problem that i have is when i enter the subdomain url in the browser the website is being displayed but the url that is being displayed in the address bar is the subdomain , and when i click one of the links on the website then i am being redirected to main domain , please note there is nothing on the subdomain right now.
i do have 301 redirect on the subdomain but something doesn’t seem to be working properly , any idea what could be causing this? any help or tip would be appreciated
thank you in advance
WPBeginner Support
If you’ve already done the step to update your URLs, we would recommend checking your Settings>general page to ensure the URL was updated correctly there.
Admin
Jesse Dill
I am going through the steps and on step 3, I followed the php syntax but it caused some errors and I couldn’t get to any of the wordpress admin sites. I had to remove the pre tags and just use:
define(‘WP_HOME’,’http://example.com’);
define(‘WP_SITEURL’,’http://example.com’);
After that it worked. Just in case anyone comes across the same issue as me.
WPBeginner Support
Thank you for sharing that in case someone else runs into that issue!
Admin
Valeri Andreev
Thank you so much
sarah
Hi, Step two doesn’t seem to work for me as CPanel won’t let me download the directory sub.example.com
I can download individual files but not folders or directories. I have tried compressing to .zip but the .zip file is empty.
Can you please advise? Many thanks
WPBeginner Support
You may need to check with your hosting provider to ensure they do not have something on their end that is limiting the download from the cPanel side. To get around that, we would recommend using an FTP program that would not run into that issue. You can see our guide on FTP programs here:
https://www.wpbeginner.com/beginners-guide/how-to-use-ftp-to-upload-files-to-wordpress-for-beginners/
Admin
Jessica
I see that Velvet Blues Update URLs plugin on wordpress.org is noted “This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.”
Do you recommend a different plugin now or to still use this one?
Caleb Byers
Do you need to update anything in the databases after doing the steps in the article? Whenever moving a site I’ve seen people say that there are a few steps in the databases, but not in this article… Is there a reason why?
Thanks.
WPBeginner Support
Step 4 handles that
Admin
Del Abernethy
Worked a charm up until I tried to login to wp-admin. The site already had files (which I over-wrote) and users but now it won’t recognise the existing users. It does allow me to login using the username & password from the sub-domain so I’m assuming it is linked to the sub-domain database. Is it possible to link it to the existing original database?
WPBeginner Support
You would want to check the wp-config file for the database it is connected to for your site and you would be able to change that in your file. That would normally happen if you didn’t overwrite the existing file if you were trying to replace a site with the one on the subdomain.
Admin
Peter Harrison
Does this method update all the references in the database too?
Regards
Pete
WPBeginner Support
It would depend on what references you are talking about. If you mean links in the articles then the velvet blues plugin updates those.
Admin
Mucha
please advise on the steps for the htaccess. if my subdomain is /new what should it be on the new htaccess?
WPBeginner Support
You would want to take a look at step 5 in the article for that information.
Admin
Kat
I get a Web Application Firewall error whenever I implement phase 4. What could be the problem?
WPBeginner Support
You would likely want to check with your hosting provider to ensure they don’t have a firewall and your SSL certificate is active as the most common reasons
Admin
Ben
Hey – do you reccomend also using Googles change of address tool, to tell it subdomain.primarydomain.com is now primarydomain.com ?
thanks
WPBeginner Support
If you want you can also use that tool, the redirects would normally resolve this for you.
Admin
Sunita
Thanku so much… it wouldn’t be possible without your help… thank you again!
WPBeginner Support
You’re welcome
Admin
Sara
Hi,
I followed your steps up until the end of step 3, where I have edited the wp-config.php file
I then go to the wp-admin. I enter my details and it just goes back to the same login. It’s not allowing me to login to the wordpress backend.
It’s like it’s redirecting me.
Are you able to help?
I’d really appreciate it.
Thanks,
Sara
WPBeginner Support
There are a few reasons for that, you may want to take a look at our guide below for some possible solutions:
https://www.wpbeginner.com/wp-tutorials/how-to-fix-wordpress-login-page-refreshing-and-redirecting-issue/
Admin
Ghassen GaraAli
Hello,
Does this work to move a subdirectory to root ?
thank you
WPBeginner Support
Yes, you can follow our guide for that as well.
Admin
Sofia
Hello, I did everything and it worked! But now I’m wondering, how do I keep my subdomain as a “staging” website, so that I can change things and not affect the one on the domain. I’d have to make a new database (using a backup) right?
How to assure I don’t do anything wrong?
WPBeginner Support
For setting up a staging site, you would want to take a look at our guide using the link below:
https://www.wpbeginner.com/wp-tutorials/how-to-create-staging-environment-for-a-wordpress-site/
Admin
Oliver
In my subdomain folder, I have 2 .htaccess files. One is in subdomains/example, the other is in subdomains/example/web. The latter is next to all the other wordpress files. Which one should I delete and replace with the code in step 5?
WPBeginner Support
You may need to check with your host but from the sound of it, you would modify the second one.
Admin
Aldo Salim
Hi, thank you so much for the great help.
However, i do not want to keep the old sub-directory folder. Will it be okay to delete the sub-directory folder?
WPBeginner Support
As long as you’ve moved all of the files you can remove the sub-directory folder
Admin
Joshua Orizu
I am building a websites and the domain name is displaying site.comp50 instead of site.com how do i fix this
WPBeginner Support
You may want to check with your hosting provider to ensure the correct domain is attached to where your site is and then you would be able to update the url in your Settings>General area
Admin
Jeremy
What happens to the blog posts on the root domain during a migration?
I currently built a redesigned site on a subdomain, Sandbox.WebsiteName.com, and want to migrate it over to the the root domain. However, I want to keep the blog posts.
i’m worried about the seo. Do the blog post from the root domain get overwritten? If not how would i access them to redirect them?
Thanks,
WPBeginner Support
This method would overwrite the old content on your primary site, for moving the site you could use one of the methods here: https://www.wpbeginner.com/wp-tutorials/how-to-create-staging-environment-for-a-wordpress-site/
or you could import the content from your live site and then follow the steps in this article
Admin
Madison
Hi,
Would this method work if I wanted to move a subdomain, which a friend uses, ie, xxx.example.com, over to their new account so it can be its own website like xxx.com?
If not, is there anything that would work at all or would they just have to start over, thus losing all the comments, page views, etc?
WPBeginner Support
For that type of change, you would want to take a look at our article here: https://www.wpbeginner.com/wp-tutorials/how-to-properly-move-wordpress-to-a-new-domain-without-losing-seo/
Admin
Madison
Thanks! From what it looks like, all I need to do is not use Duplicator on my root domain but on my subdomain and everything should work the same, right?
WPBeginner Support
That should be correct
jeff
velvet blues didn’t work for me, but another url replacement plugin did (better search replace)
WPBeginner Support
Thanks for sharing the plugin that worked for you
Admin
Rui
Hi,
This tutorial is great, but didn’t work for me. I don’t know why.
I can access to admin area, in homepage the images are not shown and when i tried to access posts and products says “Not Found
The requested URL /shop/index.php was not found on this server.”
I would like some help if possible.
Thank you a lot
WPBeginner Support
You may want to ensure steps 3 and 4 were completed for the most common reason for that.
Admin
Canonical Bear
Hi,
We had the same problem (my team and I). Only the Home Page would open, and all other pages were broken.
You need to update the permalinks. Go to Dashboard ->Settings -> Permalinks. Here, don’t make any changes, just click on “Save Changes”.
It re-apply settings with the current directory as root.
All the best.
John
CANONICAL BEAR, you deserve two kisses for this comment. No, make that three! Worked superbly.
Milan
Hello WP Team,
just one quick question… what is the difference between this procedure and clone website from cpanel installatron (godaddy). Can I use clone for same purpose? Do I need to made some additional changes after cloning. It’s looks much easier to do this with clone option.
Thanks for good work!
Melind
This worked like a charm! The part that takes the longest is uploading and downloading the files. Thank you!
smv
This didn’t work for me at all. Step 4, using the Velvet Blues plug-in to update the URLs, didn’t update most of them. There were still loads of references to the old site. I had to re-do everything, but I used the duplicator plug-in, which worked well.
Gábor Sztárcsevics
Hi!
Is this modification will change the records in the database, which is used for my wordpress on the subdomain.example.com?
Shouldn’t I create a new database for the migrated wordpress?
Thank you!
WPBeginner Support
Hi Gábor Sztárcsevics,
Since you are moving from subdomain to root domain on the same hosting environment, your old database would work just fine after you update URLs as shown in the tutorial.
However, if you would like to create a new database, then you can do that as well. You will then need to export your data from the old database to the new one and update URLs.
Admin
Shravan
RewriteCond %{HTTP_HOST} ^yoursubdomain\.example\.com$
in this code, do i need to remove those 2 backward slash’s
Denise
I don’t see where you remove the old wordpress files. Are they automatically replaced when you upload the subdomain files to the root?
Thank you.
WPBeginner Support
Hi Denise,
IF your root site already has a WordPress installation, then you need to overwrite those files.
Admin
Charlotte Jones
I tried this and got a HTTP 500 error. Luckily I backed everything up, but I don’t understand. All the files are there in public_html and I changed the wp-config file to point to the root domain.
Jon
Very good thank you. Went like a dream apart from an error I made by amending the old subdomain .htaccess file instead of the new one in the root. Your advice was excellent tho.
Juan F.
Hi guys,
After doing all the steps, if I want to save a page I get an error and automatically redirects me to the post list, could you help me please?
Thanks in advance.
Anita
Hello!
If I make the site in the exemple.com/Wordpress folder, do I have to move it to the example.com folder or can I just redirect it, how does that work?
/Anita
Ousman Faal
This was definitely useful. I was just about to change a demo site on a sub domain to a root domain.
You guys are live savers.
Kumaar Dev Sharma
this is very helpful to me….very nice post