One of the great things about using WordPress is the built-in SEO advantages that this software gives you over building static pages or other blogging software. You have an advantage from the start over others not using WordPress! With that said, there are a lot of SEO techniques that need to be set up or applied by the user. The permalink structure is one of these that you can easily set up when creating your blog and then forget about it.

By default, your WordPress Dashboard gives you a 3 choices to choose from. The default permalink structure is a terrible option from an SEO standpoint and the other two aren’t bad, but they aren’t your best option. According to Matt Cutts at WordCamp 2007 (Matt is the lead guy for the Google Search team), the best permalink structure you can use is just the post title with hyphens. According to Matt:

  • Don’t put your blog at the root of your domain.
  • Name your directory “blog” instead of “WordPress”.
  • In URLs, no spaces are worst, underscore are better, dashes or hyphens are best.
  • Use alt tags on images: not only is it good accessibility, it is good SEO.
  • Include keywords naturally in your posts.
  • Make your post dates easy to find.
  • Check your blog on a cell phone and/or iPhone.
  • Use partial-text feeds if you want more page views; use full-text feeds if you want more loyal readers.
  • Blogs should do standard pings.
  • Standardize backlinks (don’t mix and match www with non-www).
  • Use a permanent redirect (301) when moving to a new host.
  • Don’t include the post date in your URL.

For WordPress users, this is easy to set up. Go into your blog’s Options panel and click on the Permalinks tab. You should see the following:

WordPress Permalink Structure

Click the custom radio button and type /%postname%/ into the field. This is the most ideal setup for your WordPress blog.

If you already have an established blog using another structure, you can easily use the Permalink Redirect WordPress plugin to redirect your posts to the new structure.

Kyle Eslick is WordPress enthusiast who took his passion for WordPress to the next level in 2007 by launching as a place to share hacks, tutorials, etc. Follow Kyle on Twitter @KyleEslick!

  1. Hairie says:

    how come i cannot use custom structure: /%postname%/ in my site? I’m using wordpress 2.5. Any advice?

  2. Josh Kieschnick says:

    I’m a little curious about the post dates. Can anyone explain why this is a bad idea to put them in the url?

  3. Aleph Ozuas says:

    Yes, why not post dates? I don’t use it myself, but… its worst for SEO?

  4. Trisha says:

    I’m currently using post dates in the permalink, however I’ve been rethinking that for some time now, but unsure of the effect of changing – will I need to do 301 redirects for all of my posts so that any that are already indexed by search engines won’t lead to 404 errors? Is there some core function in WP that will do that? Or is there some way to do automatic redirects removing the post date so I don’t have to do a 301 for every post/page?

    I’d really like to change my permalinks to just the post name but only if it won’t negatively effect the inbound links, trackbacks, and indexing I already have….

    Any advice?

  5. Kyle Eslick says:

    @ Hairie – You have to enter it manually like I did in the above screenshot. Is that not working?

    @ Josh & Aleph – I’m not 100% sure, but he’s never made a secret of this. If you look at his WordPress blog you can see this is how he has his setup. Do the dates/caregories in the URL change if you were to change the post date or post category? The only other thing I can think of is that it pushes your keywords further to the right needlessly and I’ve heard SEO experts debate how much of the URL Google reads (first 70 characters, etc.).

    @ Trisha – I switched my blogs last year when Matt made this announcement. It was really easy using the Permalink Redirect plugin mentioned above. Here is my full review of the plugin. In the options, you just plug in your current permalink structure and it will redirect to your new one. Couldn’t be any easier.

    • Richard says:

      I am using WPZ Pulse theme and the Blog post i make go to a default permalink. even though i haven’t that page on my site, or in my menu. it doesn’t let me change my permalink. all my trash is also empty!?!
      please email any help to

  6. BoR|S says:

    When I changed my permalinks structure, I selected the option to have the post date followed by the post name. Now I read this post where you quote Matt suggesting not to include the post date in the permalink. I also noticed that among all other guidelines you bring in Matt’s quote, you decided to highlight the one talking about the post date issue and I wonder, why is it bad to have the post date included in my permalink?

  7. Ian Stewart says:

    I use the same structure myself. Here’s why it’s good for SEO: All things being equal a blog about kazoos writing about the release of the new Kazoo 3000 Extreme with a URL like,

    will probably not rank as high for “the new kazoo 3000” as the blogger with a url like,

    The first URL is telling Google that “2008/12/01” is more important than “the-new-kazoo-3000” by placing it first. You’re right, it’s all about “it pushes your keywords further to the right needlessly.” As far as I know—I’m no expert.

    What’s better though is to write remarkable content that people link to. That’s why I mentioned “all things being equal” above. Links are way more important.

  8. Peter says:


    This one is interesting: In URLs, no spaces are worst, underscore are better, dashes or hyphens are best.

    My english is not so good so maybe someone could explain it to me better.

    URL of any post in wordpress is by default (post slug):

    For post : “example post” it creates

    So what we can do to make this better ? Please provide some examples because this can be very interesting, on my all WordPress pages the default is ok, most of blogs use it.

    Maybe i am getting something wrong here…

  9. Dan says:

    I find the first point interesting too: why should your blog live in a /blog/ subdirectory of the main site? Where’s the benefit in that?

    Surely that moves your post names further to right too, as becomes


  10. Kyle Eslick says:

    @ Boris – See Ian’s comment below. He summed it up great!

    @ Ian – Thanks for the confirmation!

    @ Peter – No, that is the ideal post slug, but it isn’t the one by default. If you already have it set up like that, you’re all set!

    @ Dan – The reason that he recommends moving your blog to a directory instead of using the root of your domain is that way you’d get more links back to you, as some would link back to the site and blog separately. With the CMS craze lately, this has become a popular method anyway to improve your website.

    And yes, it does move it a little further to the right, but only 5 characters (/blog). Unless you write really long post titles, adding only 5 characters should be fine. If you do write long titles, you can customize your post slugs before publishing easily in WordPress.

  11. Dan says:

    Thanks for that Kyle; it makes sense I suppose. If your blog’s got a CMS/Magazine style front page, it would be less confusing for readers if the main “blog” content was on /blog/.

    Just as an FYI, for anyone wanting to do this, it’s quite easy to achieve.

    There’s information here:

    I’ve just tested it on 2.5, and blog.php and home.php seem to happily co-exist these days, contrary to that Codex entry.

    So in a few short steps a root installation of WordPress can become a root home page (home.php) and a sub-directory blog (blog.php).

  12. Kyle Eslick says:

    @ Dan – No problem. You can see my post about making WordPress behave as a CMS, where I covered how home.php interacts with /blog/ like you mentioned above. This has been in place since WordPress 2.1 I believe, so they really need to update the Codex if it isn’t there.

    Great stuff!

  13. Mohan says:

    I have a different issue altogether. I chose to have my permalinks of the format /%category%/%postname%/. This messes up the whole page links. My site seem to work when i have /index.php/%category%/%postname%/.

    I don’t understand why it is expecting index.php/ for all the urls. Any idea on how to get rid of index.php in permalinks structure, yet to have all functional links?

    Thanks for any help towards this.

  14. LucMan says:

    i’m having a problem with wordpress 2.5. I recently updated from version 2.3.2 and I have the permalink structure that you suggest (/%postname%/) the thing is that my permalink for the pages on my navbar don’t work(i’m talking about the pages you access thorugh Manage/Pages in the WP dashboard). I click on them and it just shows the whole context of my site but the body content is blank. If i change the permalink structure it works fine but i don’t want to do that since 1) it’s not seo-friendly and 2) google already indexed me and I don’t want to lose that indexation.
    I’ve been reading and i found that it might be a problem with my .htaccess file but i can’t fix this. Can you toss a lifesaver?

  15. Great post. While I am versed and highly successful in the internet marketing realm, blogging is new for me and this post helped tremendously.

    Thank you for that..

  16. Victor says:


    I had the same problem with /%category%/%postname%/.

    I edited an existing entry and added a new category to that post. I then saved/published it. The link structure started working after that.

    As a side note, the default Uncategorized category was still showing the old/incorrect path…I just deleted that category.

  17. AdamM says:

    While /%postname%/ create a very good url for SEO, its not the best for eveyone using wordpress. Those urls do not meet the url technical requirements to be crawled by Google News. With the lines blurring between “online publishers” and “bloggers”, this should be considered.

    From the Google News url requirements…

    Display a three-digit number. The URL for each article must contain a unique number consisting of at least three digits. For example, our news crawler can’t crawl an article with this URL: It can, however, crawl an article with this URL:

    See more info here:

  18. Nate Moller says:

    Great and specific advice about setting up a wordpress blog and making it SEO friendly. I plan to write a post about this at and will give you all a link.

    Thanks for sharing the tips.

  19. Okizoo says:

    I like using the permalink structure that shows /Category/Post0Name/Year-Month

    Category is another way to get keywords in your URL if you add posts to only one category, and use tags to link posts from other categories together.

    Including the Post Name offers the best SEO option.

    Including the Date I feel is important, because personally when searching on Search Engines, I like to find the most up-to-date or from a specific time.

  20. Kyle Eslick says:

    @ Okizoo – I would not recommend adding dates to your URL. Remember, search engines only count X number of your URL, so if you add the date, you are pushing your keywords further to the right. This increases the chance your keywords will not be recognized by search engines.

    You also need to remember that showing the date can turn away readers. Posts you wrote 5 years ago will look outdated with a date there, but without the date, people will still click over to view your post.

  21. Steven says:

    AdamM is right – Google News requires a 3 digit number, I don’t even see that as an option on WordPress permalinks settings. What’s the best way to customize your settings to meet that requirement? Google News says that simply adding the “year” isn’t enough.

  22. Steven says:

    Just to follow up:
    I’m currently using %postname%/%month%/%date%
    thinking that should give me the 3 digit requirement for google news. NYTimes/Wash Post uses year/month/date/title by the way for their blogs.

    The other option is:

    although post_id won’t be 3 digits until your 100th post, that shouldn’t be a problem, and it seems to fulfill Google New’s 3 digits. I wonder though if month/date say (06/25) is considered 3 or more digits, or two numbers, two digits each?

  23. graphic art says:

    Wow this is surely a great help. I am trying to figure out my permalink structure for better seo and Im having problems that it might cause like duplicate content and the plugin will surely help.Thanks

  24. sexy Boris says:

    I like /%category%/%postname%/
    for extra keywords in the category link!

  25. Solo says:

    Very interesting observation. Sure, I will review mine and keep a close eye on search engine. Also, this make me rethink the way I come up with my post titles and category.

  26. nica says:

    I am having a problem because my blog isn’t really at the root, it’s url consist of but I didn’t want a “flash” page so I did a simple tutorial where I edited the index file of my root directory and changed my wordpress administration to where my blog url will be the same as my websites. However, when you visit my site, with out the /wp, it takes you to my blog, but there is a not found post because of the structure of my permalinks. is there anyway that i could change this to where my permalinks aren’t default but also there is also my actual blog at the front page?

  27. Joreel says:

    Yes I’m also having problems with permalinks.

  28. Alvin Lim says:

    Nice post. I am new with wordpress and just learned what is permarlinks. Before this, I am having the .htaccess file access issue. Thats why I can’t update my permarlinks settings in control panel. By following your guide and instruction from wordpress codex page, my problem was solved. Thanks!

  29. abhishek says:

    what abt this issue –

    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

  30. WordPress permalink is something which is basis of WordPress SEO and no matter what its very important to keep your wordpress permalink search engine friendly….

  31. Gopal says:

    can u help me
    i want to give my site category link to page

  32. Tech Maish says:

    Thank you so much

  33. Geek Blogger says:

    Hi to all i m using – php 5.2.6 with cgi + iis7, please any one tell me how can i set my permalink structure, as of now it is giving me a ” Sorry You Reached Our 404 Error Page” if i use the custom /%postname%/. , please help me.

  34. Derek says:

    When Matt Cutts says “name your directory Blog instead of WordPress”, what does he mean? Is he referring to what you title the blog page on your site? Can someone explain in simple terms, thanks.

    I’m also having issues with a new theme “London Creative”. If I change the default permalink structure to anything other than default, my site goes haywire. I asked the theme author for help, but of course waiting for an answer will probably take days like with most of these guys who sell these themes without properly troubleshooting them (Speaking from experience). As long as the demo looks good.

  35. dk says:

    Can anyone please tell me why when I change my permalink structure to anything other than the default, my site won’t work? Its a brand new installation too. Here is the message it get at the top of my browser when I visit the site:

    catchable fatal error: object of class wp_error could not be converted to string in /wp-content/themes/lcp_red/404.php on line 29.

    I really wish these theme designers on “Theme Forest” would actually troubleshoot their themes before listing for sale. It really makes me angry having to purchase 3 themes in one week because of crappy coding or lack of help from the authors.

    I have used wordpress for a little while now and never had these kinds of problems. Any help would be appreciated. Off I go to the wordpress forum, where I have a 2% chance of getting my question answered.

  36. This solved one of the headache of me.
    However I wonder why we can’t use other custom structures other than year and month etc.

  37. Palie Massa Studio says:

    hi kyle… thank for your great info… really appreciate it… i just try it on my blog…

  38. Thanks for the information. It might be helpfull to point out that after changing to a permalink structure the .htaccess file needs to be updated as well.

  39. Paul says:

    I think that this plugin will help you to set .php as permalink.

    This plugin add the .php at the end of wordpress page

  40. Awesome! Simply awesome. Thanks for sharing.

  41. Abhijit V. Chaore says:

    I have read many articles on this topic. Few insist that the ‘Date and name’ based permalinks are best…while others recommend to keep simply ‘postname’ based permalinks. How to decide which method is best? Any comment?

  42. Jamil says:


    How can i add permalinks for pages.

    Suppose I have new.php and i need it something like




    Please guide me. Can i do this without using .htacess?


  43. Admin says:

    does anyone know if google will penalize your blog if you change the permalink structure? Also, how to redirect your traffic? I would like to chage my permalink structure but i am too afraid to do it

    • Admin says:

      it is not like penalize. you can setup 301 redirect in .htaccess file or you can use 301 redirect plugin which will automatically do that.

  44. Shiva says:


    I did use only post name in my URL, however for other pages i get page not found message, for example:
    is the url i getting in the admin for my news page. I have added to my mian navigation link (cutom), but does not find the page!

    why is that?

  45. Psikopat-Hayalet says:

    best permalink %postname% or /%postname%.html/

  46. Phone Review says:

    I have setup for category/post name..

    why “Don’t include the post date in your URL.”?

  47. Geek Blogger says:

    After one year i am back here, above i have commented about how to set Pretty pearmalinks in wordpress blog when you are using PHP + Windows, finally i have found the solution 🙂 thanks everyone.

  48. S.K says:

    Thanks but i want to make my url like this title

    tell me how to make this in wordpress blog ?

  49. blogtowkay says:

    Hey wphacks, thanks for sharing this tip! I managed to change my permalink structure successfully on my new blog. Piece of cake actually. But I am trying to solve another problem, how to remove the “category” from the permalink (e.g. Not sure if any of you guys have a neat way to solve this?

  50. H.A says:

    I use permalink setting


  51. Vivek Parmar says:

    After installing wordpress the first thing you do is to change the permalink structure and after it install any plugin or theme.
    If your blog has already too many posts then you can easily change your permalinks using dean permalink plugin which offers you changing of permalink without loosing any traffic and breaking any link on your blog

  52. Tom Lemanski says:

    Thanks Kyle,
    Both the Permalink setting and the plugin worked instantly and perfectly.

  53. Adii says:

    Thanks for the detailed permalink structure article, useful. I successfully changed my permalinks from to

    and i hope it would not be that bad for seo? right?

    for this i used custom structure with /%category%/%postname%/. 🙂

  54. bill davis says:

    This thread is 3 years old and I needed to read it last year. I can’t believe what I have done. I had somehow managed to put 2 urls and a page name for my post title on every post. Many, did I mess up or what???????

    Thank you VERY much for this old thread as I am back on track.

  55. Aron says:

    im using permalink /%category%/%postname%/, when i using the Top level Cat plugin, the permalink didn’t work, its broken. so i added .html, any suggestion for how to remove category slug without using plugin? help..!

  56. Faucets says:

    %postname% is really the best way as I tried before.
    Short URL with keywords are always good. why not?

  57. JeLBee says:

    I read some articles that /%postname%.html has the advantage in Search Engine Optimization.

  58. jes says:

    I couldn’t find the .htaccess file in the server, but later I just uploaded the file and everything worked well..Good post!!

  59. Mrinal says:

    Thanks for your post, it’s help me to fix link structure of my word press blog.

  60. Hillary Bost says:

    that is exactly what I did. great advise.

  61. Gary Judge says:

    This is spot on – and the structure I’m now using. Thanks

Trackbacks/Pingbacks »

  1. 25+ SEO Tips For Getting Ranked Well In Search Engines | All about Technology says:
  2. 100+ Killer Wordpress Resources | Steffan Antonas' Blog says:
  3. My About Me- suggestions welcome says:
  4. Quel est la meilleure option des permaliens dans un blogue WordPress? | Diane Bourque says:
  5. What is the best Permalink Setting for your URL in WordPress? | Diane Bourque says:
  6. How To Optimize Your WordPress Blog For Search Engines (Part One) says:
  7. Quelle est la meilleure option des permaliens dans un site WordPress? | Dominique Lamy says:

Tweetbacks »