Services

Adobe Commerce development
Storefront design
Upgrades, migration & support
Performance & SEO
AI & agentic commerce
Custom application development
Book a free audit call

Faceted Navigation SEO: How to Stop Filters Creating Thousands of Bad URLs

Faceted navigation: SEO & growth guide from Mistri
Loading...
Faceted Navigation SEO: How to Stop Filters Creating Thousands of Bad URLs

Faceted navigation SEO means deciding which filter URLs search engines should crawl and index, and keeping the rest out. Index only the few filter pages that match real searches and give them unique content. Block crawling of the endless combinations, sorts and view modes, usually in robots.txt. Use canonical tags and noindex as secondary tools, because Google says they are less effective over the long term than preventing the crawl.

Why filters cause SEO problems

Every filter a shopper can click usually creates a URL. With ten filters of ten values each, plus sort orders, page sizes and pagination, a single category can produce millions of combinations. Google's documentation calls this a near-infinite URL space and lists two direct costs: overcrawling, and slower discovery of new and useful pages. In practice you also see:

  • Thousands of thin, near-duplicate pages in the index report.
  • Crawl activity spent on filters while new products wait to be found.
  • Server load from bots requesting uncached filter combinations.
  • Internal links and signals spread across copies of the same product list.

The four treatments, and what each really does

  • Index. A clean, crawlable URL with a self-referencing canonical, a unique title, H1 and intro, linked from your navigation and listed in the sitemap. Reserve this for combinations with real search demand.
  • Canonicalize. The filtered page stays crawlable but points rel="canonical" to the unfiltered category. Google treats canonical as a hint, and says it may gradually reduce crawling of non-canonical versions. Crawling still happens.
  • Noindex. A noindex robots meta tag keeps the page out of the index, but Google must still crawl the page to see the tag. It does not save crawl activity.
  • Block crawling. A robots.txt Disallow rule stops Googlebot fetching the URLs. This is the option Google recommends when filtered URLs do not need to appear in Search. Blocked URLs can occasionally be indexed without content if heavily linked, and Google cannot see a noindex or canonical on a blocked page.

Do not stack treatments that cancel each other out. A page blocked in robots.txt and tagged noindex will never have its tag read.

Decision table: what to do with each filter type

Use search demand as the deciding factor. If people search for the combination and you have enough products to satisfy it, it can earn an indexable page. If not, keep it out of the crawl.

Filter typeExampleTypical demandRecommended treatment
Product type or sub-typeShoes > trailHighIndex, ideally as a real subcategory with its own clean URL
BrandRunning shoes + brandOften highIndex selected brands with enough products; block the rest
Key attribute people searchWaterproof, wide fit, cordlessVariesIndex if keyword research shows demand; otherwise block
ColorRed dressesMedium in fashion, low elsewhereIndex in categories where it is searched; block elsewhere
SizeSize 10LowBlock crawling
Price range$50 to $100Low as a filter valueBlock; build a curated "under $100" landing page if the query matters
Rating, availability, "on sale"4 stars and upVery lowBlock
Multi-select within one filterRed or blueVery lowBlock
Two or more different filters combinedBrand + color + sizeRare beyond two filtersBlock, except specific pairs you choose to index
Sort order, page size, grid/list view?product_list_order=priceNoneBlock crawling
Pagination of an unfiltered category?p=2Not searched, but needed for discoveryKeep crawlable; self-canonical per page
Tracking and session parametersutm_sourceNoneCanonicalize to the clean URL and do not link to them internally

The pagination row follows Google's pagination guidance: give each page its own URL and canonical, rather than pointing every page at page one.

Rules for the filter pages you do index

An indexable filter page should behave like a real landing page:

  • A stable, clean URL. Either a path like /shoes/trail/ or parameters in a consistent order. Google recommends the standard & separator and a consistent filter order with no duplicate filters.
  • A unique title, H1 and short intro that match the query, not "Shoes - Color: Red".
  • Crawlable links from the parent category or menu, using normal <a href> links.
  • Enough products. A page with one or two items rarely satisfies the query. Set a minimum.
  • A self-referencing canonical and inclusion in the XML sitemap.

For combinations that produce no results, Google recommends returning a 404 status rather than an empty 200 page or a redirect to a generic error page.

Magento and Adobe Commerce layered navigation

Out of the box, Magento layered navigation adds query parameters for each filter, such as ?color=49, and toolbar parameters for sort direction, sort field, page size and view mode. Sorting and view options create duplicate lists of the same products. A practical starting point:

  1. Enable category canonicals. At Stores > Settings > Configuration > Catalog > Catalog > Search Engine Optimization, set Use Canonical Link Meta Tag for Categories to Yes, so filtered and sorted URLs point to the category.
  2. Block toolbar parameters in robots.txt. Edit robots.txt at Content > Design > Configuration, in the Search Engine Robots section, or in the file your deployment manages.
  3. Decide which filter parameters to block. Block the attribute codes that should never be indexed (size, price, rating) and leave crawlable only the ones you are turning into landing pages.
  4. Turn chosen facets into real pages. Core Magento does not create clean, unique-content URLs for filter values. Either create genuine subcategories, or use a well-supported layered navigation extension that gives selected filters their own URLs, titles and text.
  5. Limit filterable attributes. Only make attributes filterable that shoppers use. Fewer filters means fewer URLs and lighter search queries.

An example robots.txt fragment for toolbar parameters (Google supports the * wildcard):

User-agent: *
Disallow: /*product_list_order=
Disallow: /*product_list_dir=
Disallow: /*product_list_limit=
Disallow: /*product_list_mode=

Test any new rule against real URLs before deploying it, and confirm it does not block product or category pages. The Magento SEO checklist lists the other settings that interact with this, such as category paths in product URLs.

How to audit faceted navigation on your store

  1. Measure the problem. In Search Console, check the page indexing report for parameter URLs, and the crawl stats report for where Googlebot spends requests. Server logs give the clearest view.
  2. List every filter parameter and how many values each has.
  3. Check search demand for filter values and pairs with keyword research tools.
  4. Fill in the decision table above for your own filters.
  5. Change in stages. Add robots.txt rules for the obvious cases (sort, view, size), then monitor crawl stats for a few weeks before adding more.
  6. Watch for side effects. Make sure product discovery does not depend on filtered URLs you have just blocked. Categories and pagination must still link to every product.

Faceted navigation is one part of a wider technical picture. Our ecommerce SEO guide shows where it fits among the other page types.

FAQ

Should I use nofollow on filter links?

Google says rel="nofollow" can help, but only if every link to the URL carries it, and it is generally less effective over the long term than blocking in robots.txt.

Can I put filters after a # in the URL?

Google generally ignores URL fragments for crawling and indexing, so fragment-based filters are not crawled. That also means they can never rank as separate pages.

Will blocking filters lose traffic?

Not if you first identify the filter pages that already earn clicks in Search Console and keep those indexable as proper landing pages.

Mistri helps Adobe Commerce stores map their filters, choose what to index and implement the rules safely as part of our Magento SEO services.

Sources

Google Search Central: Managing crawling of faceted navigation URLs; Google Search Central: Pagination and incremental page loading; Adobe Experience League: Catalog configuration reference.