Problem
Shopify duplicate product URLs: how to fix it
Shopify serves the same product at more than one address by design. A product is reachable at its own path and at a longer path that includes whichever collection the visitor came from, and variant selections add a parameter on top of that. The platform points the canonical link at the short path, so this is usually a crawl efficiency and internal linking problem rather than an indexing emergency. The repair is to make your own links agree with the canonical.
By CartKernel · Last reviewed 2026-09-07
Does this look familiar?
- Search Console reports many pages as an alternate version with a proper canonical
- The crawl of the site returns several times more URLs than the store has products
- Log files show crawlers spending most of their time on collection scoped product paths
- Product URLs with a variant parameter appear in reports and in shared links
- Internal links to the same product differ depending on which page you start from
- New products take a long time to be crawled while old parameter URLs are recrawled often
Causes, ranked
Why it happens, most common first
Check them in this order. The first two account for most cases we open.
- most common
The theme links to products through the collection path
Many themes build product grid links that include the collection the shopper is browsing, producing a longer address for every product in every collection it appears in. A catalogue of a thousand products across ten collections becomes tens of thousands of crawlable addresses without a single duplicate page being created.
- most common
Variant selection adds a parameter to the address
Choosing a size or colour updates the address with a variant parameter so the selection can be shared and bookmarked. Each of those is a distinct URL to a crawler. They are canonicalised to the base product, but they still consume crawl activity and they appear in analytics as separate pages.
- common
Tag and filter paths create collection variations
Tag based navigation produces additional collection addresses for each combination a shopper can select. Where those pages list overlapping products with the same heading and copy, they compete with the collection they came from and add little that a search engine can distinguish.
- common
Products belong to overlapping collections with near identical content
Automated collections built on similar rules produce several pages listing much the same products under different names. The product URLs multiply along with them, and the collections themselves compete for the same queries.
- occasional
Sharing and campaign links spread the longer addresses
Links copied from a browser while browsing a collection, pasted into emails, social posts or supplier sites, spread the collection scoped version. Those addresses then accumulate external links pointing at a page that is not the canonical one.
- occasional
Market or language paths add another layer
Selling into multiple markets adds regional paths for each product. These are legitimate alternates that need language and region annotations rather than removal, but when the annotations are missing or point at the wrong path they behave like duplicates.
The fix
In this order
Each step is something you can do today. Do them in sequence; skipping ahead is how a review fails twice.
Prevent it next time
- Review the rendered links after any theme update or app install, not just the theme code
- Keep one canonical address per product and use it in every campaign and partner link
- Create new collections only when they answer a distinct search, not for merchandising convenience
- Check the index coverage reports monthly so parameter growth is caught while it is small
Confirm what the canonical actually says
Open a collection scoped product address and a variant parameter address, and check the canonical link in the page source points at the short product path. If it does, the platform is doing its job and the work is about internal linking and crawl efficiency.
Change theme links to the canonical product path
Edit the product card and grid templates so links use the product's own address rather than the collection scoped version. This is a small template change in most themes and it removes the largest source of extra addresses at once.
Audit every other place products are linked
Check related product sections, recently viewed modules, search results, upsell apps and the mega menu. Apps often build their own links, so review the rendered output rather than the theme files alone.
Decide deliberately which filter pages should be indexable
Choose the small number of filter or tag combinations that people actually search for, give them their own heading and copy, and let those be indexed. Add a directive that keeps the remaining combinations out of the index while still allowing crawlers to follow links through them.
Consolidate overlapping collections
Merge automated collections that list broadly the same products, keep the one with the clearest search demand, and redirect the others to it. Fewer, stronger collections concentrate internal links on the pages you want to rank.
Use the robots file for the paths that should never be crawled
Shopify allows the robots file to be customised through a template. Use it for internal search results and other paths that produce endless combinations, and keep product and collection paths crawlable so canonical signals can still be read.
Point external and campaign links at the canonical address
Update newsletters, supplier feeds, social profiles and any partner listings to use the short product path. Where a collection scoped URL has attracted links, keep it working and rely on the canonical rather than redirecting, since the address is still valid on the platform.
Verify the sitemap and watch the index reports
Confirm the generated sitemap lists only canonical product and collection addresses, then track the alternate page and duplicate categories in Search Console over the following weeks. Recrawling a large catalogue takes time, so judge progress monthly.
When to get help
It is worth getting help when the catalogue is large, when filters are generating combinations faster than crawlers can work through them, or when the store sells into several markets and the alternates need proper language and region annotations. Those cases involve decisions about which pages should exist at all, not only which are canonical, and getting them wrong removes pages that were earning traffic. A structured crawl and log review before any change is the safe way to make those calls.
Free. We reply within one business day.
Do collection scoped product URLs hurt rankings?
They rarely cause ranking loss on their own, because the canonical link points search engines back to the single product address. What they cost is crawl efficiency and internal link clarity, which matters most on large catalogues where new products wait a long time to be discovered.
Should variant parameter URLs be blocked in the robots file?
Generally no. Blocking them stops crawlers reading the canonical link on those pages, which removes the signal that consolidates them. Leave them crawlable, keep the canonical pointing at the base product, and reduce how many are linked internally instead.
Can I redirect the longer product paths to the short one?
The platform serves both by design, so redirecting them is not a supported change and can break navigation behaviour that shoppers rely on. Change your internal links to the short path and let the canonical handle anything that still reaches the longer one.
How do I know whether this is worth fixing on my store?
Compare the number of URLs a crawl discovers with the number of products and collections you actually sell. If discovered addresses are several times higher and new products are slow to appear in search, the linking change will pay for itself. If the ratio is close, spend the time elsewhere.
Services that fix it for good
Related problems, answers and terms
Stop the leak.
A free Growth Analysis finds what is broken and ranks it by the revenue it costs you.