What is faceted navigation?

Faceted navigation is the filter panel on a category or listing page that lets visitors narrow results by attributes such as color, size, brand, price, or rating. It is standard on online stores, job boards, real estate sites, and recipe sites, and visitors like it.

The SEO problem is the URLs it creates. When each filter adds a parameter, a single category can produce thousands of combinations (?color=red&size=9&sort=price), most of them near-duplicates. Google's crawling documentation has a page dedicated to faceted navigation because it is a common cause of crawlers wasting time on a site.

How it causes problems

Take a shoe category with 6 colors, 12 sizes, 8 brands, 4 price bands and 3 sort orders. If every combination is a crawlable link, that one category exposes tens of thousands of URLs, and the numbers multiply when filters can be stacked in any order.

The results:

  • Crawlers spend their visits on filter pages instead of new products. See crawl budget.
  • Many filter pages get indexed with nearly identical content, which is duplicate content and index bloat.
  • Links and relevance split across variants instead of consolidating on the category page.

Which facets deserve to be indexed

Some filter combinations match real searches. "Red running shoes" or "waterproof hiking boots women" are queries people type, and a filtered page can be the best answer. Those deserve a clean, static URL, their own title and heading, some unique copy, and a place in your internal links and sitemap. Treat them as landing pages, not as filters.

Everything else, such as sort orders, price sliders, stock toggles, and three-filter stacks, should stay out of the index.

How to control it

Common approaches, often combined:

  1. Block filter parameters in robots.txt when you do not need them crawled at all, for example Disallow: /*?*sort=. This is the only option that saves crawling. Test patterns with the robots.txt tester.
  2. Canonicalize filter URLs to the unfiltered category. This consolidates signals but Google still crawls the variants.
  3. Noindex filter pages you want crawlable but not listed.
  4. Do not link to worthless combinations. Filters applied with JavaScript without generating crawlable <a href> links, or links with a consistent parameter order, reduce the space crawlers can find.
  5. Keep filtered URLs out of your XML sitemap.

Pick one rule per parameter. Mixing robots.txt blocks with noindex on the same URL fails, because a blocked URL is never fetched and its noindex is never seen.

In WordPress

WooCommerce layered navigation widgets and filter plugins add parameters such as filter_color and orderby. Check what your filter plugin outputs, then apply the rules above. The WooCommerce category page guide covers which category and filter pages to index.

Common questions

Is faceted navigation bad for SEO?

No. It helps visitors and can target valuable long-tail queries. The problem is uncontrolled crawlable URLs, which you manage with robots.txt, canonicals, and noindex.

Should I use canonical or robots.txt for filter URLs?

Use robots.txt when you want crawlers to skip a parameter entirely, and canonical when you want some consolidation of signals and can afford the crawling. Do not apply both to the same URL.