Shopify Duplicate Content: Fix Collection-Scoped Product URLs, Tags and Filters
Shopify's URL structure means one product can legitimately exist at several addresses. Most of the time this is harmless. Sometimes it fills Search Console with duplicate warnings and spends crawl budget on URL variants instead of the pages you want ranked.
Where Shopify Duplicates Come From
| URL pattern | Cause | Risk |
|---|---|---|
| /collections/x/products/y | Links from within a collection | Medium — crawl waste |
| ?variant= | Variant selection | Low — canonicalised |
| /collections/tag | Tag filtering | Medium — thin pages |
| Filter and sort parameters | Faceted navigation | Medium to high at scale |
| ?page= | Pagination | Low |
| /collections/all | Catch-all collection | Low |
| .myshopify.com | Default domain | High if indexed |
What Shopify Already Handles
Shopify sets a canonical on collection-scoped product URLs pointing back to the clean /products/ address, and variant URLs canonicalise to the parent product. So the baseline is better than it first appears — you are cleaning up edges, not fixing something broken.
Why Canonicals Alone Aren't Enough
A canonical is a hint, not a directive. Search engines weigh it against other signals — chiefly your internal links. If every link in your collection grid points at the collection-scoped version, you are telling search engines one thing with the canonical and the opposite with a few hundred links. Internal links usually win.
Fix 1 — Link Collection Grids to Canonical Product URLs
Most themes build product grid links with a filter that scopes the URL to the current collection. Removing that scoping makes every grid link point at the clean product URL. It is a small template change with a large effect on crawl efficiency, and it is the highest-value fix here.
Test it on a duplicate theme, and check that nothing in your theme depends on knowing which collection the shopper came from.
Fix 2 — Handle Thin Tag and Filter Pages
Tag pages that exist only as a filtering side effect add little. Either noindex them, or promote the genuinely valuable ones into real collections with their own copy and internal links. The test is simple: would someone search for this? If yes, make it a proper collection. If no, keep it out of the index.
Fix 3 — Careful Robots Rules for Parameters
Shopify's robots file is editable through a Liquid template. Add rules deliberately and keep the defaults — they already handle several cases correctly. Remember that blocking a URL prevents crawling, not indexing, so it is the wrong tool for something already indexed. Use noindex for that, and make sure the page is crawlable enough for the directive to be seen.
Fix 4 — Pagination Clean-Up
Make sure paginated pages are crawlable, have self-referencing canonicals rather than pointing at page one, and carry distinct titles. Infinite scroll without crawlable pagination links can leave deep products unreachable.
Validate
- Page indexing report for duplicate and alternate statuses
- URL Inspection on a sample to confirm the canonical chosen
- A desktop crawl to confirm internal links now point at clean URLs
When Not to Worry
Small catalogues rarely have a crawl budget problem. If your indexation looks correct and the right pages rank, duplicate warnings alone are not a reason to start editing theme code.
Frequently Asked Questions
Does Shopify create duplicate content by default?
It creates duplicate URLs, largely handled by canonicals. Your internal links determine how well that works.
Do duplicate URLs cause a penalty?
No. They dilute signals and waste crawl budget, which is a different and more mundane problem.
Should I block collection-product URLs in robots?
Generally no — fixing internal links is cleaner and avoids blocking pages that carry canonical signals.
Are variant URLs a problem?
Rarely. They canonicalise to the parent product.
How long until Search Console clears?
Weeks, and only after the affected URLs are recrawled.
Where ConversionAB Fits
Not comfortable editing theme code? ConversionAB can ship and verify these fixes on a duplicate theme first. FixMyStore's AI SEO Audit flags duplicate and canonical issues.