A URL can be descriptive but, how do I make the most of it so that it is meaningful for both users of my site and for Big Internet Search Engine when it comes along?

  • There are many ways to construct a site that are friendly to search engines. It is not possible to fully answer this question in the space available for answers here. May 28 '18 at 7:34

As Willtech mentioned in his answer, you want to use the path as a way to show various types of categories.

The top one, though, should probably be the type of content, opposed to a broad-topic. But that will very much depend on your website.

For example, if your site talks about fixing things at home. You may have a set of pages under /fixing/.

On the same website, you may want to have a blog to talk about new things coming out such as new tools and new materials, opposed to a way to fix this or that. Those posts would then go under /blog/.

On the other hand, if you're just writing a blog and plan to have 30 to 60 pages and not thousands, I would advise that you consider not using any path. Just the name of the page as in:


One important thing, though, remember that search engines are going to index your pages and changing their location later is going to have an impact (i.e. you will have a 301 which reduces the ranking of the page.) So it's best to start with the final path structure and not change it every six months.

Finally, using categories in the path is a great idea, but in many cases you just can't really do that right. What if a page falls in two or three categories or topics? Which one are you going to choose for that page? Is one clearly a main category and the others lesser categories? A simple (albeit probably not the best) example, you could have a product with a size and a color:


Should you have 30in/blue or blue/30in? Should both work? Should these two categories even appear in the path? It's a complicated problem.

Note that for the longest time, Amazon.com did not bother much and just used a large number for each item. Now they assign a name to the item and follow that with the large number:


A really weird structure if you ask me!

  • Ideally, if content falls into several categories you would have some way to provide it under the several different URL's (and be sure to provide a correct rel=canonical link). This can be difficult on many platforms unless you are a fan of .htaccess
    – Willtech
    May 24 '18 at 21:10
  • 1
    Personally, on the point of an item description, I would stick with /shop/tools/hammer.html or shop/tools/hammer/30in-hammer-blue.html unless you have a whole category of 30in. - especially since the correct hierarchical structured form of the data would be tools, hammer, 30in, blue.
    – Willtech
    May 24 '18 at 21:12

Your URL is the first thing that is required to access your page and is important and easily overlooked.

Strictly, a URL should be arranged as follows for any site:


This allows you, your visitors and, Big Internet Search Engine to deal with your site as a tree. The homepage is the trunk, the broad-topic is the primary branches and, so on. The pages are the leaves.

All visitors to your site (even Big Internet Search Engine) are actually looking for the leaves - even if they are category browser users.

Think of the broad-topic as flexible - the broad-topic root may actually be usable as the landing page for a subdomain redirect for example but, remember that all the sub-topic's are under its banner.

Keep strictly to one topic to a page (defined by your <title> tag, <h1> tag and, the URL) and use an informative writing style regardless of the purpose of your site. Make your leaves juicy but do not artificially pump them.

If your URLs contain query strings instead of paths then you are most certainly not making the most of them, e.g. if all pages on your site are some variation of http://example.com/index.php?cat=45&item=1 then it is bad. You should employ URL re-writing techniques to give specific page requests to your audience, the actual location of a resource or how your code handles URLs to create it is hardly relevant. How you would do this depends on your hosting platform.
