SEO

Shopify Faceted Navigation SEO: How to Stop Filter Pages Cannibalising Your Collections

Filters are great for shoppers and risky for SEO. Each combination of colour, size, price and brand can create a new URL, and a store with a few filters can generate thousands of near-duplicate pages. Left unmanaged, they compete with your main collection, waste crawl budget and dilute the signals that should be strengthening one good page.

By FlowCart Agency · · 10 min read

What faceted navigation is, and what it creates on Shopify

Faceted navigation is the filter panel on a collection or search page: colour, size, price, brand, availability and so on. On Shopify, storefront filtering (usually through the Search & Discovery app) produces URLs with filter parameters appended to the collection URL. Sorting adds parameters of its own. Older setups and some apps also create tag-based paths under the collection.

Each unique combination is a separate URL, and many return a page that looks very similar to the parent collection, with the same intro, the same navigation and a subset of the same products.

Why it hurts SEO

  • Duplicate and near-duplicate content: dozens of pages targeting the same keyword as the main collection.
  • Keyword cannibalisation: when a filter URL ranks instead of your collection, it usually ranks worse and converts worse.
  • Wasted crawl budget: search engines spend time on endless filter combinations instead of your important pages. This matters most on large catalogues.
  • Diluted signals: internal links and external links are spread across URLs instead of strengthening one page.
  • Index bloat: thousands of thin pages in the index can drag down how your site is assessed overall.
  • Crawl traps: filter links that keep generating new combinations can trap crawlers in near-infinite loops.

Step 1: decide which filtered views should rank

Some filtered views are really distinct search topics. "Black running shoes" or "waterproof hiking boots" may have genuine search demand. Most combinations, such as "black, size 9, under $100, in stock", do not. Split them into two groups.

  • Valuable: combinations with real search demand and enough products to justify a page.
  • Not valuable: sorting, price ranges, availability, multi-option combinations and anything with little or no search demand.

Use keyword research to decide, not guesswork. Our keyword research work identifies which facets deserve their own page.

Step 2: give valuable facets a real collection

A filter result is a poor landing page: no unique title, no unique copy, and a URL built from parameters. If "black running shoes" has demand, build it as its own smart collection, with a clean URL, a unique title and description, a short intro and links in the navigation or from the parent collection. That page can then rank properly, while the filter URL stays a convenience for shoppers.

See collection page SEO for how to build those pages.

Step 3: control the rest

For filter and sort URLs you do not want to rank, you have three tools. They do different jobs, so choose deliberately instead of stacking them.

  • Canonical tag: tells search engines that the filtered page is a variation of the main collection and the main collection is the preferred URL. Shopify's default themes normally canonicalise filtered pages to the collection URL, but check that yours does. A canonical is a hint, not a command.
  • Noindex: tells search engines not to keep the page in the index. It is stronger than a canonical, but pages must still be crawlable for the tag to be seen. Avoid combining noindex with a canonical pointing elsewhere, since the signals can conflict.
  • robots.txt disallow: stops crawlers fetching a URL pattern at all, which saves crawl budget. But if a URL is blocked, search engines cannot see its canonical or noindex, and a blocked URL can stay indexed if other pages link to it.

A practical approach for most stores: leave a correct canonical in place, stop linking to filter URLs internally, and use robots.txt rules only for patterns that are clearly pointless and heavily crawled, such as sort parameters. Shopify's default robots.txt already blocks some sorting and tag-combination patterns, so review yours at /robots.txt, and edit it through the robots.txt.liquid template if you need extra rules.

Google retired its URL Parameters tool, so you cannot manage parameters from Search Console any more. The controls above are the ones that remain.

Step 4: stop linking to filter URLs

  • Do not link to filtered URLs from navigation, footers, blog posts or emails when you want the main collection to rank.
  • Link to your dedicated facet collections instead.
  • Check that filters are applied without generating crawlable links to every combination where you do not want that. Many themes load results using JavaScript, which is fine for users, but check what crawlers actually see.
  • Avoid filter links that can produce unlimited combinations, such as free-text or range sliders rendered as links.

Pagination combined with filters

Filters multiplied by pagination produce the largest URL sets. Make sure paginated pages carry their own canonicals, and that filtered, paginated pages do not become a path into thousands of unique URLs. Keep the number of pages in a view reasonable.

How to audit your store

  1. Open a collection, apply a few filters and sorting options, and note the URLs that are produced.
  2. View the source of those pages and check the canonical tag and any robots meta tag.
  3. Visit /robots.txt and note which patterns are already blocked.
  4. Crawl the site and count URLs containing filter or sort parameters.
  5. In Search Console, search the Pages report for "Duplicate, Google chose different canonical than user" and "Crawled, currently not indexed" and look for filter URLs.
  6. Check Crawl Stats to see how much crawling goes to parameter URLs.
  7. Search Google for your domain with the filter parameter, such as site:yourstore.com inurl:filter, to see what is indexed.

This is part of our technical SEO audit.

Faceted navigation checklist

  1. Identify the filter combinations with real search demand.
  2. Build those as dedicated collections with unique content.
  3. Make sure all other filter and sort URLs canonicalise to the main collection.
  4. Do not link internally to filter URLs you do not want ranking.
  5. Use robots.txt only for clearly useless, heavily crawled patterns.
  6. Avoid conflicting canonical and noindex signals.
  7. Review Search Console for indexed filter URLs and crawl waste.
  8. Re-audit after theme, app or filter changes.

Frequently asked questions

Do Shopify filters hurt SEO?
They can, if filtered URLs are crawled and indexed as near-duplicates of your collection. With correct canonicals, no internal links to filter URLs, and dedicated collections for filters that deserve to rank, the risk is manageable.
Should I noindex filtered collection pages?
Often a correct canonical to the main collection is enough. Use noindex when filtered pages are being indexed anyway, but avoid combining it with a canonical that points elsewhere.
Should I block filter URLs in robots.txt?
Only for patterns that are pointless and heavily crawled, such as sorting parameters. Blocked URLs cannot pass on their canonical or noindex signals, and they can stay indexed if other pages link to them.
How do I make a filtered view rank in Google?
Create a dedicated collection for that view, with a clean URL, unique title and description, a short intro, and internal links, instead of relying on a filter URL.

Keep reading