Merchants often email us worried that their variants are creating duplicate content. In a standard Shopify setup they are not. Shopify handles it with a canonical tag, and most stores never need to touch it. The risk shows up when a theme edit, an app or a well-meant SEO tweak breaks that default. Here is how it works and how to check yours.
Duplicate content source
Every variant can be opened at its own address. Picking Navy on a tee changes the URL to something like /products/classic-tee?variant=4012345678. That page shows the same title, description and reviews as the base product, with a different option selected.
A tee with 4 sizes and 10 colors has 40 of these URLs. Without a signal telling Google which one is the main page, a crawler could treat them as 40 near-identical copies and spread its attention across all of them.
Shopify's fix: canonical
Shopify themes print a canonical tag in the page head that points to the clean product URL, without the ?variant= part. So all 40 variant URLs say "the real page is /products/classic-tee". Google treats the canonical as a strong hint, consolidates the signals onto the base URL and usually indexes only that one.
You get this for free in Dawn and other Online Store 2.0 themes. There is nothing to switch on. If you want the background on how the tag is built, the canonical guide linked at the end of
Other duplicate sources on Shopify
Variants are only one source. These come up more often in the audits we run with merchants:
- Collection paths. A product can be reached at
/collections/summer/products/classic-teeas well as/products/classic-tee. The canonical tag points both to the plain product URL. - Tracking parameters. Links from ads and emails add
?utm_source=and similar. The canonical ignores them, so they should not be indexed. - Copied product descriptions. Five tees with the same paragraph of text are separate products, so canonicals do not help. Write a short unique description for each. Our guide to SEO for personalized product pages has a simple structure you can reuse.
- Near-duplicate split products. "Classic Tee Black" and "Classic Tee White" as separate products with identical copy compete with each other.
Custom setup risks
- Removing the canonical tag. Some theme edits or head-cleanup snippets drop it by accident. Every variant URL then becomes a candidate for indexing.
- Pointing a variant's canonical at itself. The variant then competes with the base product for the same searches.
- Tracking parameters inside the canonical. A canonical that includes
?utm_campaign=sends Google a confusing signal. - Listing variant URLs in a custom sitemap. Shopify's own sitemap lists products, not variant permutations. Our post on sitemaps and variants explains why that is the right call.
When a variant deserves its own page
Sometimes a single variant has real search demand of its own. "Red wedding guest dress" is a different search from "navy wedding guest dress", and a store that sells both may want each to rank.
The clean way to do that is to make them separate products with their own titles, photos and descriptions, not to un-canonicalize a variant URL. We compare the options in unique URLs per variant. For most catalogs, one strong product page beats several thin ones.
Verification
Open Google Search Console, paste a variant URL into URL Inspection and look at "User-declared canonical" and "Google-selected canonical". Both should show the base product URL. Test one product per theme template, because a custom template can behave differently from the default.
You can also view the page source of any variant URL and search for rel="canonical". If the URL in it still contains ?variant=, something in your theme has changed the default.
Quick audit checklist
- View source on three variant URLs and confirm each canonical points to the clean product URL.
- Run URL Inspection in Search Console on one of them.
- Check that no app adds its own canonical tag, which would give you two.
- Search your product descriptions for copy pasted across several products and rewrite it.
- Make sure your structured data describes the base product with all variants as offers. Our guide to schema markup for variants shows the shape it should take.
Frequently asked questions
How does Shopify prevent duplicate content from variants?
Shopify themes add a canonical tag to every variant URL that points to the clean product URL. Google consolidates the variant URLs onto that page and normally indexes only the base product.
Are variant URLs duplicate content?
They show the same content at different addresses, but the canonical tag tells Google which one is the main page. With the default setup there is no penalty and nothing to fix.
How do I test for duplicate content?
Use URL Inspection in Google Search Console on a variant URL and confirm the canonical is the base product. A crawler such as Screaming Frog can check canonicals across the whole store.
Does Google penalize duplicate content?
Not in the sense of a penalty. Google picks one version to show and filters out the rest, so duplicates mostly waste crawl attention and split signals.
Is it risky to customize variant URLs?
Yes, if the canonical tag gets removed or changed along the way. Variant URLs can then be indexed as duplicates of the base product. Test any theme change with view-source before you publish it.
How should tracking parameters and canonicals work together?
Keep UTM and other tracking parameters out of the canonical URL. The canonical should always be the clean product address.
Can collections create duplicate product pages?
A product shows up under every collection it belongs to, at a collection-based URL. The canonical tag on those pages points to the plain product URL, so only one gets indexed.
Should I trust the default or customize it?
Trust the Shopify default for nearly every store. Change it only after an SEO audit shows a specific reason to.
Related reading
Sources & further reading
Primary sources referenced in this article. We link to official platform documentation and standards bodies rather than secondary summaries so you can verify claims directly.
- Shopify Help Center: Product variants
- Shopify.dev: Product variant limits
- Shopify Help Center: Line item properties (customization)
Try it free on Shopify
Print It My Way's permanent Free plan includes live preview, custom options, and Cart Transform pricing.
Install Print It My Way