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.
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.
- %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:
- Hot Air
- Michelle Malkin
- Perez Hilton (dashes used instead of forward slash)
- Roy Tanck
- Smashing Magazine
- Tech Crunch
- Think Progress
- Venture Beat
is used by:
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.