Shopify variants and SEO: one URL or own products?

How Shopify handles ?variant= URLs and canonicals, when a variant deserves its own product, and how to split one without losing rankings. With decision table.

ecomando editorial8 min read
Contents
  1. How Shopify handles variants, and what it means for SEO
  2. The question that decides everything: does anyone search for it?
  3. Decision table: variant or separate product
  4. If it stays a variant: optimize the one page for every version
  5. If it becomes its own product: without duplicate content
  6. Splitting step by step, without losing rankings
  7. Common mistakes

A t-shirt in eight colours and five sizes is one Shopify product with forty variants. A backpack special edition that customers search for by name is badly served as a variant. Whether something is a variant or its own product decides rankings, feed quality and how much work your catalog costs you — and in most stores nobody ever decides it deliberately.

This article explains how Shopify handles variants technically, what that means for SEO, and gives you a decision table you can apply product by product. At the end: how to split a variant out without losing the rankings you have.

How Shopify handles variants, and what it means for SEO

Every product has a URL at /products/<handle>. When a customer picks a variant, the theme appends a parameter: /products/trailhead-32l-backpack?variant=45678901234. The page stays the same, only price, image and availability change, and the parameter makes sure a shared link preselects the right version.

How many variants fit into one product changed recently. Shopify's developer changelog records that in October 2025 the limit went to 2,048 variants per product for all merchants, up from 100. The option limit did not move: three options per product, so size, colour and material fills the quota. Shopify also warns that apps not built on the current GraphQL product APIs can behave badly above 100 variants, which is one reason a four-figure variant count is rarely a good idea in practice even when it is allowed.

For search engines that means:

  • The canonical points at the product URL without the parameter. Shopify sets this in the default theme code. Google therefore consolidates all variant URLs into one page. Google's own documentation on canonicalisation describes a canonical as a strong signal, not a command. In practice Google follows it as long as your other signals do not contradict it.
  • Title, description and H1 are identical for every variant. The theme cannot vary them per variant in a way Google would read, because Google only reads the page once.
  • Your copy has to name the versions. If “Trailhead 32 l in olive green” exists only as a dropdown value, the word may never appear in the indexed text at all. Which versions exist belongs in the description.
  • In Merchant Center every variant is its own offer. The Google & YouTube channel submits each variant as its own item, with its own id and price and a shared item_group_id that groups them. So the olive version can appear in a Shopping ad while it cannot appear as a separate organic result.

The net effect: in organic search the product ranks, never the variant. For sizes that is entirely fine. Nobody searches for “hiking backpack size M”. For versions with their own demand it is a problem.

The question that decides everything: does anyone search for it?

Before you restructure anything, check demand. Three routes that together give a clear enough picture:

  1. Search Console. Filter the performance report for queries containing the variant term — “olive”, “limited”, an edition name, a model code. If there are impressions for product-plus-version combinations, the demand exists and you are ranking with a page that barely contains the word.
  2. Keyword research. Check search volume for “product + version”. Treat anything without measurable volume as a merchandising question, not an SEO one.
  3. Internal search and support questions. What customers type into your store search and what support gets asked reveals demand that tools miss, especially for niche products.

Without demand for the version there is no SEO reason for a separate product. Then only merchandising and maintenance arguments count.

Decision table: variant or separate product

SignalStays a variantBecomes its own product
Search demand for the versionnone, or only combined with a sizeown queries, own name or model code
Difference from other versionssize, quantity, standard colourmaterial, function, special edition, clearly different price
Imagessame shot in another colourits own image set
Descriptionone text explains every versionits own text with its own features
Life cycleall versions arrive and retire togetherthis version launches later or retires on its own
Reviewsapply to all versionscustomers rate this version differently
Google Shoppingvariants run as a group, which is goodits own offer without a group, also good
Maintenanceone product, one pageseveral pages, several texts, several listings

Two or more ticks in the right column, and at least one of them on search demand: separate product. Anything else: variant.

An example for calibration. A bottle maker sells the 0.5 litre bottle in twelve colours. That is one product with twelve variants. The same bottle as an insulated double-wall version, with its own price, its own weight and real queries for “insulated water bottle 0.5 l”, is its own product — even though the design looks identical.

If it stays a variant: optimize the one page for every version

Even without separate URLs you can make sure the product page gets found for queries that include a variant term:

  • Name the versions in the copy. A sentence like “Available in olive, black and sand, each in 26 and 32 litres” puts those terms into the indexed content.
  • Alt text per variant image. Every colour shot gets alt text with product and colour. That helps in image search and is good accessibility practice regardless.
  • Check the structured data. Current themes output one offer per variant with price and availability. Test a product page with the Rich Results Test. Details are in the article on product schema markup.
  • Use collection filters. Product options can drive filters so customers can narrow by colour. Those filter URLs are navigation aids, not index candidates — see duplicate content in ecommerce for where to draw that line.
  • Link internally to the base URL. When blog posts or collections link to a product page, do it without ?variant=. Google explicitly recommends linking internally to the canonical URL. The parameter is there for shared links and Shopping ads.

If it becomes its own product: without duplicate content

The most common mistake when splitting: duplicate the product, swap the colour in the title, done. That produces two pages with identical text, which Google either treats as duplicates or plays against each other. The general duplicate content problem applies here in a sharper form, because the pages really do differ only marginally.

How to do it properly:

  1. A title built on the term people search for. Not “Trailhead 32 l Olive” when the query is “Trailhead 32 l limited edition”.
  2. Its own description. At minimum, rewrite the paragraphs on material, use case and differences from the standard version.
  3. Its own images. Main shot plus two detail shots should show this version, not a recoloured standard model.
  4. Visible cross-links. An “also available as” block with image and link to the sibling products. It replaces the variant picker for customers and distributes signals between the pages.
  5. One shared collection. All versions sit in the same collection so they are reachable from there.
  6. Sort out the reviews. Review apps usually collect per product ID. When you split, decide whether existing reviews stay with the original product or can be grouped.

Some stores have an extra option: the Combined Listings app. Several independent products appear on one page as a picker while keeping their own URLs. Shopify states that the app is available only on Plus and enterprise commerce plans, and that combined listings display on free Shopify themes in version 15.0.0 or later; other themes may need code changes. On Basic, Grow and Advanced, cross-linking is the route.

Splitting step by step, without losing rankings

When you turn a variant into its own product, you are changing the structure of a page that may already rank. So work in this order:

  1. Take a baseline. Note clicks, impressions and the top queries for the product URL over the last three months from Search Console. That is your comparison value.
  2. Create the new product with its own handle, title, copy, images, barcode and inventory. Fill in the search engine listing.
  3. Move the inventory. Transfer the variant's stock to the new product, then remove the variant from the original. Order history and reports stay with the original product.
  4. Leave the old variant URL alone. A ?variant= URL pointing at a deleted variant usually still loads the product page, with the theme showing the first available variant. You do not need a redirect, and it would be unreliable anyway: Shopify notes that URLs containing query strings might not work as expected with redirects. Call an old variant URL yourself once after the change and see what happens.
  5. Set the internal links. Cross-link old and new product, add the new one to the collection, mention it in a relevant blog post if you have one.
  6. Check Merchant Center. The new product gets a new offer ID and the old variant ID disappears at the next sync. Campaigns with product groups built on item ID need adjusting. The Merchant Center setup walkthrough covers how the sync behaves.
  7. Compare after four to six weeks. Both pages together should reach at least the clicks the old page had. If the new product sits at zero, what is usually missing is the searched term in the copy, or internal links.

Common mistakes

  • Everything as its own product. Twelve colours as twelve products with copied text fills the collection with duplicates and makes choosing harder for customers.
  • Everything as a variant. Bundling products that share nothing but a manufacturer into one product makes targeted optimization impossible.
  • Variant URLs in navigation links. Menus or collection tiles pointing at ?variant= URLs spread signals across addresses Google consolidates anyway, and they make reporting messier.
  • Canonical changed by the theme or an app. Some themes and SEO apps set the canonical to the variant URL. Check the page source of a variant view and see where the canonical points.
  • A description that never mentions the versions. The copy talks about the product, the variants exist only in the dropdown.

If you want to work through your catalog systematically, start with a list of all products and their variant count. Products with very many variants, and products whose variants differ a lot in price, are the first candidates for review. In ecomando the products module shows which items actually generate revenue; when one specific version stands out there, that is often the hint that it has demand of its own.

Missing GTINs are a related trap when you split, because a new product needs its own identifier — the article on missing or invalid GTIN in Merchant Center explains what Google expects. For everything else Shopify does differently from other platforms, see the Shopify SEO guide.

Frequently asked questions

Do Shopify variants rank as separate pages in Google?

No. A variant hangs off the product URL as a ?variant= parameter, and Shopify sets the canonical to the product URL without the parameter. Google treats all variants as one page, so a single colour or size cannot rank on its own.

When should a variant become its own product?

When people search specifically for that version, when it has its own name or model code, or when it differs clearly in images, description and price. Plain size or colour options without their own search demand are better off staying variants.

Does creating a product per colour cause duplicate content?

It does if you only swap the colour in the title and copy the text and images. Separate products need their own description, their own images and visible cross-links. Otherwise they compete with each other and none of them ranks well.

How many variants does Shopify allow per product?

Shopify raised the ceiling to 2,048 variants per product for all merchants in October 2025, up from 100. The number of options stayed at three, so more than three attributes still needs an app. For SEO the count matters far less than whether the variants really belong to one product.

Can several products share one product page in Shopify?

Yes, through the Combined Listings app, but Shopify makes it available only on Plus and enterprise commerce plans, and it needs a compatible theme. On Basic, Grow and Advanced you achieve something similar with visible cross-links between sibling products.

Keep reading