Duplicate product URLs: collections and variants
How one product ends up with several addresses through collections and variants, what Google says about choosing one, and how to check what your theme links to.
By Metryn · Updated 17 October 2026 · 5 min read
A single jacket can live at /products/waxed-jacket, at /collections/outerwear/products/waxed-jacket, at /collections/sale/products/waxed-jacket, and at the first of those with ?variant=123456 on the end. For a shopper it's one jacket. For a crawler it's four addresses that show nearly the same page.
That isn't an error, and Google doesn't say it's punished. But it means someone has to say which address is the real one, and if nobody does, Google chooses.
What Google says about choosing
Google's page on consolidating duplicate URLs says that you can indicate a preference with redirects, rel="canonical" links and sitemap inclusion. It calls redirects and canonical links strong signals and sitemap inclusion a weak one. It also says none of them is required: without a preference, Google identifies the version it considers best to show to users.
Its ecommerce documentation adds two points for variants. If each variant has its own URL, include the canonical product URL on all the variant pages. And if you use a query parameter for variants, such as ?color=green, use the URL without the parameter as the canonical. It also advises minimizing the number of alternative URLs that return the same content, and avoiding internal links to temporary parameters like session IDs and tracking codes.
What Shopify does by default, and what to check
Shopify's Liquid reference describes canonical_url as the canonical URL for the current page, and a within filter that generates a product URL within the context of a collection, for example /collections/sale-potions/products/draught-of-immortality. So the platform can produce both forms. Which one your visitors and crawlers meet depends on how your theme builds its links.
Third-party guides I read say the default canonical on a product page points to the clean /products/ address, and that themes using the within filter in collection grids link to the longer one. I couldn't find Shopify's own page saying this, so treat it as a common pattern to verify, not a fact about your store. You can verify it in two minutes.
A two-minute check
- Open a collection page and click a product. Look at the address bar: is it
/products/...or/collections/.../products/...? - On that product page, view source and search for
rel="canonical". Read the address in it. - Open your product sitemap and see which form of address it lists.
- If the canonical and the sitemap say
/products/...but your grid links to the long form, your links disagree with your signals.
The disagreement matters because Google treats the canonical as one signal among several. When your internal links keep pointing to the long address, you're sending a stronger vote for it than a single tag can cancel. In many cases Google will still pick the address you wanted, but it's an easy mismatch to remove.
Variants
For variants the same logic applies. With the ?variant= pattern, each variant page should carry the canonical of the main product, and links in your own content should use the plain address. If your colours really are different products to a shopper, with different photos, descriptions and demand, they may deserve their own pages instead. That's a catalogue decision, not a technical one.
Google's documentation on variant markup is a separate topic: it asks for variants to be identifiable and for markup to describe them accurately. Our guide for sporting goods stores walks through it.
Filters and sort orders
Collection pages with filters, sorting and pagination can multiply addresses much faster than variants do. Google has a long page on managing crawling of faceted navigation, and it's the right place to go if you have thousands of filter combinations. Don't block those with robots.txt as a quick fix and then rely on canonical tags on the same pages. A blocked page can't be crawled, so Google never sees the tag.
Questions people ask
Do duplicate product URLs hurt my rankings?
Google's page doesn't say duplicates are penalized. It says it picks one. The risk is that it picks one you didn't want, and spreads signals across several.
Should I redirect the long addresses to the short one?
A redirect is the strongest signal Google lists. But if your theme links to the long address, shoppers would be redirected on every click. Fixing the links is cleaner than adding the redirect, and it's a job for the theme.
I'm on WooCommerce. Does this apply?
The principle does: one preferred address, with the canonical tag, internal links and sitemap in agreement. The details are different, and I haven't verified WooCommerce's defaults, so check a product page's source the same way.
What to do this week
- Click through from a collection to a product and note the address form.
- Check the canonical tag on that product page.
- Check which form the product sitemap uses.
- If they disagree, ask your theme developer to link to the canonical form, and send them this list.
Check your own site
Paste your address below. The free scan looks at robots.txt, your sitemap, access for the main AI crawlers and structured data, and shows what it found in seconds. It tells you what a machine can fetch and read. It doesn't predict rankings or citations.
Sources
- Google Search Central: Consolidate duplicate URLs: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- Google Search Central: Designing a URL structure for ecommerce sites: https://developers.google.com/search/docs/specialty/ecommerce/designing-a-url-structure-for-ecommerce-sites
- Shopify Liquid reference: within filter: https://shopify.dev/docs/api/liquid/filters/within
- Shopify Liquid reference: canonical_url: https://shopify.dev/docs/api/liquid/objects/canonical_url
- Google Search Central: Managing crawling of faceted navigation URLs: https://developers.google.com/search/docs/crawling-indexing/crawling-managing-faceted-navigation
- Shopify Help Center: Finding and submitting your sitemap: https://help.shopify.com/en/manual/promoting-marketing/seo/find-site-map
Keep reading
Problems and how to fix them
Why isn't my site showing in ChatGPT or AI search?Problems and how to fix them
robots.txt Disallow vs noindex: which to useProblems and how to fix them
"Discovered" vs "Crawled", not indexed: what to do
Running a store? See Metryn for online stores for what the scan checks and the other guides written for store owners.
Want to check one file yourself? Try the free AI crawler robots.txt checker or the llms.txt validator, or read how the score is built.