TL;DR
Shopify auto-generates a new URL every time you add a product to a collection. Left unchecked, Google indexes multiple versions of the same page and splits ranking signals between them. Shopify adds canonical tags by default, but apps and theme edits break them constantly. Here's how to audit and fix it yourself.
The Problem in Plain Terms
Add one product to three collections and Shopify creates three real, crawlable URLs:
/collections/skincare/products/vitamin-c-serum/collections/bestsellers/products/vitamin-c-serum/collections/new-arrivals/products/vitamin-c-serum
Plus the canonical product URL that exists independently:
/products/vitamin-c-serum
Four URLs. Identical content. No obvious error in Google Search Console. The store functions perfectly. But Google sees four competing pages and has to decide which one to rank - or it hedges and ranks none of them well.
This is called canonical tag failure, and it's one of the most common unfixed technical SEO issues on Shopify stores.
Why This Actually Hurts Rankings
Two concrete mechanisms:
Backlink authority gets split. A blogger links to /collections/skincare/products/vitamin-c-serum. That link equity lands on the collection-based URL, not on /products/vitamin-c-serum. A second blogger links to the bestsellers version. Now you have authority spread across four URLs instead of stacked on one. No single URL is strong enough to rank competitively.
Crawl budget gets wasted. Google allocates a set number of crawl requests to your store. If Googlebot visits four URLs to discover the same product, it burns four times the crawl budget it should. On a store with hundreds of products across dozens of collections, this adds up - and it comes at the direct expense of your most important pages getting crawled and indexed.
How Canonical Tags Are Supposed to Work
A canonical tag is an HTML signal in the <head> that tells Google: "This URL has duplicates. Point all ranking signals here instead."
The correct canonical on every collection-based product URL should point to the clean product URL:
<link rel="canonical" href="https://yourstore.com/products/vitamin-c-serum" />
Shopify adds this tag automatically. In theory, problem solved.
In practice, three things break it regularly:
-
Third-party apps - Review apps, upsell tools, and personalization apps often inject their own tags into
<head>. Some override or duplicate the canonical. Google receives two conflicting signals and may ignore both. -
Custom theme edits - A developer who modified your Liquid files without SEO in mind may have changed how the canonical is generated, pointing it to collection-based paths instead of
/products/. -
URL parameters - Filter and sort parameters like
?sort_by=price-ascendingor?color=bluecreate additional URL variants. Without correct canonicals, they pile more duplicate content on top of the existing problem.
Most store owners assume Shopify is handling this automatically and never check. That assumption is often wrong.
How to Audit Your Canonical Tags Right Now
No paid tools required. This takes under an hour.
Step 1: Pick a high-priority product that lives in multiple collections.
Step 2: Browse to that product through each collection it belongs to. Copy each URL from your browser's address bar.
Step 3: For each URL, right-click → View Page Source → search for canonical (Ctrl+F / Cmd+F). You'll find a line like:
<link rel="canonical" href="https://yourstore.com/..." />
The URL in that tag must be your clean /products/ path - not a collection-based URL, not a parameterized URL.
Step 4: Search for canonical more than once in the source. Two or more canonical tags = a conflict that needs to be resolved.
Step 5: Repeat across several products and collections. These issues tend to be inconsistent - affecting some products but not others depending on which apps or collection templates are involved.
How to Fix It
App is injecting a conflicting tag: Disable apps one at a time, re-check the canonical each time to isolate the culprit. Check the app's settings for a canonical option or contact the developer. Sometimes you'll have to weigh the app's functionality against the SEO damage it's causing.
Theme is generating wrong canonicals: Open your theme's Liquid files and find where the canonical tag is output (usually in layout/theme.liquid or a product template). Make sure it uses Shopify's built-in {{ canonical_url }} variable, which defaults to the clean product URL. If you're not comfortable editing Liquid, bring in a Shopify developer - a broken canonical at the theme level affects every product page on your store.
URL parameters causing duplicates: For filtered collection URLs, the right call depends on intent. If the filtered page targets a real search query ("blue men's sweaters"), use a self-referencing canonical. If it's purely navigational, canonical back to the base collection URL.
What Fixing This Actually Produces
Canonical fixes don't create overnight ranking jumps. What they do:
- Consolidate backlink authority onto one URL instead of splitting it four ways
- Reduce crawl budget waste so Google spends time on unique content
- Give Google an unambiguous answer about which URL to rank for a given query
- Build stronger indexation history on your canonical URLs over time
For stores that have been live for years without this fixed, the consolidation can produce noticeable improvements on competitive product keywords - because years of fragmented authority finally stack on a single well-optimized page.
This fix doesn't replace good copy, keyword research, or backlinks. But it ensures every other optimization you've done actually counts instead of being quietly diluted by a URL structure you didn't know was a problem.
Run the audit this week. If you want a technical SEO team that specializes in Shopify to handle this (and the rest of your store's hidden ranking issues), visit New Seas.












