Skip to main content
2 of 4
Add more about seo friendly URL and how it relates to multiple parameters
Stephen Ostermiller
  • 99.4k
  • 18
  • 141
  • 364

You shouldn't try to make faceted navigation SEO friendly. No matter how you do it, it isn't going to be. Faceted navigation is for users once they get to your site, not for getting your content indexed in search engines.

Faceted navigation is not appropriate for search engines because it produces a near infinite number of URLs. Most of the combinations are going to be very low interest. The pages are going to have content that duplicates other pages. When several filter are applied, there may only be a couple of products listed which would appear to search engines as thin content.

You should make your entire faceted navigation non-crawlable. To make it easy to program, just use standard name value pairs in URL parameters:

/filter?product=watches&color=navy+blue&color=pinkish+red

Then disallow search engines using the following in robots.txt:

Disallow: /filter

You can use this faceted navigation to create a limited number of pages for search engines. It could be useful to have page of navy-blue watches. You could use mod_rewrite to apply just a single filter to a list of products:

RewriteRule /watches/navy-blue /filter?product=watches&color=navy-blue

It would not be appropriate to allow search engine to crawl more than one facet at a time. There are too many combinations. Search engines would see you generating tons of pages with duplication and thin content.

About "SEO friendly" URLs

It is common to hear that URL parameters are not SEO friendly and that you should always use rewrite to create more SEO friendly URLs using only the URL path. That isn't strictly true. Google doesn't really care what your URLs look like. There are no direct ranking benefits from creating these SEO friendly URLs. Any of the following could rank just fine in search engines:

  • /some-page
  • /show?content=some-page
  • /show?id=3932
  • /content3932/some-page

Even having keywords in your URLs doesn't boost your rankings directly. So why the focus on SEO friendly URLs? They help with SEO indirectly.

  1. "SEO friendly" URLs are actually "user friendly" URLs. The best URLs for users are descriptive, easy to type, and memorable. Query parameters introduce punctuation (?, &, and =) into URLs that make them that much harder for users to type and remember. Of the URLs above /some-page is the best for users. Not having words in the URL makes it less descriptive. Having a content ID (while sometimes unavoidable for DB driven websites) makes the URL harder to remember and type.

  2. Search engines don't like inconsistency. Every piece of content should be available at exactly one URL. The URL shouldn't change over time. If there are URL variations that could show the some content you should pick one to make the "canonical" version. All other variations should redirect to it or use meta canonical tags to point to it. All links on your site should point to the canonical version.

    URL parameters can create lots of variation, especially with multiple parameters. Most of the time web apps don't care about about the order of parameters, or the presence of extra unused parameters. Additional parameters may change only a small portion of the page or just be used for tracking. That is a disaster for SEO because of the inconsistency.

    SEO friendly URLs force you to constrain the parameters to a specific order without any extra parameters. It discourages using multiple parameters, each of which only changes a portion of the page.

Moving parameters to the path isn't all it takes to make the URLs friendly. It is more about limiting the URLs to a reasonable number of variations. Any scheme you come up with that allows multiple arbitrary parameters forced into the URL path isn't going to be SEO friendly anymore.

Stephen Ostermiller
  • 99.4k
  • 18
  • 141
  • 364