Placing WordPress Site In Root And Blog In Folder

So you want to host your full site in WordPress.  Great, it’s a fine system and we like it a lot over here at Beanstalk.  But often we hit the same scenario and I realized that nowhere on the web (that I could find) is it thoroughly documented so I decided to provide this non-Internet-Marketing-but-useful-for-marketers-and-website-owners tip on how to use WordPress to host your full site and at the same time place your blog in a separate folder (say … “blog”).

There are some decent tutorials out there on how to manage it if you don’t care if your blog posts reside in the folder “blog” but let’s take a scenario where you do, or where, like many, you’re moving your site from a different system into WordPress and have a pre-existing WordPress blog in the “blog” folder.  If you don’t ensure that your blog posts reside in the same locations as previously then you’re going to have to redirect them all (how will depend on your system of course).  Now, done right this doesn’t add a ton of code; in fact, you can simply redirect everything to root with one line in the htaccess file and make things function. But personally I find that a bit sloppy and (more importantly from my perspective) with each 301 you lose a tiny amount of PageRank.  Not huge, but measurable.  Redirect hundreds of blog pages with internal and external links and you’re losing weight you’d probably rather keep.

So, how do you host your WordPress pages in the root of your site while hosting the blog in a separate folder AND host all the blog pages within that folder as well?  Well here it is…

Before we begin I’m going to give a big hat tip to Joe Foley over at WPMU.org for covering the first half of the process on a page I’ve referenced more than once.  In fact, I’m going to use the same images he used as I couldn’t do any better, but he describes it well and has other great content so you can read his post on the subject at http://wpmu.org/create-separate-blog-section-wordpress/.  I’ll let you know when we move into the last step which is the one missing from every explanation I could find.

Step One: Create A Blog Homepage

The first step is to create a blog homepage.  You do this in the Pages section.  I’m with Joe, I just name it “Blog” or something related to the specific industry like “Blue Widget Blog”.

Create a page.

In the path for the Page you will enter the location you want to be the root of the section (for example, www.yourdomain.com/blog/).

Step Two: Set The Location For Your Posts

In the Reading section under your Settings you’ll want to select a static page.  As the image below illustrates you will select your homepage as the homepage of the site (displayed at the root) and the newly created page as the homepage for your posts.

Select a static page for the site.

Step Three: Create The Menu Link

Joe included this so I’ll mention it.  Essentially, make sure you’re creating a link to this section.  In the image below this is done through WordPress.  I personally tend to hard code such things into the includes but that I’ll leave up to you.

Add a link.

Step Four: Change The Posts Path

This is the step that is generally missing from descriptions.  Your blog pages would appear as:

Blog Home – www.yourdomain.com/blog/
Post – www.yourdomain.com/2013/11/13/post-name/
(note: I’ve added the year/date/month to the post URL as an example but there are other ways to set it up)

Now, let’s say you want all your posts to appear in the blog folder of your site.  You simply need to go to the Permalinks section if you settings, switch to a custom URL and add “/blog/ before the parameters you’ve selected.

Changing WordPress Permalinks.

That’s it … now all your posts will reside in the blog folder and your site is at the root.

Obviously you can change the location from “blog” to anything you’d like.