
Shopify generates canonical tags automatically. That's genuinely useful; most platforms don't. But "auto-generated" doesn't mean "problem-free", and Shopify canonical tags are a different thing from the product tags people often mean when they search "Shopify tags SEO" (short answer: product tags don't affect rankings, and there's a section on that below).
A standard Shopify store creates several valid URLs for every product: the direct product URL, a collection-scoped version, variant parameter URLs, and tracking-parameter variants from email and ad campaigns. The canonical tag tells Google which one to index. When internal links or apps contradict it, Google has to guess, and it doesn't always guess right.
This guide explains how the canonical works on Shopify, what the platform gets right (verified on a live store), where it breaks, and how to audit and fix it in about ten minutes without touching a line of code.
How Shopify Handles Canonical Tags Automatically
Shopify outputs a canonical tag on every page through the theme's theme.liquid layout, using the canonical_url Liquid object. The value depends on the content type:
- Products: canonical always points to
/products/[handle], never to a collection-scoped URL - Collections: canonical points to
/collections/[handle] - Blog posts: canonical points to
/blogs/[blog-name]/[post-handle] - Pages: canonical points to
/pages/[handle] - Homepage: canonical points to your root domain
This is good default behaviour. Shopify's canonical implementation is one of the platform's stronger SEO features; unlike WordPress, where getting canonicals right takes plugin configuration, Shopify handles it out of the box for the large majority of cases.
What the canonical does on each URL type (checked on a live store)
We tested these on a live Shopify Plus store in October 2026. One result surprises most merchants: paginated collection pages canonicalize to themselves, not to page 1.
| URL you visit | Canonical Shopify outputs | What that means |
|---|---|---|
/collections/all/products/hoodie | /products/hoodie | Collection-scoped URL is folded into the product URL |
/products/hoodie?variant=123 | /products/hoodie | Variant parameters are folded into the product URL |
/collections/all?sort_by=price-ascending | /collections/all | Sort parameters are folded into the collection |
/collections/all?filter.v.availability=1 | /collections/all | Storefront filters are folded into the collection |
/collections/all?page=2 | /collections/all?page=2 | Self-referencing: Google can index deep pages and reach the products on them |
The pagination behaviour is correct. Google retired rel="prev/next" years ago and relies on crawlable links between pages; a self-referencing canonical on page 2 keeps the products listed there reachable. Don't "fix" it by pointing page 2 at page 1.
Where it needs attention
The automation breaks, or becomes insufficient, in a handful of specific situations: internal links that favour the wrong URL, apps that add a second tag, and custom pages that bypass the theme layout. Those are covered in the mistakes section.
The Duplicate URL Problem on Shopify
A single product in Shopify can be reached through several structurally different URLs, all of which return HTTP 200:
| URL type | Example | Canonical? |
|---|---|---|
| Product URL | /products/leather-wallet | ✓ This is the canonical |
| Collection-scoped | /collections/wallets/products/leather-wallet | Canonicalized to product URL |
| Variant parameter | /products/leather-wallet?variant=98765 | Canonicalized to product URL |
| Tracking parameter | /products/leather-wallet?ref=email&utm_source=klaviyo | Canonicalized to product URL |
Shopify adds the canonical tag to all of these, but Google still crawls them. Say a store has 5,000 products, each linked from three collections and with four variants: that is tens of thousands of URLs Google may fetch before it reaches your "real" pages. Google's guide to consolidating duplicate URLs lists wasted crawling as one of the main reasons to pick canonicals deliberately.
The real problem: what the canonical tag can't fix
Here's the counterintuitive part most Shopify SEO guides miss: a canonical tag doesn't remove the duplication; it only tells Google which version to prefer. If significant backlinks point to a collection-scoped product URL (because that's what appeared in your newsletters), while the canonical points to the product URL, Google receives contradictory signals. It usually honours the canonical, but not always, and the link equity split persists either way.
The fix isn't just the canonical tag. It's making sure all internal links, newsletter links, and external links point to the canonical URL consistently. Stores that set canonicals but keep sending traffic to non-canonical URLs tend to see little change from the tags alone. If you run a dropshipping catalog with supplier copy on hundreds of products, canonicals won't help with that either; see fixing dropshipping duplicate content.
Common Canonical Tag Mistakes on Shopify
Linking to collection-scoped product URLs internally
This is the most common error. Many themes build product links inside collection pages as /collections/[name]/products/[handle] rather than /products/[handle]. The canonical correctly points to the product URL, but every internal link passes equity to the non-canonical version. Google sees the contradiction and can decide the collection-scoped URL is the preferred one, overriding your canonical.
Fix: audit your theme's collection templates and make product links output /products/[handle]. In Liquid, that means {{ product.url }} rather than {{ product.url | within: collection }}. The URL choice is covered in more depth in our Shopify URL structure guide.
"Fixing" paginated collections
As the live test above shows, Shopify gives /collections/wallets?page=2 a self-referencing canonical. Some older guides tell you to point every page at page 1. Don't: that hides the products listed on deeper pages from Google's crawl path. Leave pagination alone and work on collection page SEO for page 1 instead.
Conflicting canonical from third-party apps
Some SEO apps and page builders inject their own canonical tag, leaving the page with two competing <link rel="canonical"> elements. Google will pick one, not necessarily the right one. Check the source of affected pages and make sure only Shopify's native tag is present. In Search Console, "Duplicate, Google chose different canonical than user" is the signal this is happening.
Canonical pointing to a 404 or a redirect
If you change a product handle, the old URL redirects, but a hard-coded canonical in a custom template can still point to the old URL. Google then follows a canonical into a redirect chain or a 404. This is rare but worth checking after bulk handle edits, alongside your Shopify 301 redirects.
Missing canonical on custom landing pages
Pages built with page-builder apps sometimes bypass the standard theme layout and so miss the automatic canonical. Check those pages individually with View Page Source or a crawl tool.
How to Audit and Fix Canonical Issues on Shopify
- Check the canonical is present. Open a product page, right-click, View Page Source, and search for
rel="canonical". You should find exactly one tag pointing to the clean product URL without parameters. Two, or none, means there's a conflict to resolve. - Read the Search Console Page indexing report. Go to Indexing > Pages. Google's report documentation explains the statuses: "Duplicate without user-selected canonical" and "Duplicate, Google chose different canonical than user" are the ones that need attention. "Alternate page with proper canonical tag" is working as intended.
- Audit internal links to collection-scoped URLs. Use a crawler (Screaming Frog, Ahrefs Site Audit) or the Links report in Search Console to count internal links in the
/collections/[x]/products/[y]format. Switch them to/products/[y]; the fix is almost always in the collection template. - Verify the canonical target is live. Every canonical should point to a URL that returns HTTP 200 and carries the same canonical pointing to itself. A canonical into a redirect or 404 is a chain to resolve.
- Check for app-injected duplicates. If you've installed review apps, page builders or SEO plugins, search the product page source for a second
rel="canonical". One tag per page; if there are two, find the app and disable that setting. - Consolidate external links. In newsletters, social posts and ads, link to the clean
/products/[handle]URL. UTM parameters are fine for analytics because the canonical folds them in; just don't link to collection-scoped versions.
Once the canonical is settled, the duplicate problem that remains on most stores is content, not URLs: products that share the same description or the same meta description. Our guide to duplicate meta descriptions on Shopify covers how to find and rewrite them in bulk.
Beyond Canonical Tags: What Actually Moves SEO Rankings
Getting your canonical tags right is a prerequisite: it ensures Google indexes the right URL. But canonical tags don't improve rankings on their own. A correctly canonicalized product page at position 47 stays at position 47 until the on-page signals improve.
What moves rankings from there: a keyword-focused meta title that matches search intent, a meta description that earns the click, image alt text that opens up image-search traffic, and a product description that answers the shopper's question. Google's August 2024 core update continued its push toward content written for people, which makes thin, templated product pages a liability even when they're technically clean.
For the full picture on what comes after technical SEO, see our complete Shopify SEO guide.
For a 200-product catalog, writing meta titles, descriptions and alt text by hand takes weeks. MetaGenius AI generates all three across the catalog in minutes, keyword-aware and consistent in your brand voice, with a Google preview before anything goes live, and a live check that confirms the new title is actually on the storefront. The technical SEO gets your pages in front of Google. The on-page SEO gets them clicked.
Frequently asked questions
Does Shopify automatically add canonical tags?
/products/[handle], never to a collection-scoped or parameter version. You don't need to add canonical tags by hand on a standard theme. The main risk is a third-party app adding a second, conflicting canonical.Do Shopify product tags help SEO?
What is the Shopify duplicate content problem?
How do I check canonical tags on my Shopify store?
rel="canonical". You should find exactly one tag pointing to the clean product URL with no parameters. Then open Google Search Console, go to Indexing > Pages, and look for "Duplicate without user-selected canonical" or "Duplicate, Google chose different canonical than user", which signal a conflict.Are canonical tags a ranking factor?
Can I override Shopify's canonical tag?
theme.liquid from Shopify's canonical_url object, and you can replace it for specific templates. Shopify's default behaviour is correct for almost every store, so only override it for a specific, tested reason, and try it in a duplicate theme first.What is a collection-scoped URL in Shopify and why does it matter?
What should I do if Google has indexed the wrong version of my Shopify product page?
Canonical tags tell Google what to index. Meta tags tell Google what to rank.
MetaGenius AI bulk-generates image alt text, meta titles, and descriptions for every canonical product, collection, and page in your Shopify store, in seconds, in 15 languages, with a Google preview before you publish anything.
Install Free on the Shopify App Store →