If Search Console is filling with filter URLs while real category and product pages stall, do not start with a blanket noindex. Start with an allowlist: decide, facet by facet, which combinations earn an indexable landing page, which may be crawled but not indexed, and which should never be crawlable. On a bilingual store every decision counts twice, so the allowlist, not the bonfire, is the fix Google's current guidance supports.
The short answer: an allowlist, not a bonfire — decide facet by facet what may be crawled and indexed
Keep crawlable the URLs Google needs to reach every product, plus the few filter combinations people actually search for, each with a stable URL, unique content and internal links. Block or prevent the rest: sort orders, session and stock parameters, endless permutations and combinations with no results. Prove the bloat first, apply controls in layers, and clean up in an order that strands neither shoppers nor indexed pages.
The problem: every filter click mints a URL, in two languages
Faceted navigation lets shoppers narrow a category by brand, colour, size, price and more. When each selection changes the URL, combinations multiply, including orderings of the same facets and combinations that match nothing. Each becomes a crawlable, near-duplicate URL, and Google spends crawl visits discovering most add nothing. That crawl is then not spent discovering new products or re-crawling changed categories, and an index full of thin filter views makes the store look weaker than it is. On a bilingual store every uncontrolled facet exists twice, in English and Arabic. Our guide to SEO for bilingual Arabic and English websites covers the underlying structure; this article covers the facet layer.

Prove facets are your bloat: Search Console and crawl evidence to gather first
Before changing anything, prove facets are the problem. In Search Console's Page Indexing report, look for filter-pattern URLs under statuses such as Crawled — currently not indexed and Duplicate without user-selected canonical, Google's labels for pages it crawls then chooses not to index, or treats as duplicates. Export crawled URLs and group them by parameter pattern, in both languages. Compare real category and product URLs with filter URLs; bloat is a ratio, not a feeling. Server logs add which parameter URLs Googlebot requests most. Record the baseline before cleanup, or you cannot show the fix worked. A broader technical SEO audit supplies the same evidence store-wide.
The three buckets: indexable landing pages, crawlable-but-noindex, never crawlable (table)
Sort every facet combination into one of three buckets. The test for the top bucket is real search demand plus a page that deserves to rank, not internal convenience.
| Bucket | What belongs there | Controls |
|---|---|---|
| Indexable landing pages | Few combinations with proven search demand, stable URLs, unique content and internal links | Allow crawling, self-referencing canonical, include in navigation and sitemap practice for key pages |
| Crawlable but not indexed | Filter views shoppers need and may share, with no search demand of their own | Allow crawling so Google sees the signal, apply noindex or canonical to the parent category as appropriate |
| Never crawlable | Sort, session, stock-state and deep multi-facet permutations; combinations with no results | Prevent crawlable links, block parameter patterns in robots.txt, return 404 for no-result combinations |
Most useful filters belong in the middle bucket; the bottom bucket is where crawl dies. Argue about which bucket each facet type belongs in, then apply the ruling consistently in both languages.
Facet-by-facet rulings: brand and colour vs size, price, sort and stock
Brand is the strongest indexable candidate: shoppers search for brands inside categories, brand pages can carry unique content, and the combination is stable. Colour can qualify where colour is the search, such as abayas or sofas, but only for colours with real demand, as curated landing pages. Size rarely deserves indexation; it narrows within a category, so it belongs in the crawlable-but-noindex bucket at best. Price ranges are slicing tools, and Google's guidance treats price-type parameters as a common source of duplication. Sort order should never create a crawlable URL: the same products reordered are the same page. Stock and session parameters are transient and belong in the never-crawlable bucket. Limit crawlable combinations to one or two meaningful facet levels; deeper stacks are permutations, not pages.
The controls and their limits: canonical, noindex, robots.txt, JS filtering — and why layering beats any single fix
Each control does a different job. Blocking unnecessary facet URLs in robots.txt is the most durable crawl control, because Googlebot never spends a visit. Its limit is indexation: a blocked URL can still appear, URL-only, if linked elsewhere, and blocking also prevents the re-crawl needed to remove already-indexed URLs. A canonical to the parent category consolidates signals, but Google must crawl to read it, and may disregard it when the filtered page differs too much. A noindex also requires crawling, so never combine noindex with a robots.txt block on the same URLs; the block hides the instruction. JavaScript or fragment-based filtering that never creates a crawlable link prevents the problem at source, Google's preferred direction for new builds, provided every product and one full unfiltered listing stay reachable. Note what is absent: Google retired the Search Console URL Parameters tool, so any guide still recommending it is out of date. Layer the controls: prevent, then block, then consolidate.

The bilingual multiplier: Arabic facet values, duplicated parameters and mirrored mistakes
Every ruling must be implemented twice. Arabic facet values may be transliterated or encoded differently across templates, creating variants English never produces. Fix facet order in both languages, so the same selection always builds the same URL, and check the Arabic store does not expose crawlable filter links the English store hides. Canonical and language signals must agree. Keep one bilingual allowlist, so a future promotion does not re-open a closed parameter space. Align this with your ecommerce SEO automation work, so templates stop regenerating blocked patterns.

Platform notes: Shopify and WooCommerce facet behaviour to check before you promise a fix
On Shopify, check how your theme and the Search & Discovery app build filter URLs, which filters are exposed as links, and whether collections carry unintended parameter variants. On WooCommerce, check layered-nav behaviour, permalink settings, and whether attribute combinations generate URLs beyond your allowlist. On both, verify with a crawl of your own store, not the settings screen: what matters is the URLs a crawler can reach, in both languages. Platform behaviour changes, so verify it in Shopify and WooCommerce official documentation at implementation time. Stores weighing a platform move can scope both through ecommerce website development in Dubai.
Cleanup sequence for a store that is already flooded (without stranding shoppers or indexed URLs)
Sequence matters more than speed. First, publish the allowlist and stop minting new crawlable combinations at source. Second, protect the keepers with stable URLs, unique content and internal links. Third, let already-indexed middle-bucket URLs be crawled with noindex or canonical signals in place, and add robots.txt blocks only once indexation drops, otherwise the block freezes them in place. Fourth, block never-crawlable parameter spaces and return 404 for no-result combinations, as Google recommends, with a helpful page for shoppers. Keep shopper-shared links working for visitors throughout, and monitor Search Console until filter patterns shrink. Wider context sits in our guide to technical SEO, Core Web Vitals, crawl budget and indexing.
Common mistakes
The commonest mistake is the blanket fix: noindexing every filter URL, including the few combinations with real demand that were earning traffic. The opposite error, leaving everything crawlable, guarantees the bloat compounds in both languages. Other errors include expecting robots.txt blocks to de-index pages, combining noindex with a crawl block, recommending the retired URL Parameters tool, letting facet order vary, and cleaning only the English store. Changing everything at once, with no baseline, leaves you unable to prove what worked. For the full picture, start with SEO services in the UAE rather than facet rules alone.
FAQ
Should filter pages be noindexed or canonicalised?
It depends on the bucket. Combinations with real search demand should be proper indexable landing pages. Useful shopping filters with no demand can be crawled with noindex, or canonicalised to the parent category where they are close duplicates. Sort, session and deep permutations should not be crawlable at all.
Can robots.txt remove faceted pages already in the index?
Not on its own. Blocking a URL in robots.txt stops future crawling, which also stops Google seeing a noindex on that page, and linked blocked URLs can still appear as URL-only results. Let indexed filter pages be crawled with noindex first, then block the parameter space once they drop.
Which filter combinations deserve indexable landing pages?
Only combinations with proven search demand, a stable URL, unique helpful content and internal links, typically brand-led and occasionally colour-led pages in the right category. If you would not build and maintain the page deliberately, it does not deserve indexation by accident.
Does Google still offer a URL Parameters tool in Search Console?
No. Google retired the URL Parameters tool, so current control rests on your templates, robots.txt, canonical and noindex signals, and URL design. Any guide still recommending the tool is out of date; follow Google's current faceted-navigation guidance instead.
How does a bilingual store change the faceted navigation fix?
Every ruling must be applied identically in English and Arabic: same allowlist, fixed facet order, and agreement between canonical and language signals. Arabic facet values and separately edited themes commonly re-open parameter spaces, so audit both languages, not just the one you shop in.
Get a technical SEO audit of your store's index (CTA)
If your index is mostly filter URLs, the fix is a ruled allowlist and a sequenced cleanup. WebStackRank's technical SEO audit examines crawl evidence in both languages, assigns every facet to its bucket, and sequences the controls so shoppers and rankings survive. Send us your store URL and the Search Console patterns you are seeing; we will show you which URLs deserve to exist, and which should never be crawled again.