In this tutorial I take you through the fairly simple process of setting a static homepage for your WordPress site and moving the blog page to another location, like /blog/.
WordPress is a great platform for displaying blog-style content that continuously rotates on the front page, with new content pushing older content down and, eventually, off to another (rarely, if ever seen) page. This is great for bloggers, but not so good for those who don’t want a blog as their homepage, which happens to be just about every single one of my clients. In fact, most of my clients want an entire site in addition to the blog run through WordPress, which is a whole other tutorial entirely.
What we’re going to cover here is setting a static homepage and moving the blog page to a directory like /blog/.
This task isn’t too difficult, although, depending on how you set it up, it can be confusing as hell, so I’ll walk you through the simple way of getting it done. So let’s git ‘er done…Yeeehaw!
Setting up the Static Homepage
*All file references are to your theme files
- First, back up your theme directory so you can roll back any changes if something goes awry.
- Next, create a new file in your theme directory called homepage.php
- Then open page.php and copy everything in it and paste it in the newly created homepage.php
- At the very top of the newly created homepage.php file, add the following code:
<?php /* Template Name: Homepage */ ?>

Adding template code to top of homepage.php
- Save homepage.php
- Next, log in to WordPress and create a new page. Name it whatever you want…I named mine Homepage.

Creating the static front page
- While creating the page, change it’s Page Template to “Homepage.”

Selecting the home page template
- Finish creating the page just like you would any other and then publish it.
- Next, navigate to Settings > Reading in the WordPress admin.
- Now, under the Front Page Displays section, mark “A static page”, and select “Homepage” from the first dropdown. Leave the second dropdown alone for now.

Setting the static front page settings
- Click save changes and visit your blog homepage. You should see the newly created page as the homepage instead of the standard post loop.
So now we’ve got a static homepage, but our blog page is gone…that’s ok, we’re going to turn that back on and place it at the url, http://www.yourdomain.com/blog/.
Before we get started, make sure you have the pretty permalinks enabled, otherwise, your blog page won’t be at /blog/, but /?p=43 or something like that.
Setting up the New Blog Page
- This is pretty simple. First, in the WordPress admin, create a new page and name it “Blog.” Don’t add any content or anything…all you really need is a title and to make sure that the page slug is “blog.”

Creating the blog page
- Publish that new page.
- Go back to Settings > Reading in the WordPress admin and under the Front Page Displays section, in the second dropdown labeled “Posts page,” select “Blog.”

Setting the blog page settings
- Save changes.
- Delete cache if you’re using a caching plugin.
- Visit your homepage and make sure it’s still there.
- Now visit http://www.yourdomain.com/blog/ and check out the blog page.
Some Things to Remember
When you go into Settings > Reading and set the “Blog page” to a particular page on your blog, WordPress automatically pulls the index.php file and uses that to display the content on that page, which is why we didn’t have to create a new template or anything for the blog page like we had to for the homepage.
Also, you can name those templates and page files whatever you want (I’d avoid home.php for the homepage file though as this will interfere with WP v2.1 and earlier). Just remember the name of the page template that you added to the top of the homepage.php file so you can select that as the page template when creating the homepage in the WordPress admin.
Also remember the actual titles you gave the home and blog pages when creating them in the WordPress admin so you can select the proper pages in the Settings > Reading section.
And finally, whatever page slug you give your blog page when creating it in the WordPress admin is the URL by which you’ll access it (assuming you’re using pretty permalinks). So, if you end up giving your blog page a page slug of “blog-home”, you’ll have to access your blog page at the url: http://www.yourdomain.com/blog-home/.
That should do it. Happy blogging!


John
Just read this post “How set static homepage for WP blog” Most helpful.
Quick question & if you don’t have time to answer it I totally understand.
I would like to do what you did with here & set the static home page and then the blog area and name it /news/. That is all fine and good. Can I also do that again with another section and make essentially 2 separate blog areas on the same site? ie, do what you said in your Tut but make another one /advice/ and have those entries go to that section.
All the rest of my site will mostly be Pages-Static, so I wanted two blog like sections.
Thanks if you have the time.
Your site is great. I am so glad I found it. Signing up for the RSS now.
Thanks!
Hi Natalie,
Yes, you can do that. In fact, it’s what I’ve done on this site with the “blog” and “tutorials” section.
In my case, the “tutorials” section is the blog index, and the “blog” section is basically just a copy of the tutorials section template with a custom query_posts function call that only loops through posts I’ve assigned to the “Blog” category.
Hope that helps.
Thanks John! Will be giving this a try in the next few weeks as I set things up. I really appreciate it.
I’m kinda confused. Made a new “Blog” page, but the original blog page is still visible at the top navigation bar! How can I hide that so it isn’t visitable anymore!
The link is probably coded into the header.php file (depending on what theme you’re using). Try looking there and removing it.
thanks for the help. great job.
Here is the problem I m having. I switched the reading options to static page for example
front page: welcome
post page: blog
But now none of my blog posts are showing up on the blog page. When I switch back and to normal the blog posts are back. Any thing I can do to fix this?
Hi Aaron,
Try this http://www.rlmseo.com/blog/read-more-link-on-wordpress-pages/
If that works, your problem is WordPress doesn’t recognize your “blog” page as the actual posts page for some reason.
Well, I’ve tried your postings on using the static page and many others, and it’s just not working. I bought a template that used the front page (where posts usually appear) for static content, leaving it without a “Blog” page to read posts. Now I’m trying to “fix” it using the means above and nothing seems to work.