Faceted Navigation and Pagination SEO for Ecommerce Sites

How to stop filter combinations from flooding search engines with duplicate URLs, build indexable landing pages for the combinations people search, and handle pagination correctly.

Faceted navigation lets shoppers filter a category by size, colour, price and other attributes, but every combination can create a new URL, and a shop with a few filters can generate millions of near-duplicate pages that waste crawling. The fix is to decide which filter combinations deserve to be found in search, give those clean, indexable URLs with unique content, and keep the rest out of crawling. Pagination is simpler: link every page with real anchor tags and let each page be canonical to itself.

What Google recommends

Google published guidance on faceted navigation in December 2024. In summary: if you do not need filtered URLs in search, prevent crawling of them, for example with robots.txt rules or by using URL fragments for filters; if you do need some of them, use a consistent URL structure, keep parameter order stable, and return a 404 for combinations that have no results instead of an empty page.

Step 1: decide which facets deserve their own pages

Filter combination Search demand? Decision
Running shoes + women Yes, people search “women’s running shoes” Indexable landing page
Running shoes + brand Often yes Indexable landing page
Running shoes + size 7 Rarely Not indexable
Running shoes + price under 3,000 + blue + size 7 No Not crawlable
Sort order, view mode No Not crawlable

Use keyword research and Search Console data to find which combinations people actually search for. Usually a few dozen, not thousands.

Step 2: build the indexable combinations as real pages

  • Give them clean paths, such as /running-shoes/women/, not long parameter strings.
  • Add a unique title, H1 and a short introduction written for that combination.
  • Link to them from the category page and navigation with normal anchor tags.
  • Include them in the XML sitemap.

Step 3: keep the rest out of crawling

For filter URLs that should not be crawled, robots.txt patterns stop crawlers from spending time on them:

User-agent: *
Disallow: /*?*size=
Disallow: /*?*sort=
Disallow: /*?*price=

Alternatives: apply filters with JavaScript and a URL fragment (#), which crawlers ignore, or render filter controls as buttons rather than links. Canonical tags alone do not stop crawling; they only suggest which URL to index, so crawlers still spend time fetching the variants.

Do not block URLs in robots.txt that are already indexed and that you want removed; crawlers cannot see a noindex on a page they are not allowed to fetch. Remove them first with noindex, then block.

Step 4: return 404 for empty combinations

A filter combination with no products should return status 404, not a 200 page saying “no results”. Otherwise Google may crawl and evaluate large numbers of empty pages, and may report them as soft 404s.

Pagination

  • Link page 2, 3 and onwards with real anchor tags, for example /running-shoes/?page=2 or /running-shoes/page/2/.
  • Give each paginated page a canonical to itself. Canonicalising all pages to page 1 hides the products on later pages.
  • Google no longer uses rel=”next” and rel=”prev” as signals, though they do no harm.
  • For infinite scroll or “load more”, keep paginated URLs behind it and link to them, so crawlers can reach every item.
  • A “view all” page is fine if it loads quickly; otherwise keep pagination.

Check the result

  1. Crawl the site and count URLs by pattern. Filter URLs should not dominate.
  2. Check server logs for Googlebot requests to filter parameters; after the fix they should fall.
  3. In Search Console, watch the Page indexing report for duplicates and soft 404s, and the Crawl stats report for crawl requests.

Frequently asked questions

Do AI crawlers have the same problem?

Yes. Any crawler can waste requests on endless filter URLs. The same robots.txt rules apply to AI search crawlers, and clean landing pages are easier for any system to understand.

How many filtered landing pages should a shop have?

As many as there are combinations with real search demand and enough products to be useful. Usually a small fraction of possible combinations.

Should filter pages have product schema?

Product schema belongs on product pages. Category and filter pages list products; mark up the products on their own pages.

Sources

  1. Google Search Central, “Managing crawling of faceted navigation URLs”, December 2024
  2. Google Search Central, “Pagination, incremental page loading, and their impact on Google Search”
  3. Google Search Central, “Consolidate duplicate URLs”