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
noindexrobots 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
Disallowrule 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 anoindexor 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 type | Example | Typical demand | Recommended treatment |
|---|---|---|---|
| Product type or sub-type | Shoes > trail | High | Index, ideally as a real subcategory with its own clean URL |
| Brand | Running shoes + brand | Often high | Index selected brands with enough products; block the rest |
| Key attribute people search | Waterproof, wide fit, cordless | Varies | Index if keyword research shows demand; otherwise block |
| Color | Red dresses | Medium in fashion, low elsewhere | Index in categories where it is searched; block elsewhere |
| Size | Size 10 | Low | Block crawling |
| Price range | $50 to $100 | Low as a filter value | Block; build a curated "under $100" landing page if the query matters |
| Rating, availability, "on sale" | 4 stars and up | Very low | Block |
| Multi-select within one filter | Red or blue | Very low | Block |
| Two or more different filters combined | Brand + color + size | Rare beyond two filters | Block, except specific pairs you choose to index |
| Sort order, page size, grid/list view | ?product_list_order=price | None | Block crawling |
| Pagination of an unfiltered category | ?p=2 | Not searched, but needed for discovery | Keep crawlable; self-canonical per page |
| Tracking and session parameters | utm_source | None | Canonicalize 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:
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- List every filter parameter and how many values each has.
- Check search demand for filter values and pairs with keyword research tools.
- Fill in the decision table above for your own filters.
- 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.
- 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.


