← Blogs
Joyal Johnson
AI & SEO Search

Canonical Tags on Shopify: How They Work and When They Break

Joyal Johnson · Aug 16, 2026

Canonical tags tell Google which version of a page is the "official" one when multiple URLs show similar or identical content. On Shopify, that situation comes up constantly, products living at more than one URL, filtered collection pages, paginated content.

Shopify handles canonicals automatically on most page types, but the exceptions are the ones that quietly cost you rankings, because nothing about a wrong canonical throws an obvious error. The page just doesn't show up where it should.

How Shopify Handles Canonicals By Default

Out of the box, Shopify assigns canonical tags with different logic depending on page type:

For the vast majority of pages on a standard theme, this just works and you never have to think about it.

Where Canonicals Actually Go Wrong

Collection-filtered product URLs getting indexed anyway. Google sometimes indexes both /collections/category/products/item-name and /products/item-name, even with the canonical pointing the right way. When that happens, click and impression data splits across two entries instead of consolidating on one, which makes the page look weaker in Search Console than it actually is. The fix is to make sure every internal link, nav, related products, blog content, points to the clean /products/ URL, and to check your sitemap only lists the canonical version.

URL parameters that don't inherit the canonical properly. Tracking parameters added by marketing tools or third-party apps can sometimes create a page variant that doesn't carry the right canonical signal. Audit a sample of product pages with different parameter combinations attached and see what canonical tag each one actually renders. If an app is the culprit, that's a conversation with the app developer or a theme-level override.

Old domains or subdomains still sitting around. A legacy domain, a development store URL, a staging environment that never got locked down, any of these can end up indexed alongside your live site as a duplicate. Turn on "Redirect all traffic to primary domain" in your domain settings, and make sure any non-primary domain is issuing proper 301s rather than just quietly resolving.

Multi-currency and multi-region duplicates. If you're running Shopify Markets, every localized version of a page needs both a self-referencing canonical and correct hreflang tags pointing to its equivalents in other locales. Skip the hreflang piece and you're relying on canonicals alone to sort out what's genuinely duplicate content versus what's a legitimate regional variant, which they can't do on their own.

Tag pages and filtered collections. URLs like /collections/category/tag-name frequently amount to near-duplicate content with barely any of their own value. Either noindex the thin ones or, if a tag page genuinely earns its place with unique content, keep it, just don't leave a pile of thin tag pages sitting in the index by default.

Auditing Your Own Canonicals

Crawl the site. Screaming Frog or Sitebulb both work well here. You're checking that every page has a canonical tag, that product pages point to /products/ URLs, that collection pages reference parameter-free URLs, and that nothing is cross-canonicalizing to the wrong page entirely.

Check Google Search Console's Indexing report. "Alternate page with proper canonical tag" is expected and fine, that's the system working as intended. "Duplicate without user-selected canonical" is the one worth digging into, because it means Google found duplicates and picked a version on its own rather than following a signal you set.

Manually spot-check a handful of product pages. Visit the same five products through different paths, direct link, collection page, search, and confirm the canonical tag stays consistent no matter how you got there.

When It's Actually Worth Overriding the Default

Shopify's defaults are right for something like 95% of pages, so overriding them should be the exception, not a first move. The legitimate cases:

Get an override wrong and you can deindex a page that was ranking fine. Before touching theme-level canonical logic, be confident you understand exactly which pages the change will affect.

Overrides live in theme.liquid or the relevant layout file, as conditional logic that swaps out Shopify's canonical_url variable for specific page types while leaving the automatic behavior untouched everywhere else.

Canonical Tags vs. 301 Redirects

These get confused constantly, and they solve different problems:

Canonical tagUse when both pages need to stay live and accessible, but you only want one of them showing up in search results.
301 redirectUse when the old page is genuinely obsolete, you want visitors and link equity sent to the new URL permanently, with nothing left behind at the old address.

Quick Action Steps

  1. View source on your homepage, a product page, and a collection page
  2. Search the page source for "canonical" and confirm each one points to a clean URL
  3. Open the Pages report under Indexing in Search Console and look for duplicate-content flags

Canonical tags are one of those pieces of technical SEO that work invisibly until they don't, and by the time you notice, you've usually already lost some indexing and ranking ground. Worth checking every few months, not just once and forgetting about it.

Want your canonical setup audited before it costs you rankings?

Connect with me on LinkedIn →