Blog
Faceted Navigation SEO: Filters, Crawl Budget and Indexable Facets
Which filter pages deserve to rank, how to keep the rest out of the crawl, and how to turn your best facets into category pages that search and AI can use.
The short answer
Faceted navigation SEO is the practice of controlling how category filters such as color, size, material or price create URLs. You index a short list of facets that match real search demand, promote them to static landing pages, and keep every other filter combination out of the crawl with robots.txt, noindex or URL fragments.
Which facets should you index? A demand-first decision table
Index facets that match how people search and keep the rest out. Base the list on keyword data and product counts, and review it every quarter.
We start with search demand, then check inventory. A facet with 2,400 monthly searches and four products disappoints. One with 60 products and no searches is just a filter.
| Facet type | Example (boots category) | Typical demand | What we'd do |
|---|---|---|---|
| Product type | Chelsea boots | High | Index as its own PLP |
| Key attribute | Waterproof hiking boots | High | Index as its own PLP |
| Use or activity | Boots for walking the Camino | Medium to high | Index as its own PLP, even if no filter exists yet |
| Fit or audience | Wide fit women's boots | Medium to high | Index as its own PLP |
| Color | Black ankle boots | Medium | Index the top two or three colors only |
| Size | Boots size 7 | Low | Keep out of the index |
| Price band | Boots under $100 | Low as a URL | Keep out; mention price ranges in the copy |
| Sort orders and stacked filters | ?sort_by=price-ascending, black wide boots size 7 | None to very low | Keep out of the crawl |
Two places where we disagree with common advice.
First, "index one facet level, never two" is too blunt. "Waterproof hiking boots women" combines two facets and has real demand. Filter depth doesn't matter; demand and stock do.
Second, many guides treat size as worthless. For most categories it is. In wide fit shoes or plus-size clothing, the size-adjacent facet is how people search, and noindexing it hands that traffic to competitors.
Keep the result as a written allow list, owned by one person. Anything not on it stays out by default.
Canonical, noindex or robots.txt: matching the control to the URL
Use robots.txt for patterns that should never be fetched, noindex for pages you want dropped, and self-referencing canonicals on facets you index. Canonicalizing every filter to the parent is only a safety net.
| Control | What it does | Use it for | Watch out for |
|---|---|---|---|
| robots.txt Disallow | Stops crawling of matching URLs | Sort orders, size, price, stacked filters | Blocked URLs can still be indexed without content if linked |
| noindex (meta or header) | Lets Google crawl, then drops the page | Filter pages already indexed that you want removed | Costs crawl, since Google still fetches the page |
| rel=canonical to parent | Signals the preferred URL | Near-duplicates you can't block | Google treats it as a signal, and crawl drops only slowly |
| URL fragment (#) | Filters after # are ignored for crawling | Client-side filtering on new builds | Filtered states can never rank |
| Clean static URL | A permanent page with its own content | Facets on your allow list | Needs copy, links and a self-referencing canonical |
Google treats canonicals as a signal of varying strength, not an instruction (Google Search Central).
The conflict that catches teams out
If a URL is blocked in robots.txt, the crawler never sees its noindex tag (Google Search Central). When a store already has 30,000 filter URLs indexed, a Disallow on day one freezes them there. Noindex first, wait until they drop out, then block. Pick one mechanism per URL pattern.
If you keep facets crawlable
Google lists three rules: use & as the parameter separator, keep path-based filters in a fixed order with no duplicates, and return a real HTTP 404 for empty or nonsensical combinations instead of redirecting them (Google Search Central). A filter showing "0 products found" with a 200 status is a soft 404, and Google keeps recrawling it.
What Shopify blocks by default
Shopify's default robots.txt disallows /collections/*+* (tag combinations) and /collections/*sort_by* (Shopify Help Center). The default file we see on live stores also blocks URLs with two or more filter parameters. A single filter like ?filter.v.option.color=black stays crawlable, so check your Crawl stats before editing robots.txt.liquid, and test every rule: Shopify warns that mistakes there can cost all your traffic.
Turning high-demand facets into PLPs that rank and get cited
A filter URL has a generic H1 and no copy. When a facet earns its place, promote it to a static category page with its own URL, content and links.
This matters more with AI search. Google says AI Mode breaks a question into subtopics and runs many queries at once (Google). A long shopper question becomes several facet-shaped searches, and a page titled "Waterproof Hiking Boots for Wide Feet" matches one far better than /boots?filter.v.option.width=wide. See Google AI Mode shopping.
The assistant could say "true E width" only because the data held it. The PLP needs the same data: if width lives in free text instead of a structured field, you can't build a rule-based wide-fit page.
How we promote a facet
- 1
Confirm demand
Check search volume for the facet phrase and its variants, plus internal site search terms.
- 2
Check product depth
The rule must return enough in-stock products, with the attribute filled consistently.
- 3
Create a clean URL
Use a permanent path such as
/boots/waterproof-hiking-boots-wide-fit, with a self-referencing canonical. - 4
Write facet-specific content
An H1 matching the search, a short intro above the grid, buying guidance and a few FAQs that only fit this page.
- 5
Link it in
From the parent category, sibling PLPs and, where the theme allows, the filter value itself.
- 6
Retire the parameter version
Keep the filter URL out of the index so two pages don't compete.
url
Before/collections/boots?filter.v.option.width=wide
After/collections/wide-fit-waterproof-hiking-boots
page_title
BeforeBoots, Larchfield
AfterWide Fit Waterproof Hiking Boots for Men and Women, Larchfield
h1
BeforeBoots
AfterWide Fit Waterproof Hiking Boots
collection_description
Before(empty, inherits the parent category text)
AfterHiking boots in E and EE widths, every pair with a waterproof membrane. Pick a mid cut for rough trails, a low cut for day hikes.
indexing
Beforecanonical to /collections/boots
Afterindexable, self-referencing canonical, listed in the sitemap
On Shopify, an automated collection built on product metafields (width = wide, waterproof = true) keeps the set current. On Adobe Commerce, Visual Merchandiser can do the same with attribute rules. Either way the page depends on attribute data, which is why we fix product pages first. The category page optimization guide covers copy and linking for these pages.
How AndromedAI helps
AndromedAI finds the category demand your site doesn't cover and builds those PLPs from your product data, then publishes them to your store.
The Category Page Optimizer builds category pages around real search demand, at scale, with page-specific copy and FAQs. The Optimizer extracts attributes like width or material from your descriptions into structured fields, which rule-based PLPs and filters need. Everything goes through your Brand Kit and approvals, then publishes via integrations such as Shopify and Adobe Commerce.
It's one layer of Agentic Commerce Optimization. Start with a free AI Readiness Audit to see which attributes are missing.
organic traffic, with +46.9% sales
Semprefarmaciaadd-to-cart in two months
Altaforma Milanobounce rate
AusiliumFAQ
Faceted navigation is the set of filters on a category page, such as color, size, material or price. It matters for SEO because each filter value, and each combination of values, can create its own crawlable and indexable URL. Managed well, a few of those URLs become landing pages; unmanaged, they become thousands of near-duplicates.
No. Filters help shoppers find products, and some facets make excellent landing pages. The problem is uncontrolled combinations that generate thousands of near-duplicate URLs, which waste crawling and compete with your main categories. Index a short list of facets on purpose and keep the rest out of the crawl.
Block patterns that should never be fetched, such as sort orders and stacked filters, with robots.txt. If filter pages are already indexed, add noindex first and block them only after they drop out of the index. A page blocked in robots.txt is never crawled, so Google never sees its noindex tag.
It works as a safety net, but Google treats a canonical as a signal rather than an instruction, and crawling of those URLs falls only slowly. Block patterns you never want crawled, and give the facets you choose to index their own self-referencing canonical so they can rank.
Index facets with real search demand and enough in-stock products to fill the page. That usually means product type, key attributes such as waterproof, use or occasion, and fit. Size, price bands and sort orders normally stay out, except in categories like wide fit shoes where shoppers search by them.
Yes, indirectly. AI search splits a shopper question into several narrower searches, and many of them look like facets. A clean category page built around a facet, with a specific heading and copy, matches those searches far better than a parameter URL with a generic heading and no text.
Glossary
- Faceted navigation
- Category page filters that narrow products by attributes such as color, size or price.
- Crawl budget
- How many URLs Google can and wants to crawl on a site, set by crawl capacity and crawl demand.
- Index bloat
- Many low-value URLs in the index, often from filters, competing with the pages you want to rank.
- Canonical tag
- A rel=canonical link that signals which URL is the preferred version among duplicates.
- Soft 404
- A page that returns a 200 status but shows no real content, such as a filter with zero products.
- Allow list
- The written list of facets a site deliberately makes indexable.
Keep reading
How to build PLPs that rank and answer shopper intent
Read nextEcommerce SEO Audit: a 40-Point ChecklistForty checks for crawling, indexing, facets and product data
Read nextMagento (Adobe Commerce) SEO GuideLayered navigation, URLs and catalog SEO on Adobe Commerce
Read nextGoogle AI Mode Shopping: How Products Get Picked in AI Mode and GeminiHow AI Mode splits shopper questions into facet-like searches
Sources (9)
- Google Search Central: Managing crawling of faceted navigation URLs
- Google Search Central: Large site owner's guide to managing your crawl budget
- Google Search Central: How to specify a canonical URL
- Google Search Central: Block Search indexing with noindex
- Search Console Help: Crawl Stats report
- Google: AI Mode in Google Search, May 2025
- Baymard Institute: Product List UX Best Practices 2025
- Shopify.dev: Storefront filtering
- Shopify Help Center: Editing robots.txt.liquid
Parlano di noi








