Many people want WordPress to power their website’s root (e.g. Example Domain) but they don’t want all of the WordPress files cluttering up their root directory. WordPress allows you to install it into a subdirectory, but have your website served from the website root.
As of Version 3.5, Multisite users may use all of the functionality listed below. If you are running a version of WordPress older than 3.5, please update before installing a Multisite WordPress install on a subdirectory.
Note to theme/plugin developers: this will not separate your code from WordPress. Themes and plugins will still reside under wp-content folder.
Moving a Root install to its own directory #Moving a Root install to its own directory
Let’s say you’ve installed wordpress at example.com. Now you have two different methods to move wordpress installations into subdirectory:
1) Without change of SITE-URL (remains example.com)
2) With change in SITE-URL (it will redirect to example.com/subdirectory)
Method I (Without URL change) #Method I (Without URL change)
1) After Installing the wordpress in root folder, move EVERYTHING from root folder into subdirectory.
2) Create a .htaccess file in root folder, and put this content inside (just change example.com and my_subdir):
Method II (With URL change) #Method II (With URL change)
Moving process #Moving process
(p.s. If you’ve already installed WP in subdirectory, some steps might be already done automatically).
Create the new location for the core WordPress files to be stored (we will use /wordpress in our examples). (On linux, use mkdir wordpress from your www directory. You’ll probably want to use chown apache:apache on the wordpress directory you created.)
Go to the General Screen.
In WordPress address (URL): set the address of your main WordPress core files. Example: http://example.com/wordpress
In Site address (URL): set root directory’s URL. Example: Example Domain
Click Save Changes. (Do not worry about the errors that happen now! Continue reading)
Now move your WordPress core files (from root directory) to the subdirectory.
Copy (NOT MOVE!) the index.php and .htaccess files from the WordPress directory into the root directory of your site (Blog address). The .htaccess file is invisible, so you may have to set your FTP client to show hidden files. If you are not using pretty permalinks, then you may not have a .htaccess file. If you are running WordPress on a Windows (IIS) server and are using pretty permalinks, you’ll have a web.config rather than a .htaccess file in your WordPress directory. For the index.php file the instructions remain the same, copy (don’t move) the index.php file to your root directory. The web.config file, must be treated differently than the .htaccess file so you must MOVE (DON’T COPY) the web.config file to your root directory.
Open your root directory’s index.php file in a text editor
Change the following and save the file. Change the line that says:require( dirname( FILE ) . '/wp-blog-header.php' );to the following, using your directory name for the WordPress core files:require( dirname( FILE ) . '/wordpress/wp-blog-header.php' );
Login to the new location. It might now be http://example.com/wordpress/wp-admin/
If you have set up Permalinks, go to the Permalinks Screen and update your Permalink structure. WordPress will automatically update your .htaccess file if it has the appropriate file permissions. If WordPress can’t write to your .htaccess file, it will display the new rewrite rules to you, which you should manually copy into your .htaccess file (in the same directory as the main index.php file.)
SEO experts believe that Google's crawlers could confuse a subdomain for an entirely different website from the main domain.
But Google crawls, indexes, and ranks subdomains and subdirectories the same way.
Google Webmasters Trends Analyst John Mueller himself said, subdomains generally don't hurt a site's rankings and Google is smart enough to see your main domain and subdomain as being tied to the same website.
When it comes to subdirectories it's a little confusing to decide which option one should choose, in the end it all depends on your business needs.
Subdomains can provide organization and structure to your site for complicated site hierarchies. If you don't have the need, then using a subdirectory can help bring all the "link equity" to your main domain.