⌕ Technical SEO

Faceted navigation: filters and parameters without a URL explosion

How to handle catalogue filters and sorting without creating millions of URLs: which combinations to index, which to block and which techniques to use.

Catalogue filters are a convenience for users and a risk for SEO. Colour, size, brand, price, material, sort order, results per page: every option multiplies the possible combinations. With ten filters of five values each you easily exceed millions of URLs, almost all of them useless to searchers. Faceted navigation therefore has to be designed, not left to grow on its own.

The problem in simple numbers

Imagine a «shoes» category with these filters:

  • colour: 8 values;
  • size: 12 values;
  • brand: 15 values;
  • sort order: 4 options.

If every combination generates a URL, and filters can also be stacked and arranged in different orders, the number of addresses grows combinatorially. The crawler, following filter links, gets lost in this space, while the real product pages are rarely visited.

Telling useful facets from useless ones

Not every combination needs to go. Some correspond to real searches and deserve an indexable page; others are useful only to users already on the site.

Facet type Example Index?
Attribute with search demand men's hiking shoes yes, as a dedicated page
Brand within a category boots from one brand often yes
Size shoes size 42 usually not
Sort order price ascending no
Results per page 48 per page no
Combinations of three or more filters red, 42, leather, on sale hardly ever

The criterion is simple: a combination deserves an indexable page only if someone searches for it and the catalogue has enough products to make it useful.

The techniques available

Static pages for valuable combinations

Useful facets become real pages: clean URL, their own title and description, introductory text, links from the navigation. For example /shoes/mens-hiking/ instead of /shoes?type=hiking&gender=men.

Filters that do not create crawlable URLs

For facets without search value, you can update the content without generating a followable link, for example with form elements instead of <a href>, or by placing the parameters after the # symbol, which is not treated as part of the URL for crawling purposes. Users filter as usual; the crawler sees no new addresses.

Blocking in robots.txt

For parameters that must not be crawled, such as sort order or results per page, a wildcard rule is effective:

User-agent: *
Disallow: /*?*sort=
Disallow: /*?*per_page=

It is the most effective tool for saving crawl activity, but it should be used on URLs that have never been indexed: a blocked URL can communicate neither noindex nor canonical.

Noindex

Putting noindex on weak combinations removes them from the index, but the crawler keeps visiting them. It is useful as a transitional solution or when you cannot change the link code.

Canonical

A canonical from the filtered combination to the main category works only if the content is substantially the same. A «red shoes» page shows different products from «shoes»: the engine might ignore the hint. It is better reserved for near-identical variants, such as a different sort order.

URL construction rules

Even when filters do generate URLs, a few rules limit the damage:

  1. fixed parameter order: colour=red&size=42 and size=42&colour=red must become the same string;
  2. no empty values: ?colour=&size= should not exist;
  3. no duplicates: the same parameter must not appear twice;
  4. no links to combinations without results: empty pages are potential soft 404s.

A gradual approach for an existing catalogue

  1. Extract from the logs which parameterised URLs receive the most crawling.
  2. Compare with search data to see which combinations have real demand.
  3. Turn those into dedicated pages with clean URLs.
  4. Make the remaining filter links non-followable.
  5. Block sort and view parameters in robots.txt.
  6. Check over the following months that crawling shifts to the products.

In short

  • Combinable filters can generate millions of low-value URLs.
  • Index only combinations with search demand and enough products.
  • Turn useful facets into pages with clean URLs and their own content.
  • Make sort orders and useless combinations non-crawlable, or block them.
  • Keep a fixed parameter order and avoid empty pages.
MM
Marco Marzaduri

Marco Marzaduri works in cybersecurity, digital forensics and web development. A computer science graduate, he combines rigorous technical analysis with attention to the people who use technology.

Read also