Lorixen.
EN

Product variants and duplicate content in a small online store

Short answer: Most small stores should keep variants that differ only in size on one product page with one canonical URL, and only give a variant its own page when people genuinely search for it separately, such as a distinct color or model. Either way, each variant should be reachable by its own URL that preselects it, and Google's ProductGroup structured data tells search engines how the variants fit together. Bundles are different products and deserve their own pages.

"Duplicate content" worries store owners more than it should. Google isn't penalizing you for selling a T-shirt in five sizes. The real risks are more practical: several near-identical URLs competing with each other, Google showing the wrong variant in search, or a shopper landing on the right page but seeing the wrong color and price.

How Google describes variants

Google's documentation on product variant structured data describes two ways stores are built:

  • Single page: all variants are selectable on one page without reloading, usually through URL query parameters (for example ?size=small&color=green).
  • Multi-page: variants of the same product live on different pages.

Both are supported. For single-page sites, Google says there must be only one distinct canonical URL for the overall product group, typically the base URL without a variant preselected. For multi-page sites, each page needs full, self-contained markup. In both cases, Google asks that each variant can be preselected directly with a distinct URL, showing the right image, price and availability, so Google can crawl and identify each variant.

The structured data itself uses a ProductGroup with properties such as hasVariant, variesBy and productGroupID, plus normal Product details for each variant.

Scenarios

Scenario 1: Sizes only

A hoodie in S, M, L and XL. Nobody searches for "hoodie in medium"; they search for the hoodie and then pick a size.

Setup: one product page, one canonical URL, sizes as selectable variants. Each size can still have a preselecting URL for ads, emails and Merchant Center, but they all point their canonical to the main product page.

Scenario 2: Colors that people search for

A sneaker in black, white and "sage green". Some people search for "sage green sneakers" specifically; the photos are completely different; each color may have its own reviews and stock patterns.

Setup options:

  • Keep one page if color is a minor choice and the photos update when it's selected. Make sure the image, title and price change with the selection and the URL reflects it.
  • Give each color its own page (the multi-page approach) if colors are searched for and merchandised separately. Write a genuinely distinct title and opening description for each color page, and link the color pages to each other with swatches.

On Shopify, splitting colors into separate products and showing them together as one listing is what Shopify's Combined Listings app does, but its help page says the app is available only on Plus and enterprise plans. On other plans, third-party apps or custom theme work can link separate products with swatches.

Scenario 3: Size and color together

A dress in four colors and five sizes, twenty combinations.

Setup: a common pattern is one page per color with sizes as variants on that page, which is close to Google's multi-page example, where the color pages are separate and sizes are preselected by a query parameter. It keeps the number of indexable pages sensible while still giving each color its own search presence.

Scenario 4: Bundles and packs

A candle sold singly, as a three-pack and in a gift set with a holder.

Setup: treat bundles as separate products with their own pages, titles, prices and photos. They answer different searches ("candle gift set") and aren't variants in Google's sense, which is about the same product varying by attributes like size, color or material.

Scenario 5: Near-identical products under different names

The same mug listed twice because it's in two collections, or a product duplicated to run a different price.

Setup: one product, listed in multiple collections. Duplicating products to change a price or tag creates genuine duplicates. Use your platform's discount or collection tools instead.

Recommended setup

  1. Decide per product line: one page, or one page per color (or model). Write the rule down so new products follow it.
  2. Make every variant linkable. Shopify's theme documentation describes variant deep links with a ?variant= parameter and says themes should update the product information for the selected variant. Test that your theme does: open a variant link in a private window and check the image, price and availability.
  3. Check your canonical tags. On a single-page setup, variant URLs should point their canonical to the main product URL. On a multi-page setup, each color page should be canonical to itself.
  4. Add ProductGroup markup if your platform or SEO app supports it, following Google's examples for your approach. Validate with Google's Rich Results Test.
  5. Write once, vary where it matters. On separate color pages, change the title, the first paragraph and the alt text; shared details like materials and care can repeat.
  6. Keep your product feed consistent. If you send products to Google Merchant Center, group variants with the item group ID attribute (Google's Merchant Center help lists it as required for product variants) and link each one to the URL that preselects it, so ads and listings land on the right color.
  7. Watch Search Console. If Google picks a variant URL as canonical over your main page, or reports duplicates, revisit steps 2 and 3.

FAQ

Will Google penalize me for having many variant URLs?

Variant URLs are normal. Problems come from unclear canonicals and pages that don't show the variant they claim to, which can lead Google to pick the wrong URL to show.

Should out-of-stock variants have their own pages removed?

For temporary stock-outs, keep them and show availability correctly. Removing and re-adding pages loses what they've built up.

Do I need separate descriptions for each size?

No. Sizes rarely need their own text. Size charts and fit notes on the main page help shoppers more.

Is ProductGroup markup required?

It's not required to appear in search, but Google says it helps it understand which products are variations of the same parent product.

If your variant setup has grown into a tangle of duplicate products and odd URLs, we can plan a cleaner structure with you.

Sources

WhatsAppLet’s talk