Faceted url indexable
Moderate effortFound on 3% of audited stores.
Point the rel=canonical on every faceted/filter URL to its clean parent category URL (or add noindex), so Google treats filtered pages as a single authoritative page instead of thousands of duplicates.
What it is
When shoppers filter or sort products on a category page — by color, size, price, rating, etc. — your store usually generates a new URL for each combination (e.g., `/womens-pants?color=navy&size=S`). A "self-canonical faceted URL" means that filtered URL tells Google it itself is the authoritative version, rather than pointing back to the clean parent page (e.g., `/womens-pants`). Google then sees each filter combination as its own separate page, even though they all show essentially the same product listing with a subset of items. With dozens of filters and hundreds of products, this can silently create tens of thousands of near-duplicate pages on your site.
Why it matters
Search engines have a limited "crawl budget" — a cap on how many pages they'll crawl and index from your site in a given period. When filter URLs are all treated as unique, indexable pages, Googlebot wastes that budget crawling thousands of low-value duplicates instead of your important product and category pages, which can delay or prevent those pages from appearing in search results. Duplicate content across filter URLs also dilutes the ranking signals (links, authority) that should be concentrated on your clean category pages, weakening their ability to rank. Fixing this can directly improve how quickly Google discovers and ranks your real pages, protecting and growing your organic traffic and revenue.
How to fix it
- Identify all faceted/filter URL patterns on your site (e.g., URLs containing query strings like ?color=, ?size=, ?sort=, or path segments like /filter/color-navy/).
- Decide on a strategy for each filter type: (a) add a rel=canonical pointing to the clean parent category URL, or (b) add a robots meta noindex tag if the filtered page should never appear in Google but you still want it crawlable, or (c) block crawling entirely via robots.txt only if the page has zero SEO value and you want to save crawl budget aggressively.
- For the canonical approach: in the <head> of every filtered/faceted page, output a rel=canonical tag whose href is the clean, unfiltered parent category URL (e.g., /womens-pants — not /womens-pants?color=navy).
- For the noindex approach: in the <head> of filtered pages, add <meta name='robots' content='noindex, follow'> — 'follow' ensures product links on the page are still crawled.
- Verify the fix using Google Search Console's URL Inspection tool: paste a filter URL and confirm the 'Canonical URL' reported by Google matches your intended clean category URL.
- Monitor Google Search Console's Index Coverage report over the following weeks to confirm the number of indexed faceted URLs is declining and crawl budget is being reclaimed for your priority pages.
Fix it on your platform
Pick your platform for the exact steps.
How to fix faceted url indexable on Shopify
- Shopify's native collection URLs (e.g., /collections/womens-pants) are clean by default. Faceted filter URLs are typically generated by apps (e.g., Boost Commerce, Searchanise, Instant Search+) or theme-level filter code using query strings like ?filter.p.m.color=Navy.
- Go to Online Store → Themes → click 'Edit code' on your active theme.
- Open theme/layout/theme.liquid (or the equivalent head partial). Locate where <link rel='canonical'> is already output — in most themes this is a Liquid line like <link rel='canonical' href='{{ canonical_url }}'>.
- Shopify automatically sets canonical_url to the clean collection URL even when filter params are present for standard collection pages — but verify this by using 'View Source' on a filtered URL and checking the canonical tag. If it already points to /collections/[handle] without query params, you may only need to ensure your filter app is not overriding it.
- If a filter app is adding its own canonical or overriding the theme's, go into that app's settings and look for a 'Canonical URL', 'SEO', or 'Indexing' section and set it to always point to the parent collection URL.
- To explicitly force canonical regardless of params, replace the canonical line in theme.liquid with: <link rel='canonical' href='{{ collection.url | prepend: shop.url }}'> — this always outputs the clean collection URL.
- Save the file. Use Google Search Console's URL Inspection to confirm a filtered URL (e.g., /collections/womens-pants?filter.p.m.color=Navy) now reports the canonical as /collections/womens-pants.
How to fix faceted url indexable on WooCommerce
- WooCommerce shop/category pages use query strings like ?filter_color=navy or ?orderby=price for filtering (via the WooCommerce Layered Nav widget or filter plugins).
- Install and activate the Yoast SEO or Rank Math plugin if not already present — both handle canonical logic for WooCommerce.
- In Yoast SEO: go to Yoast SEO → Search Appearance → Taxonomies, and ensure product category pages have a canonical set. Then go to Yoast SEO → Advanced (or use their WooCommerce SEO add-on) and look for settings to canonicalize filtered URLs to the base shop/category URL.
- In Rank Math: go to Rank Math → Titles & Meta → WooCommerce → scroll to 'Noindex Empty Category Pages' and review canonical options for filtered pages.
- For fine-grained control, add a code snippet to your child theme's functions.php or a custom plugin: hook into 'wpseo_canonical' (Yoast) or 'rank_math/frontend/canonical' (Rank Math) filters to strip query parameters and return the clean term/shop URL whenever filter params are present in the URL.
- Alternatively, for URL-based filters (e.g., /shop/category/color/navy/), configure Yoast or Rank Math to noindex those pages: in Yoast go to Search Appearance → Taxonomies → set the filter taxonomy to 'noindex'.
- Verify with a filtered URL in Google Search Console's URL Inspection tool.
How to fix faceted url indexable on BigCommerce
- BigCommerce generates faceted filter URLs as query strings appended to category URLs (e.g., /womens-pants/?color=Navy&size=S). By default these may be self-canonical.
- Go to Storefront → Script Manager (or Edit Theme Files if on a Stencil theme) and open templates/layout/base.html (Stencil).
- Find the canonical tag output — typically <link rel='canonical' href='{{urls.canonical}}'>. The {{urls.canonical}} variable in Stencil usually strips known filter params, but verify by viewing source on a filtered category URL.
- If filter query strings appear in the canonical, you need to override it. Add custom logic in your Stencil theme's JavaScript or use a Page Builder script to detect filter params and rewrite the canonical to the clean category URL.
- Alternatively, use BigCommerce's built-in 'Faceted Search' settings: go to Storefront → Faceted Search and review which facets are enabled. Reducing enabled facets reduces the number of filterable URL combinations Google can discover.
- For a code-free approach, use a third-party SEO app from the BigCommerce App Marketplace (e.g., SEO King or similar) that offers canonical management for filter pages.
- Verify in Google Search Console URL Inspection.
How to fix faceted url indexable on Wix
- Wix eCommerce category/collection pages with filters generate URL parameters for filter state. Wix manages canonical tags automatically and generally sets them to the clean page URL.
- Go to your Wix dashboard → SEO → SEO Settings → Structured Data and Canonicals to review how Wix handles canonical tags sitewide.
- For specific pages: open the page in the Wix Editor, click on the page settings (gear icon), then go to SEO (Google) → Advanced SEO → and check the 'Additional tags' field. You can manually add a canonical link tag here if Wix is not setting it correctly: <link rel='canonical' href='https://yoursite.com/your-category-page-url'>.
- If you use Wix's Product Filters widget, test a filtered URL (e.g., yoursite.com/shop?category=pants&color=navy) by right-clicking → View Page Source and checking the canonical tag in the <head>.
- If Wix is outputting the filtered URL as canonical, contact Wix Support or use the 'Additional tags' override per page. Note: Wix does not currently offer bulk server-side canonical override for dynamically generated filter URLs without custom Velo (Wix's dev platform) code.
- For Velo (Wix's coding platform): use the wix-seo module in a page's code to dynamically set the canonical URL: import wixSeo from 'wix-seo'; wixSeo.setLinks([{rel: 'canonical', href: 'https://yoursite.com/shop'}]);
- Verify with Google Search Console URL Inspection.
How to fix faceted url indexable on Squarespace
- Squarespace's native shop pages and category pages do not heavily use faceted URLs — filtering is typically handled client-side without URL changes, so this issue is less common. However, some third-party filter integrations or URL parameters may still exist.
- To check: navigate to a filtered view of a shop page on your site and look at the URL bar. If query parameters appear (e.g., ?category=pants&color=navy), view page source and find the <link rel='canonical'> tag.
- Squarespace does not provide a native UI to override canonical tags page-by-page for dynamically filtered URLs. However, you can inject a canonical tag override via Settings → Advanced → Code Injection → Header. Add: <link rel='canonical' href='https://yoursite.com/shop'> — note this applies sitewide to every page so it's only appropriate if you want a single canonical for all shop variants.
- A more surgical approach: use a Code Block on individual pages (for static category pages) via Pages → [Page] → Edit → Add Block → Code, and inject the canonical override there.
- For most Squarespace stores, the best approach is to avoid enabling URL-generating filter plugins and rely on Squarespace's native client-side filtering, which does not change the URL and therefore does not create faceted URL indexing issues.
- Verify with Google Search Console URL Inspection after any changes.
How to fix faceted url indexable on Webflow
- Webflow eCommerce collection pages can have filter/sort query parameters added by custom JavaScript or Finsweet's CMS Filter library (a popular Webflow filtering solution).
- In Webflow Designer: go to Pages → click the gear icon on your Collection List or Shop page → SEO Settings. There is a 'Canonical Tag' field — enter the clean base URL of the collection page here (e.g., https://yoursite.com/shop/womens-pants). This is the most direct fix for static collection pages.
- If filters are driven by URL parameters (e.g., Finsweet's fs-cmsfilter attribute with URL state enabled), go to the Finsweet CMS Filter configuration on the page's embed/script element and set the 'url' parameter to false or 'history: false' to prevent filter state from being written to the URL — this eliminates the faceted URL problem at source.
- Alternatively, add a custom canonical override in Project Settings → Custom Code → Head Code: <link rel='canonical' href='https://yoursite.com/shop/womens-pants'> — but be aware this applies to all pages; use page-level Head Code (in Page Settings → Custom Code) for per-page control.
- For dynamic collection pages powered by the Webflow CMS, use the page's SEO settings panel and reference the collection item's slug to build the correct canonical URL.
- Verify with Google Search Console URL Inspection.
How to fix faceted url indexable on Adobe Commerce (Magento)
- Adobe Commerce (Magento) is a major source of faceted URL indexing issues due to its layered navigation, which creates URLs like /womens-pants.html?color=49&size=91 or /womens-pants/color-navy.html.
- Go to Admin → Stores → Configuration → Catalog → Catalog → Search Engine Optimization. Set 'Use Canonical Link Meta Tag For Categories' to Yes. This tells Magento to output a canonical pointing to the clean category URL on all layered navigation / filtered pages.
- Also set 'Use Canonical Link Meta Tag For Products' to Yes to handle product pages.
- To prevent layered navigation URLs from being crawled at all: go to Admin → Stores → Configuration → General → Web → Search Engine Robots and set the default robots for the store. Alternatively, use the 'Layered Navigation' settings to restrict which attributes generate filterable URLs.
- For finer control, go to Admin → Marketing → SEO & Search → URL Rewrites and review or add rewrites for category pages.
- Consider installing a dedicated Magento SEO extension (e.g., Mageplaza SEO, Mirasvit SEO Suite) which provides per-attribute canonical management, noindex rules for filtered pages, and robots.txt auto-generation for faceted URLs.
- Verify by viewing page source on a filtered category URL and confirming the canonical tag points to the clean category URL (e.g., https://yoursite.com/womens-pants.html).
How to fix faceted url indexable on Shopify Plus
- Shopify Plus stores have the same canonical behavior as standard Shopify for collection/filter URLs. Follow the Shopify steps above.
- Additionally, Shopify Plus merchants with custom storefronts (Hydrogen/Headless) must manage canonical tags explicitly in their React/Remix components — set the canonical <link> in each collection page's <head> to the clean collection URL, stripping all filter query params.
- Shopify Plus stores using Launchpad or custom scripts for promotions: ensure promotional filter URLs (e.g., /collections/sale?color=red) also point their canonical to /collections/sale.
- Enterprise-scale Plus stores should audit via a crawl tool (Screaming Frog, Sitebulb) filtered by URLs containing filter parameter patterns to get the full scope of affected URLs before and after the fix.
How to fix faceted url indexable on PrestaShop
- PrestaShop layered navigation (the 'ps_facetedsearch' module) generates URLs like /womens-pants#/color-navy/size-s or query-string variants depending on your URL config.
- Go to Modules → Module Manager → search for 'Faceted Search' (ps_facetedsearch) → Configure. Look for options related to 'SEO', 'Indexing', or 'Canonical URL'. Recent versions of this module include options to set a canonical to the parent category.
- If the module doesn't offer this natively, go to Modules → Module Manager → install an SEO module such as 'SEO Expert' or 'SEO Manager' that allows you to set canonical rules for layered navigation pages.
- Alternatively, edit the module's template: in /modules/ps_facetedsearch/views/templates/front/, find the layout or head template and add canonical logic that strips filter parameters and outputs the clean category URL.
- In Back Office → Shop Parameters → Traffic & SEO → SEO & URLs, verify that faceted search URLs are not being added to your sitemap.
- Verify with Google Search Console URL Inspection.
How to fix faceted url indexable on OpenCart
- OpenCart category pages with filters append query strings like ?filter_color=10&filter_size=5 to category URLs.
- Install an SEO extension from the OpenCart marketplace that supports canonical tag management (e.g., 'SEO Pack Pro', 'D_SEO Module') — these allow you to define that filtered category URLs should output a canonical pointing to the base category URL.
- Without an extension: edit the catalog/view/theme/[your-theme]/template/product/category.tpl (or .twig in newer OpenCart) file. Find or add the canonical tag in the <head> section and output the base category URL without filter params: <link rel='canonical' href='<?php echo $category_url; ?>'> — where $category_url is the clean category URL passed from the controller.
- In catalog/controller/product/category.php, ensure the $data['canonical'] variable is set to the clean category URL (without filter params) and pass it to the template.
- Verify with Google Search Console URL Inspection.
How to fix faceted url indexable on Magento Open Source
- Same steps as Adobe Commerce (Magento) above — go to Stores → Configuration → Catalog → Catalog → Search Engine Optimization and set 'Use Canonical Link Meta Tag for Categories' to 'Yes'.
- For community extensions that add faceted/layered navigation, check the extension's configuration for SEO options including canonical and noindex settings.
- After configuration, flush the cache via System → Cache Management and verify by inspecting a filtered URL's page source.
How to fix faceted url indexable on Next.js (Headless)
- Identify your category/collection route file — typically `app/[...category]/page.tsx` (App Router) or `pages/[...category].tsx` (Pages Router). Faceted filter state is usually carried in URL search params (e.g. `?color=red&size=M`) or as extra path segments.
- In the App Router, export a `generateMetadata` function. Detect whether the current request URL contains any filter/facet params (or extra path segments beyond the base category slug). If it does, set `alternates.canonical` to the clean category URL (strip all query params and facet path segments). If it does not, set canonical to itself.
- In the Pages Router equivalent, use `next/head` inside the page component and render a `<link rel='canonical' href={canonicalUrl} />` using the same clean-URL logic.
- Optionally, for deeply-nested or purely parameter-driven faceted pages you never want indexed, add `robots: { index: false, follow: true }` (App Router) or `<meta name='robots' content='noindex,follow' />` (Pages Router) alongside the canonical — belt-and-suspenders protection.
- Ensure `generateStaticParams` (or `getStaticPaths`) does NOT enumerate faceted filter combinations — only emit paths for real category pages, so filtered URLs are never accidentally pre-rendered as standalone pages.
- Verify the fix with `curl -s https://your-domain/category/shirts?color=red | grep canonical` and confirm the canonical points to `/category/shirts`, not the filtered URL.
Does your site have this issue?
Run a free SEOLZ scan to find faceted url indexable — and every other issue — across your whole site in minutes.
Scan my site freeFrequently asked questions
What is Faceted url indexable?
When shoppers filter or sort products on a category page — by color, size, price, rating, etc. — your store usually generates a new URL for each combination (e.g., `/womens-pants?color=navy&size=S`). A "self-canonical faceted URL" means that filtered URL tells Google *it itself* is the authoritative version, rather than pointing back to the clean parent page (e.g., `/womens-pants`). Google then sees each filter combination as its own separate page, even though they all show essentially the same product listing with a subset of items. With dozens of filters and hundreds of products, this can silently create tens of thousands of near-duplicate pages on your site.
Why does faceted url indexable matter?
Search engines have a limited "crawl budget" — a cap on how many pages they'll crawl and index from your site in a given period. When filter URLs are all treated as unique, indexable pages, Googlebot wastes that budget crawling thousands of low-value duplicates instead of your important product and category pages, which can delay or prevent those pages from appearing in search results. Duplicate content across filter URLs also dilutes the ranking signals (links, authority) that should be concentrated on your clean category pages, weakening their ability to rank. Fixing this can directly improve how quickly Google discovers and ranks your real pages, protecting and growing your organic traffic and revenue.
How do I fix faceted url indexable?
Point the rel=canonical on every faceted/filter URL to its clean parent category URL (or add noindex), so Google treats filtered pages as a single authoritative page instead of thousands of duplicates.
Authoritative references
- Consolidate duplicate URLs (canonical) — Google Search Central
- Robots meta tag & noindex — Google Search Central
- SEO Starter Guide — Google Search Central