I just finished reading a really good article about the Digging into WordPress. His article basically steps through his research and analysis of possible reasons why his website, sitting on a VIP server, crashed and when it was restored still had poor performance. This article really hit home because I am currently using the %postname% structure and just dreading to switch over to his recommendation.structure written by Chris Coyier over at
Permalinks Problem – Do not use just %postname% as your Permalinks
I love my current Permalinks structure %postname%, it’s easy to read,friendly and I love reading my links as cmsmind.com/ -permalinks. The catch here is that Pages also start with text which is identified by its “Page slug”. These page links cannot be altered. The dilemma is how can WordPress distinguish if your article is a post or a page. If you have tons of pages and posts, a search or a simple save can overload the database while it searches and even crash your website.
Here is a quote from The Codex straight from WordPress.org
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 for the first structure tag to be a numeric one, such as /%year%/%postname%/. (Some people recommend /%post_id%/%postname%/ which works for performance reasons but others recommend against it because it is unfriendly to users in the many contexts in which users interact with URLs.)
The solution would be to simply change your permalinks in your Settings to a /%post_id%/%postname%/ or /%year%/%postname%/ both which will clearly distinguish your posts from pages. If you have a new website this would not be a problem, but if your WordPress website has many posts this poses a new problem – What about all the 100’s of posts I’ve created, how will it affect my?
Chris and many others have switched their permalink structure to /%year%/%monthnum%/%postname%/ and have experienced dramatic improvements to website performance. WordPress will automatically detect changes to post links and handle the 301 redirects from the old format to the new format. 301 redirects are what Google needs to know about your new format and update itself and retain your ranks. So I can switch over my permalink structure without taking any, google rank or traffic degradation. I will trust them since hey, they are industry experts.
I read further down Chris’s article and read some refreshing information. The %postname% permalink post structure will be fixed in WordPress 3.3. This information is straight from Andrew Nacin, core developer of WordPress.
I just want to confirm that WordPress 3.3 (due in November) will indeed remove all permalink performance issues related to %postname%, %category%, and the like. It’s done and currently in trunk. So look for that in the coming months.
Even though WordPress 3.3 will remove permalink performance issues surrounding %postname%, I will definitely have to change my permalinks structure soon to start with a numerical value instead of a text. I will test it out and update this post once it’s complete.