I am currently redesigning a site that organizes information into categories. Some of these categories contain subcategories (and some of those contain even more subcategories).

I'm trying to decide between the following url structures for the resulting pages:

  • example.com/<main-category>/
  • example.com/<main-category>/<sub-category>/
  • example.com/<main-category>/<sub-category>/<sub-sub-category>/


  • example.com/<main-category>/
  • example.com/<sub-category>/
  • example.com/<sub-sub-category>/

I am leaning toward the first because there will be more relevant keywords that may help long tail search traffic, but I can see disadvantages as well... The most specific keywords to that page will be further away from the "front" of the url and a long url is harder to share and type correctly. For whatever it is worth, I do not expect there to be more than 3 levels of nested categories.

Thoughts on which approach to take, or even something completely different?

  • what's your navigation going to look like? It should sync up with your URL's "folders". Diving deeper in the navigation should drive you deeper into the URL. Sep 9, 2010 at 22:07

2 Answers 2


I'd go for the first one as well. Besides being good for SEO it technically is good for usability as it helps to clearly define what the page is about (for those who actually have any clue what they are looking at that is).

I wouldn't worry about longish URLs as not only are they very common nowadays, but most people are clicking on links to get to their content as opposed to typing it in. Most people find content from either doing searches or navigating their way into a site. And when they do type in a URL is usually just the domain name. Rarely do you see a user enter a URL with subdirectories or query strings. They usually find those deeper pages by search or hitting the site homepage and then navigating deeper.

  • +1 I'd second the first option, though I would take great care to create a succinct hierarchy and avoid duplication across categories - for example: (Fruits > Apples > Golden Delicious) ... versus ... (Fruits > Apples > Golden Delicious Apples) and/or a secondary appearance of the "Golden Delicious Apples" (and associated page content) under (Baking > Pies > Golden Delicious Apples)
    – danlefree
    Sep 9, 2010 at 2:06
  • 1
    3rd option: do both. Use the full URL as the canonical one, and then redirect the short version for people who are typing it in manually. Sep 9, 2010 at 10:45
  • thanks for the answer and comments. I'm not sure we'll have time to implement redirects from the short version to the long version, but that's an excellent feature to think about for a future release. I don't think that we should have any category duplication issues, but I'll definitely be on the lookout for that.
    – Ty W
    Sep 9, 2010 at 12:28

Ditto what John Conde said.

Also, with the second method what if you have categories with the same name as a sub or sub-sub category or if you have a sub category with the same name as a sub-sub category. It will cause you call kinds of issues.

I would only suggest the second method if you have extremely short categories and few of them. Even with short category names people are very unlikely to type them in.

  • I was about to suggest exactly what you said - the 2nd option just invites duplicate indexes Sep 9, 2010 at 3:02
  • the CMS software we're using to build the site won't let us have categories with duplicate url segments and actually prefers the second method if left to its own devices. I'll be circumventing parts of its core framework to make it work as everyone here thinks it should :(
    – Ty W
    Sep 9, 2010 at 12:29
  • @Ty W - Well that is important information! Even with everything we said you need to take into account how much work you will need to do to circumvent core parts of the framework. Sometimes customizing isn't worth the pain. Sep 9, 2010 at 17:01
  • I think in this case it is worth the trouble, and I've worked with this CMS enough to bend it to my will fairly well. I've already started coding up the solution and it's looking good so far :)
    – Ty W
    Sep 10, 2010 at 12:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.