WordPress makes it incredibly easy to set a static page as the front page for your blog or website; so easy, in fact, that it’s almost not worth mentioning here. But there’s one tricky and poorly documented bit, as you’ll see shortly.
If you go to
Settings » Reading in you administration panel, you’ll see at the top of the page a section labeled “Front page displays”. It gives you an option to show your latest posts or a static page, with the former chosen by default.
If you want a static front page, you can simply publish a page (we’ll call it “Home”) and then choose the latter option with the “Front page” option set to “Home”.
Now, what URL do you use to get to your list of posts? What if you want to have a static home page at
http://example.com/ with your blog at
http://example.com/blog/? It took me a while to find the answer, including some unsuccessful attempts at modifying
$wp_rewrite->rules. It turns out the answer is incredibly simple: publish a page called “Blog” (it doesn’t have to have any content) and set the last option, “Posts page”, to “Blog”. If you want all of your posts’ URLs to appear under
http://example.com/blog/, too, just prefix your permalink structure with