How to fix seo facet url not canonicalized on Shopify

Add a canonical tag pointing filtered and sorted category URLs back to the clean (unfiltered) category page URL to prevent duplicate content and crawl waste.

Steps for Shopify

  1. Shopify automatically adds a self-referencing canonical to collection pages, but filtered/sorted URLs generated by the Online Store's native filter & sort (using URL parameters like ?sort_by= or ?filter.p.m.*=) do NOT automatically get a canonical pointing to the clean collection URL.
  2. Open your theme code: Online Store → Themes → current theme → Edit code.
  3. Open the layout file `layout/theme.liquid`.
  4. Find the `<head>` section and locate any existing canonical logic (search for 'canonical').
  5. Replace or supplement it with logic that strips query parameters for collection pages: `{% if template contains 'collection' %}<link rel="canonical" href="{{ shop.url }}{{ collection.url }}">{% else %}<link rel="canonical" href="{{ page_url }}">{% endif %}` — `collection.url` returns the clean URL without filter/sort parameters.
  6. Save and verify by visiting a filtered collection URL, viewing page source, and confirming the canonical points to the unfiltered collection URL.
  7. Alternatively, install a Shopify SEO app (e.g., Yoast SEO for Shopify, SEOAnt, or Booster SEO) which can manage collection canonicals automatically without editing theme code.
Official Shopify documentation ↗
<link rel="canonical" href="https://www.example.com/category-page/" />

What is seo facet url not canonicalized?

When shoppers filter or sort your product listings — for example, by size, color, price, or usage — your store generates new URLs with query parameters or path segments (e.g., `/apparel/?color=red&size=M`). These filtered pages show essentially the same category with a narrowed-down product set. A canonical tag is a small snippet of HTML code placed in the `<head>` of a page that tells Google: "This page is a variation — the *real*, authoritative version is over here." Without it, Google sees dozens or hundreds of near-duplicate pages and has to figure out on its own which one to rank.

Every filtered or sorted URL that lacks a canonical tag is a potential duplicate page in Google's index. This splits your ranking signals (links, authority) across many weak versions instead of concentrating them on one strong category page. Google's crawl budget — the number of pages it will crawl on your site in a given period — gets burned on hundreds of low-value filter combinations instead of your important product and category pages, meaning new products and pages may be discovered and indexed more slowly. In competitive niches, consolidated ranking signals can be the difference between page 1 and page 2. Fixing this is one of the highest-leverage technical SEO changes a store with faceted navigation can make.

See the complete Seo facet url not canonicalized guide for every platform and the full background.

Not sure if your Shopify store has this?

Run a free SEOLZ audit — we’ll find seo facet url not canonicalized and every other issue across your whole site.

Scan my site free

Fix seo facet url not canonicalized on another platform