/ โ† Ecommerce Audit Fixes / Faceted Navigation
In this guide
  1. Two sides of the same problem
  2. What goes wrong on the page
  3. Choosing filters shoppers actually use
  4. How filters should behave
  5. Turning the right filters into landing pages
  6. Platform notes
  7. The fix, step by step
  8. Questions and answers

Two sides of the same problem

Filters cause two separate kinds of trouble, and it helps to keep them apart.

The two meet in one decision: which filtered views should exist as indexable pages. Get that decision right on the page side and the crawl side becomes much easier to control, because you know exactly which URLs you want and which you do not.

What goes wrong on the page

SymptomWhat the shopper experiencesWhat search engines see
Filters that return zero resultsA dead end after clickingEmpty pages, sometimes reported as soft 404s
Filtered views with the category's title and H1No confirmation that the filter workedMany pages with identical titles competing with the category
Filter labels in supplier language"Colour family: GRY-02" means nothingFilter values that match nothing people search for
Too many filters, in no orderScrolling through fifteen groups on a phoneA large block of links on every category page
Filters that only work with JavaScript clicksUsually fine, until a script failsNo crawlable path to the filtered views you did want found
Valuable filtered views with no text or linksWorks, but no guidanceA thin page that is hard to rank even when people search for exactly that

Notice the last row. Some filtered views match real searches. "Black leather ankle boots" or "oak dining tables that seat 8" are the kind of phrases shoppers type, and a filtered view is often the best page on your site to answer them. The mistake is treating every filter the same way, either letting all of them be indexed or blocking all of them.

Choosing filters shoppers actually use

Filters should be built from how people choose, not from whatever attributes happen to exist in the product feed. Useful evidence:

Order and labels

Put the two or three filters that split the range most usefully at the top, and collapse the rest. Use the words customers use: "Heel height" rather than "Heel_H", "Seats" rather than "Capacity (persons)". Show product counts beside each value and hide or disable values that would return nothing with the current selection. Keep one sort control, separate from the filters, with a sensible default such as best sellers or relevance.

๐Ÿ’ก On mobile, open filters in a panel with a clear "Show 23 products" button rather than reloading the grid after every tick. Shoppers can build their selection in one go, and it avoids a burst of page loads.

How filters should behave

Filters have to be predictable for people and understandable for machines. A few rules cover most shops:

  1. Selected filters are visible. Show them as removable chips above the grid, with a "Clear all" link, so the shopper always knows what they are looking at.
  2. The URL reflects the selection, consistently. The same selection should always produce the same URL, with parameters in a fixed order. ?colour=black&size=7 and ?size=7&colour=black should not both exist.
  3. The heading confirms the filter. On a filtered view, change the H1 or add a line under it, such as "Ankle boots: black, size 7 (23 products)".
  4. The back button works. Filtering with scripts must update the browser history so Back returns to the previous selection, not to the previous page.
  5. Controls are accessible. Use real checkboxes or buttons with labels, not styled div elements. Announce result counts to screen readers with a polite live region, and make sure keyboard users can open, use and close the filter panel. The Accessibility fixes cover the patterns in more detail.

Links or buttons?

For filtered views you want search engines to find, the page needs an ordinary <a href> link to them somewhere, whether in the filter panel, a "Popular searches" block or the category text. For everything else, buttons or checkboxes that update the grid by script are fine, and they help keep low-value combinations out of the crawl entirely. Many shops use exactly this split.

Turning the right filters into landing pages

A filter landing page is a filtered view promoted to a proper page: a clean URL, its own title and heading, a short introduction and a place in your internal links. Good candidates share three features:

Usually that means one filter applied to a category (a colour, a material, a brand, an obvious size or style), and occasionally two. Price bands, sort orders, stock toggles and three-filter combinations rarely qualify.

For the fictional Northgate Footwear at example.co.uk, the result might look like this:

Filtered viewDecisionHandling
Ankle boots + BlackLanding page/ankle-boots/black/, own title, intro, self-canonical, linked from the category
Ankle boots + LeatherLanding page/ankle-boots/leather/, same treatment
Ankle boots + Black + Size 7Not a pageCanonical to /ankle-boots/black/, no crawlable link
Ankle boots + Price ยฃ50โ€“ยฃ75Not a pageScript filter or noindex; canonical to /ankle-boots/
Ankle boots, sorted by priceNot a pageCanonical to /ankle-boots/

The canonical tag on a filtered view that is not a page is a hint, not an instruction. It works best when the filtered view is genuinely a subset of the page it points to and when your own internal links do not undermine it by linking heavily to the filtered version.

<!-- On /ankle-boots/?colour=black&size=7 -->
<link rel="canonical" href="https://www.example.co.uk/ankle-boots/black/">
โš ๏ธ Do not combine a robots.txt block with noindex or canonical tags on the same URLs and expect both to work. A crawler that is blocked from fetching a page cannot see the tags on it. Decide per pattern which control you rely on.

Platform notes

Shopify

Storefront filtering, usually managed with Shopify's Search & Discovery app, adds parameters such as filter.v.option.color to collection URLs. These cannot be given their own title or text through the standard admin. The usual way to build a landing page for "black ankle boots" is a separate collection (automated by colour tag or product option) with its own handle, description and SEO fields, linked from the parent collection. Older themes use tag URLs such as /collections/ankle-boots/black; check your live /robots.txt to see which filtered patterns Shopify blocks by default.

WooCommerce

Filtering is normally provided by a plugin, and plugins differ widely: some create query parameters, some create clean paths, some work entirely by script. Check what URLs yours generates before choosing landing pages. A product attribute archive or a dedicated category often makes a better landing page than a filtered URL.

Custom and headless builds

Keep a whitelist of the attribute values that have landing pages, render those with server-side titles, headings and text, and generate links to them. Treat every other selection as client-side state, with the canonical pointing to the nearest whitelisted page or the category.

The fix, step by step

Step 1

List the filters and how shoppers use them

For your top categories, write down every filter group and value currently on offer, then add evidence beside each one: how often it is clicked, which terms people type into site search on that category, and which attribute words appear in Search Console queries for the category URL. Note any values that return zero products, and any group whose labels come straight from supplier data. The Ecommerce Audit findings for faceted navigation give you the starting list of affected pages.

Step 2

Remove, rename and reorder filters

Drop filter groups nobody uses, merge near-duplicates such as "Colour" and "Colour family", and rename every value into the words customers use. Move the two or three most decisive filters to the top and collapse the rest on mobile. Show a product count beside each value and hide or disable values that would return nothing. Keep sorting in its own control rather than mixing it into the filter panel, so shoppers understand the difference.

Step 3

Make each filter behave predictably

Show the current selection as removable chips with a clear all option, and update the heading or a line under it to confirm what is being shown and how many products match. Make the same selection always produce the same URL with parameters in a fixed order. Check the browser Back button returns to the previous selection. Replace any clickable div filters with labelled checkboxes or buttons so keyboard and screen reader users can use them.

Step 4

Pick the filtered views worth a landing page

From the evidence in step one, choose single-filter views, and very occasionally two-filter views, that people clearly search for, that return a useful number of products and that will stay stable. Most categories end up with between none and a handful. Record each one in a simple list with its category, filter values and the clean URL it will use. Everything not on the list is treated as a shopper tool rather than a page.

Step 5

Give each landing page its own title, heading and text

For each chosen view, set a title tag and H1 that describe it the way people search, such as Black Ankle Boots for Women | Northgate, and write a short introduction specific to that selection. Make the page canonical to itself. Link to it with a normal HTML link from the parent category, either in the filter panel or a short list of popular options, so shoppers and crawlers can both reach it directly.

Step 6

Point every other filtered view at its category

For filtered views not on your list, add a canonical tag pointing to the nearest landing page or to the unfiltered category, and make sure titles do not claim to be separate pages. Where possible apply these filters with buttons rather than crawlable links. If you also block patterns in robots.txt for crawl reasons, apply that only to URLs where you are not relying on crawlers reading a canonical or noindex tag.

Step 7

Test on mobile, with a keyboard and in Search Console

Use the filters on a phone and with only a keyboard, checking that selections, counts, clear all and Back all work. Inspect one landing page and one ordinary filtered view with URL Inspection and confirm the canonical Google selects matches your intention. Rerun the Ecommerce Audit on the categories you changed, then watch the Pages report for duplicate and alternate canonical entries settling over the following weeks.

Questions and answers

1. Should filtered category pages be indexed?

A small number should, and most should not. Filtered views that match real searches, return enough products and stay stable, such as a category filtered by one colour or material, can make excellent landing pages if you give them their own title, heading and introduction. Views built from several filters, price bands, sort orders or stock toggles rarely match anything people search for and are better pointed at the category with a canonical tag or kept out of the crawl.

2. How many filters should a category page have?

As many as help people choose, which is usually fewer than the product data allows. Base the list on what shoppers search for and click, and remove groups that are rarely used. On mobile, show the two or three most decisive filters first and collapse the rest. A long, unordered panel with fifteen groups makes it harder to find the useful ones, and every extra group adds more links and URL combinations to manage.

3. Is it bad for SEO if filters work with JavaScript only?

Not in itself. Applying filters by script without creating crawlable links is a common way to stop low-value combinations being crawled at all. The catch is that any filtered view you do want found needs a normal HTML link somewhere, such as a list of popular options on the category page. Also make sure the script updates the URL and browser history properly, so shoppers can share, bookmark and go back through their selections.

4. What title should a filtered page have?

If it is one of your chosen landing pages, give it a descriptive title in the words people search, such as the colour or material followed by the product type and your shop name, plus a matching H1. If it is an ordinary filtered view that points its canonical at the category, the title matters much less for search, but it should still confirm the selection to the shopper, for example by adding the filter values to the heading on the page.

5. Can I use canonical tags instead of robots.txt for filter URLs?

For the page side, canonical tags are usually the better tool because they let search engines see the page, understand it is a variation of the category, and consolidate signals. They are hints, though, and on very large shops crawlers may still spend a lot of time fetching filtered URLs. That is where robots.txt rules come in, and the crawl-side guides explain the trade-off. Avoid relying on a canonical tag on a URL you have also blocked.

6. How do I create a filter landing page on Shopify?

Shopify storefront filters add parameters to collection URLs, and those filtered views cannot have their own SEO title or description in the standard admin. The usual approach is to create a separate collection for the combination, such as black ankle boots, using automated conditions on a tag or product option. Give it its own handle, description and search engine listing fields, then link to it from the parent collection so shoppers and crawlers can find it.

7. Why does Search Console show many filtered URLs as duplicates?

Messages such as "Duplicate without user-selected canonical" or "Alternate page with proper canonical tag" in the Pages report are common on shops with filters. The second one is normally fine and means Google is respecting your canonical. The first means filtered views have no canonical, or Google disagrees with it. Add canonicals to filtered views, stop linking heavily to low-value combinations, and check that the page you point to really contains the filtered products.

See how your filters are handled

The Ecommerce Audit checks faceted navigation alongside product page completeness, category page depth, Product and review schema, product images, internal links and product page speed across your top pages.

Open Ecommerce Audit Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Ecommerce Audit Fixes  ·  Fixing Faceted URL Explosion  ·  Fixing Thin Category Pages  ·  Fixing Canonical Tags  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.