What is the Best WordPress Permalink Structure?

in Blog

Before launching WPMods, I did a little research into what what considered the best permalink structure. %postname% is promoted by many as the best structure for SEO purposes though some, including WordPress, think differently.

I have personally used /%year%/%monthnum%/%day%/%postname%/ in the past though if I’m honest about it, permalinks were not something I really thought about excessively before recently. I have used %postname% for small content mini sites with less than 30 pages of content but for active blogs I was always reluctant to use it because there was a chance some urls could be the same.

WordPress Permalink Structure

In this post I will explain the different permalink structures available to you and look at the what is being used by popular bloggers and webmasters. I will also attempt to answer the question ‘What is the best WordPress permalink structure?’. Wish me luck! ;)

What are Permalinks?

According to WordPress:

Permalinks are the permanent URLs to your individual weblog posts, as well as categories and other lists of weblog postings. A permalink is what another weblogger will use to link to your article (or section), or how you might send a link to your story in an e-mail message. The URL to each post should be permanent, and never change — hence permalink.

Permalinks can be changed in the settings area of your WordPress admin section (i.e. http://www.youriste.com/wp-admin/options-permalink.php). If you chmod your .htaccess file (found in the root folder of your WordPress site) you can update your permalinks directly via your blog. If not, you will have to manually update your .htaccess file and upload it.

It is very important to decide upon the permalink structure at the start of your websites life as it will determine the URL’s your pages and posts will generate. There are many great permalink redirect plugins available which reduce traffic loss should you change your permalink structure in the future, but it’s still better to pick a permalink structure from the start and stick to it as none of these plugins are perfect.

The different permalink structures available to you

In the WordPress permalinks page there are 4 preset permalink structures and and a custom structure field. The 4 preset structures are:

  • Default: http://blog.wphub.com/?p=123
  • Day and name: /%year%/%monthnum%/%day%/%postname%/
  • Month and name: /%year%/%monthnum%/%postname%/
  • Numeric: /archives/%post_id%

As you know, the default structure (e.g. site.com/?p=123) is not as SEO friendly as the structures which include keywords from your posts and pages. For example, the post name structure tag (%postname%) is frequently used because it includes the article title keywords in the URL.

Below is a list of all the structure tags you can use when choosing a permalink structure together with the explanation WordPress gives for each of them:

  • %year%: The year of the post, four digits, for example 2004
  • %monthnum%: Month of the year, for example 05
  • %day%: Day of the month, for example 28
  • %hour%: Hour of the day, for example 15
  • %minute%: Minute of the hour, for example 43
  • %second%: Second of the minute, for example 33
  • %postname%: A sanitized version of the title of the post (post slug field on Edit Post/Page panel). So “This Is A Great Post!” becomes this-is-a-great-post in the URI (see Using only %postname%). Starting Permalinks with %postname% is strongly not recommended for performance reasons.. *** Note – this has been changed and is ok to do since ver. 2.0
  • %post_id%: The unique ID # of the post, for example 423
  • %category%: A sanitized version of the category name (category slug field on New/Edit Category panel). Nested sub-categories appear as nested directories in the URI. Starting Permalinks with %category% is strongly not recommended for performance reasons.
  • %author%: A sanitized version of the author name.

Those of you who visit WordPress powered websites regularly will know that many of the structure tags above are never used. I can’t recall ever seeing the hour, minute or second structure tags being used, and I don’t understand why anyone would either. However all of the other tags are frequently used by bloggers and webmasters.

Before we delve deeper into what the best permalink structure is, let’s look at what some of the most popular blogs on the net are using.

is used by:

is used by:

is used by:

is used by:

The above sites are a selection of WordPress powered blogs which are in the Technorati Top 100 (thanks to Pingdom for the list).

As you can see, /%year%/%monthnum%/%day%/%postname%/ appears to be the most popular permalink structure, at least with successful blogs anyway. This is the structure I have always used in the past too since it specified the exact date a post was written.

What is the best permalink structure?

I was always under the impression that %postname% was the best permalink structure to use from an SEO point of view because it was only the article keywords which were listed after the domain name in the URL. That is to say, the page URL didn’t have category names, dates or any other words appearing before the keywords. In my research over the last few days I haven’t been able to find anything which suggests that this is actually true.

Last May Nishadha Lakpriya Silva changed his permalink structure from %postname%/ to /%post_id%/%postname%/ because of a statement from WordPress which says that it is not a good idea to start your permalink structure with the category, tag, author, or postname fields:

For performance reasons, it is not a good idea to start your permalink structure with the category, tag, author, or postname fields. The reason is that these are text fields, and using them at the beginning of your permalink structure it takes more time for WordPress to distinguish your Post URLs from Page URLs (which always use the text “page slug” as the URL), and to compensate, WordPress stores a lot of extra information in its database (so much that sites with lots of Pages have experienced difficulties). So, it is best to start your permalink structure with a numeric field, such as the year or post ID

Put simply, according to WordPress, it is not recommended to start a permalink with a text based value as WordPress has to process more queries as it doesn’t know if the article is a page or a post. But how much of an issue is the performance problem i.e. would you notice a page loading a few milliseconds longer than usual?

Rob from Weberz wrote a fantastic article about this issue last June entitled ‘Many SEO Experts Give Wrong Advice Regarding WordPress Permalinks‘. In the article he explains in detail why WordPress has issues with using category, tags, author and post names at the start of the permalink and echoes WordPress’s sentiment that you should use the post id or year at the start of the permalink. I encourage you all to take the time to read the article in full.

There were around 40 comments made in response to the article. Here is a summary of the main points which were brought up:

  • Joost de Valk believes that the performance issue is negligible therefore the main concern should be SEO, and /%postname% provides the shortest and best looking URLs.
  • Michael Gray believes that using year, month or day within a page URL is silly as it makes the post seem dated when it doesn’t have to. I can see the benefits of removing the date from posts where the content of the article will not be less relevant over time, though I do think many articles benefit from having a date attached to them (particularly articles about news and recent events).
  • Joe Hall believes that from an SEO perspective it’s the absolutely right advice but from a developers perspective it is the wrong advice
  • Andy Beard agrees with Mike that /%postname%.html is the best permalink structure since categories, tags and page URLs can’t end with an html extension (on his own site he seems to be using /%post_id%/%postname%.html).


From a technical point of view, using a date or post id at the start of your page URL is better since WordPress will not need to process as many queries. Though most people are of the opinion that any performance issue is insignificant therefore it’s not something to be concerned about. Large blogs like Copyblogger and Daily Blog Tips use /%postname% and on the surface they don’t look like that their permalink structure is causing any loading problems.

From a SEO point of view, most Search Engine Optimisers believe that /%postname% is the best permalink structure to use because the URL is shorter (some promote using %category% at the start of the structure too). Though as I showed earlier, most of the top blogs on the web are using /%year%/%monthnum%/%day%/%postname%/, and I have yet to see anyone prove that someone is losing search engine traffic by including the year month and day in their page URLs.

So for me it really comes down to a usability point of view. With my last blog I used /%year%/%monthnum%/%day%/%postname%/, which I think was a good decision because there were 2 or 3 posts every day and many of them were news related; therefore it made sense to include the date in the page URL. I believe that is why so many mainstream blogs use this permalink structure too, particularly those who have several posts a day and report the news day in day out.

Though if your content doesn’t age (i.e. doesn’t become less relevant over time) then it may be worth just using /%postname%. Perhaps /%postname%.html is a good compromise for those who want the SEO benefits without worrying about any performance or redirection issues, but personally I think the urls look better without them so would be more inclined to just use /%postname%.

It doesn’t seem like there is much between the two most popular permalink structures being used, and there isn’t anything concrete to suggest that either structure has an SEO advantage over the other, or over other structures for that matter. And I don’t agree that some permalink structures are better than others because they produce shorter URLs which are easier on the eye as most people are just following the link from a search engine or another site (i.e. no one is actually sitting typing in the URLs).

Therefore I don’t think that the best WordPress permalink structure actually exists; it really depends on what you prefer and what you need for your site.

Though if someone out there thinks otherwise and can prove that one way is better than the other, I’m happy to change my view :)

Would love to hear your view on the subject so please leave a comment if you have time.


Comments (22)

  • Comment by Bret

    bookmarked!!, I really like ʏour site!

  • Comment by http://www.mulberryoutletsv.co.uk

    Thank you so much, nice job! This was what I had to know.

  • Comment by HomeNetPro

    Hey Kevin,
    After reading your post, my conclusion is this; I believe that the permalink structure doesn’t really matter to Google or any other search engine as far as display or indexing issues go. However, I believe the problem may lie in causing confusion to them about site functionality. For example, if a website site publishes news, I believe it should use a permalink structure like this: /%year% /%monthnum%/%day%/ and possibly with the time too but if you’re publishing content that will never expire, you should simply use: /%postname%.
    I have recently been re-working one of my blogs here: http://www.homenetpro.com/blog that I originally started with Blogger but eventually migrated to WordPress. When I migrated to WordPress, I kept the same Permalink structure originally created by Blogger and have been wondering heavily here recently about whether I should change it or not. Your post here has help me make up my mind to just leave them as they are.
    Thank you for the time you spent researching this information and putting this post together. I’m sure it will benefit a lot of others just as it has me.
    Good Luck to You!

  • Comment by David

    It’s very useful article.I’m seaching some advice for permalinks for my new site. All comments will help me to think how to do it.Many thinks,kevin.

  • Comment by Kevin Muldoon
    Kevin Muldoon

    Hey JP,

    Thanks for the kind words. I’m hoping to visit Canada within the next few years – I always wanted to travel the south of the country by train. My brothers wife is from Michigan so perhaps the next time I visit there I will go.

    I’m from a small town between Glasgow and Edinburgh. It’s about a 30 minute train ride into Glasgow. The highlands are beautiful – I’d love to live there too…if the weather was better haha.

    Drop by the forums and say hello if you have time :)


  • Comment by JP

    Thanks Kevin! The advice was grrreat! (using the Scottish “rrrrr.”) I don’t code so I seem to learn something new about WordPress. Permalinks? Until today. In Canada now, but lived in the UK for 10 years. Visited the Glasgow, Edinburgh and the highlands. What a great country you have!!! If I moved back to the UK, I’d live in Scotland. Where from? Warmest Regards, JP

  • Comment by Faris

    Does it really matters as long as we use WP-Super-Cache Plugin? Because I donâ€â„¢t think wordpress need to do any database query or processing if WP-Super-Cache is installed, as all files are stored & served as plain html file. In my blog I use â€Ëœpostname.htmlâ€â„¢, and never had any problem. Also in the link u mentioned â€Ëœweberzâ€â„¢, he put a note saying that wordpress already fixed the issue on version 3. Thanks for sharing your thoughts :) Please make Comment-Notify as default-clicked :( There is another useful plugin wherein I will get a reply if you replied to my comment.

  • Comment by Kevin Muldoon
    Kevin Muldoon

    It depends. Tags are perhaps the easiest way to go as it’s built into WordPress already so you don’t have to create your own custom setup. Though perhaps you need something more specific than tags.

    You could always take the easy way out and just assign tags and categories to your posts as you see fit and simply remove the category info from the permalink. This isn’t necessarily a bad thing as if a theme is suitable for a blog and a magazine; why should the url show one or the other.

    I’m not 100% sure what you’re looking to do though I think the category is going to be a concern if you include it in the permalink however you set it up.

  • Comment by Dustin

    Kevin, Thanks for your response. Assigning posts to one category would make sense, but in my case, I have both genres and designers set up as primary categories, with subcategories assigned to each of them. So in every case, each post is at least assigned to a genre and a designer. Would it be better to set up the ‘designer’ as a sperate taxonomy rather than a category? And if so, how would I add that to my main navigation menu as a drop-down menu item?

    I’m looking to add other taxonomies to my site (such as style, color, etc), but am not sure if it would be best to set them up as categories, tags or other taxonomies.

    Thanks, Dustin

  • Comment by Kevin Muldoon
    Kevin Muldoon

    No it shouldn’t make a difference. In fact, according to WordPress, the %year%/%monthnum%/%day%/%postname%/ permalink should be faster to load (until the /%postname%/ issue is resolved).

  • Comment by msrosyidi

    I’ve a very slow internet connection.I try to open some blogs above. My browser can open the blogs using /%postname%/ quickly (less than 1 minutes) … and the blogs using %year%/%monthnum%/%day%/%postname%/ slowly (more than 5 minutes)…. Is there any correlation between the permalink structure. I find that /%postname%/ (without any other tag) is the most quick to be opened with my very slow internet connection. I’m sorry for my bad English…

  • Comment by Kevin Muldoon
    Kevin Muldoon

    Hi Dustin,

    I see your dilemma. Unfortunately that’s the way WordPress works at the moment.

    I’ve always assigned posts to one category for seo purposes though I can understand the benefits of multiple categories on a site about themes. Perhaps assigning one category is best so that you get the URL structure you want but use tags for categorising posts.

    Would this work?


  • Comment by Dustin

    Thanks for the write-up. I currently use /%category%/%postname%/ for Themspotter.com, but here’s the issue I have (and I’m trying to find the balance between user-friendliness and SEO):

    -The Breadrumb Trail pulls the info from the permalink, and I frequently assign posts to multiple categories. WordPress uses whichever category comes first (in alphabetical order), which is often not what I want (and often not optimal for SEO), and can result in the breadcrumb trail sometimes displaying confusing results (and not always the path visitors took to get to the post).

    Is there any good way around this? Using a /%postname%/ structure will let me avoid issues related to posts being in multiple categories, but I’d prefer the category name to show up in the breadcrumb trail and in the URL.


  • Comment by Alan

    Really helpful article, thanks, espically after reading the wordpress pages on the subject. Good to know what some of the leading blogs are using.

  • Comment by Kevin Muldoon
    Kevin Muldoon

    I don’t think it makes much difference however I always prefer to the post name at the end of the permalink.

  • Comment by Oora from propolis obat alami
    Oora from propolis obat alami

    Hi Kevin,
    Good reading about permalink, i use /%postname%/%post_id%.php, one thing i am not sure is whether to use %post_id% before or after %postname% parameter?

  • Comment by Christchurch

    What about “/%category%/%postname%.html”? Do you think it is important to have .html at the end of urls for seo purposes?

  • Comment by arvindhk swamy
    arvindhk swamy


    useful info on permalinks strategy.
    How about for community sites like Buddypress based one?

  • Comment by Kevin Muldoon
    Kevin Muldoon

    I know what you mean about static pages. Though this isn’t usually a major issue if you don’t have a lot of pages on your site.

    For example, if you’re only pages are information pages like about, contact, FAQ etc; it’s pretty clear to the visitor that they aren’t viewing the blog.

    However, if you have dozens or hundreds of information pages (e.g. guides) then it may be worth differentiating the blog posts from regular pages.

    Your site is looking good. My only criticism is that the structure/design etc looks a little dated. There have been some fantastic magazine themes released in the last year that would make your site look much more professional. :)

  • Comment by Austin

    Hi Kevin,

    I think that you make some good points in your article. I’m afraid that using just /%postname%/ can sometimes cause confusion for the user with static pages. I narrowed down my list of choices to: /%post_id%/%postname%/ or /%year%/%monthnum%/%day%/%postname%/.

    I think that some of my articles will remain relevant for a long time, including some reviews. It’s kind of a mixed bag, I don’t know what to choose. Would you take a look at my website for me and see what you think? Thank you.

  • Comment by Kevin Muldoon
    Kevin Muldoon

    Hi Chris,

    The page structure is something I gave serious thought to before starting WP Mods. I’ve previously included the date with my articles so that people knew the date the article was published.

    I had considered using post id as apparently this stops and performance issues. Though any performance issues seem to be small at best. So in the end I chose /%postname%/ since the url is smaller and it doesn’t include the date (which is important for a site such as this as most articles remain relevant for a long time).

  • Comment by Chris Howard
    Chris Howard

    I use /%postname%/ on page based sites, but any site that is blogging in a serious way, I use /%post_id%/%postname%/ I’ve do this simply to ensure uniqueness of urls.