Almost every Shopify SEO article tells you the platform has a duplicate content problem and that canonical tags are the answer. Half of that is right and the half that matters is wrong.
Shopify does set the canonicals, and it sets them correctly. What it also does is link internally to the non-canonical paths from every collection page, which means the version of each product that receives your internal link equity is the version you told Google to ignore.
That is a very different problem with a very different fix.

What is the Shopify Duplicate URL Problem?
Shopify serves the same product through several paths, one canonical and one for every collection the product belongs to.
A product sitting in three collections is reachable at four addresses:
- /products/blue-t-shirt, the canonical
- /collections/mens-clothing/products/blue-t-shirt
- /collections/summer-sale/products/blue-t-shirt
- /collections/all/products/blue-t-shirt
Every one of those is crawlable. On a catalogue of any size, the number of product URLs exposed is a multiple of the number of products sold.

Why Are Canonical Tags Not the Fix?
Because Shopify already applies them, and it applies them correctly. Telling a store owner to add canonicals is advice for a problem the platform solved.
The unsolved half is internal linking. Collection pages link to the collection-scoped version of each product, so the crawl path through your own site leads to the duplicates. Canonicals tell a search engine which URL to index. They do not change where your internal links point, and internal links are how authority moves around a site.
How Do You Actually Fix It?
Change where the internal links point, then reduce how many duplicate paths exist at all.
In order of effect:
- Edit the theme so collection links output the canonical product URL, which is a change in the product card snippet and is usually the single highest-value edit available on a Shopify store
- Audit every other internal link source, including search results, related products, recently viewed and blog content
- Limit collection membership where a product sits in collections purely for merchandising convenience
- Handle /collections/all, which duplicates the entire catalogue on its own
- Verify in Search Console that the canonical version is the one being indexed and reported

What About Tag Pages?
Tags multiply the problem, because each tag can generate a crawlable page and tags combine. Shopify tags are a merchandising tool that behaves like an SEO liability.
What to do with them:
- Measure how many tag URLs the store actually exposes before deciding anything
- Promote the handful of tags with genuine search demand into real collections with content
- Block or canonicalise the rest rather than leaving them open
- Block tag combinations outright, since the count grows multiplicatively
Shopify restricts full robots.txt access, but the customisations it does allow are enough to keep crawlers off cart, login, internal search results and low-value parameter URLs.
How Do You Know It Worked?
By indexed URL count falling toward catalogue size, and by canonical product URLs appearing in Search Console rather than collection-scoped ones.
What to check afterwards:
- Indexed pages against real product count, which should converge
- Which URL variant Search Console reports for your top products
- Crawl stats, where visits should shift toward products and collections
- Time for new products to be indexed, which is the practical symptom that improves first
Last Thoughts on Shopify Duplicate URLs
This is the defining technical issue on the platform and the one most commonly mis-diagnosed. The canonicals are fine. The internal links are not.
Fix the product card snippet so collection pages link to canonical URLs, bring tags under a rule, and verify in Search Console rather than assuming. Then the content you publish afterwards lands on a foundation that holds it. The Shopify SEO service starts here, and Shopify collection pages that rank covers what comes next.
Key Takeaways
- Shopify sets canonical tags on collection-scoped product URLs correctly. That half of the problem is already solved.
- Internal links on collection pages point at the non-canonical paths, so link equity flows to duplicates.
- Editing the product card snippet to output canonical URLs is usually the highest-value change on a Shopify store.
- Tags multiply the problem because each can generate a page and tags combine.
- Shopify restricts full robots.txt access, but allowed customisations cover cart, login and internal search.
- Verify by watching indexed URL count converge toward real product count.
Frequently Asked Questions (FAQs)
Does Shopify have a duplicate content problem?
It exposes each product at several URLs, but it canonicalises them correctly. The real issue is that internal links point at the non-canonical versions.
Should I add canonical tags to my Shopify product pages?
They are already there and correct. Effort is better spent changing where internal links point, which Shopify does get wrong.
How do I stop collection pages linking to duplicate URLs?
Edit the product card snippet in the theme so it outputs the canonical /products/ URL rather than the collection-scoped path.
Can I edit robots.txt on Shopify?
Not fully. Shopify restricts access, but the permitted customisations are enough to keep crawlers off cart, login, internal search and low-value parameters.
Why do my new products take weeks to get indexed?
Usually crawl budget spent on duplicate and tag URLs before the crawler reaches new products. Fixing the duplicates is what shortens it.
Want More Sales From Search?
Get a free, no-obligation store audit and a clear plan to grow your revenue.
One Comment