Skip to content
Muhammad Ammar Digital Marketing & SEO Expert
Technical SEO

Faceted navigation: why your store hides half its pages from Google

The most common technical SEO failure in e-commerce, why crawl budget is the mechanism, and how to fix it without breaking the shopping experience.

Muhammad Ammar · · 4 min read

If you run an online store and most of your category pages are not indexed, faceted navigation is the first thing to check. It is the single most common technical cause I find, and it is almost always accidental.

What faceted navigation actually does

Faceted navigation is the filter system on a category page: size, colour, brand, price, rating. Useful for shoppers. The problem is that each filter combination usually generates a unique, crawlable URL.

The arithmetic is unforgiving. Six filters with five options each, combinable in any order, produces tens of thousands of URLs from one category. Multiply by every category and a store with 400 real pages can expose several million crawlable URLs.

Google does not crawl your site infinitely. It allocates an amount of crawling proportional to how important and how responsive your site is. If most of that allowance is spent on ?color=blue&size=m&sort=price_asc variants, the pages you actually want ranked get crawled rarely — or not at all.

How to confirm this is your problem

  1. Open Search Console → Pages, and compare Crawled – currently not indexed against your real page count. A number far larger than your catalogue is the signal.
  2. Look at Discovered – currently not indexed. High numbers here mean Google found URLs and decided they were not worth crawling.
  3. If you have server logs, count Googlebot requests containing a query string. Anything above roughly 30% of crawl activity is a problem.
  4. Crawl the site with Screaming Frog with parameters enabled and compare the URL count to your product count.

The four fixes, in order of preference

Do not create the URL

The cleanest fix. Apply filters client-side without changing the URL, or use POST instead of GET. Nothing to crawl means nothing to waste.

Block in robots.txt

Disallow the parameter patterns that never have search demand. Fast to deploy and immediately stops crawl waste. Note that blocked URLs can still be indexed if linked externally.

Canonical to the clean category

Appropriate when a filtered view must stay crawlable for users. It consolidates signals but does not save crawl budget, since Google still crawls to read the canonical.

Selectively index the valuable ones

A few filter combinations do have real search demand — “men’s running shoes size 44” is a query people type. Give those their own indexable, properly titled pages and block the rest.

What to avoid

  • Do not use noindex, follow at scale. Google eventually treats long-term noindexed pages as nofollow, and you lose the internal link equity passing through them.
  • Do not rely on the old URL parameter tool in Search Console. It was retired in 2022.
  • Do not block a parameter that your indexable filtered pages depend on. Check before deploying.
  • Do not fix this and then judge it after a week. Recrawling a large catalogue takes weeks.

What to expect afterwards

On the catalogues I have worked on, indexation of real category pages begins improving within two to six weeks of deployment, and traffic follows the indexation curve rather than leading it. If nothing has changed in Search Console after a month, the deployment usually did not do what it was supposed to — verify with a fresh crawl before assuming the diagnosis was wrong.

Frequently asked

Will blocking filters hurt my rankings?

Blocking filter URLs that have no search demand does not remove anything that was ranking. The risk is blocking a pattern that some of your indexable pages rely on — which is why you crawl and check before deploying, not after.

How do I know which filter combinations deserve their own page?

Keyword data. If people search for the combination often enough to justify a page, build one properly: unique title, unique intro, indexable. If nobody searches for it, it is a filter, not a page.

Does this apply to Shopify and WooCommerce?

Yes, and both generate parameter URLs by default. Shopify’s ?filter.v... patterns and WooCommerce’s ?filter_ and ?orderby parameters are the usual culprits.

Muhammad Ammar

Muhammad Ammar

Digital Marketing & SEO Expert. Running SEO, paid media and measurement since 2015 across Egypt, Saudi Arabia and the UAE, in Arabic and English.

Book a consultation

Let’s find what is blocking your growth

Thirty minutes. You will leave knowing what I think your biggest constraint is, whether that turns out to be a channel, your tracking, or what happens after the click. That holds whether or not we end up working together.

I usually reply within one business day. English or Arabic.