What are product variants?
Product variants are the versions of a single item that differ only in one or more attributes, such as size, color or material, and that are sold grouped under a parent product. Each product variant is a unit that is bought separately, with its own identifier, its own price and its own stock.
Key takeaways
- A variant is a combination of option values, like "White / M", and it is bought separately: it has its own identifier, price and stock.
- In Google's markup, variants are grouped in a ProductGroup that says which attributes they vary on, and each variant carries a unique identifier.
- In Merchant Center, each variant is sent as a separate product, and all of them share the same item_group_id.
- A set or a bundle is not a variant: they are different products sold together.
- Since October 2025, Shopify supports up to 2,048 variants per product; before, the limit was 100.
A T-shirt sold in three colors and three sizes is a product with nine variants: nine distinct things that can sell out separately, carry different prices and have different codes. Here "variant" has nothing to do with the variants of an A/B test or the versions of a page: it is each specific combination a customer puts in the cart. It matters because the way you group them decides how your product page looks, how Google understands it and how it reaches every feed. If you split into separate products what are really variants, you end up with near-identical pages that compete with each other and split the reviews; if you group as variants what are really different products, you hide one behind another.
How it works
Commerce platforms describe the same model with similar words. In Shopify, the product is the container for the shared information (title, description, vendor); options are the characteristics the customer chooses between, such as color or size, each with its values; and variants are the items that get bought, one for each combination of values, like "Red / Small", each with its own price, inventory and barcode.[1]Shopify.dev. Products and collections Since October 15, 2025, Shopify supports up to 2,048 variants per product, up from the historical limit of 100, and warns that apps that do not use its GraphQL product APIs may fail with products that go over 100.[2]Shopify.dev, changelog. The product variant limit is now 2,048 for all merchants
Each axis of variation is one of the product attributes, but not the other way around: weight or composition describe all the variants the same way and do not create any new one. The number of variants is the product of the values on each axis: three colors times three sizes is nine.
For Google, variants are grouped in a ProductGroup. Its structured data documentation describes three properties: variesBy, the aspects on which the variants in the group vary; hasVariant, each variant as a nested Product; and productGroupID, the group's identifier, which Google also calls the parent SKU. Google supports six values for variesBy: color, size, suggested age, suggested gender, material and pattern. And it sets one condition: each variant needs a unique identifier in its markup, for example with sku or gtin.[3]Google Search Central. Product variant structured data (ProductGroup, Product) It allows two ways to build the store: a single page where all the variants are chosen without reloading, or a separate page for each variant.[3]Google Search Central. Product variant structured data (ProductGroup, Product)
In Google Merchant Center, each variant is a product. It is sent as a separate item, with its own identifier, and all the variants of one product share the same item_group_id value. The three-size, three-color T-shirt is nine submissions with the same group identifier, and Google recommends using the parent SKU as that value.[4]Google Merchant Center Help. Item group ID [item_group_id] Color is also required for any product sold in several colors.[5]Google Merchant Center Help. Product data specification
Variant or standalone product
Merchant Center defines variants as similar products that differ only in details like color and size for clothing, or memory, screen size, processor or graphics card for electronics. And it gives two examples of what is not one: a suit made of a jacket and trousers, or a set of bathroom accessories. They are different items sold together, not the same item in another version.[4]Google Merchant Center Help. Item group ID [item_group_id]
Between those two extremes there is a gray area each catalog resolves: the same model in another capacity, a three-pack, a limited edition with a different print. The useful question is whether the person buying is comparing them as options of one thing or as different things.
In a store
Fictional example. A store sells a basic cotton T-shirt in white, black and gray, sizes S, M and L. In Shopify it is one product with two options and nine variants; in Merchant Center, nine items with item_group_id "TEE-BASIC"; and in the page's markup, a ProductGroup like this one, trimmed to two variants:
{
"@context": "https://schema.org/",
"@type": "ProductGroup",
"name": "Basic cotton T-shirt",
"productGroupID": "TEE-BASIC",
"variesBy": ["https://schema.org/color", "https://schema.org/size"],
"hasVariant": [
{
"@type": "Product",
"sku": "TEE-BASIC-WHITE-M",
"name": "Basic cotton T-shirt, white, M",
"color": "White",
"size": "M",
"offers": {
"@type": "Offer",
"price": "19.90",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
},
{
"@type": "Product",
"sku": "TEE-BASIC-BLACK-L",
"name": "Basic cotton T-shirt, black, L",
"color": "Black",
"size": "L",
"offers": {
"@type": "Offer",
"price": "19.90",
"priceCurrency": "USD",
"availability": "https://schema.org/OutOfStock"
}
}
]
}
What you read in it: the group says what it varies on (variesBy), each variant carries its sku and its color and size values, and availability goes per variant. That the black in L is sold out says nothing about the white in M.
What people often mix up
A bundle is not a variant. If you sell a single T-shirt and a three-pack, the pack is not "another size" of the T-shirt: Merchant Center leaves sets of items sold together out of variants.[4]Google Merchant Center Help. Item group ID [item_group_id]
How to check it
- Open a product with variants in your store admin and check that each variant has its own SKU and, if the manufacturer assigned one, its GTIN. Google asks for a unique identifier per variant.[3]Google Search Central. Product variant structured data (ProductGroup, Product)
- Look at the published page and pick another variant: check whether the page's address changes and whether the price and availability shown are those of that variant.
- Check the markup Google reads for its rich results: run the page through the Rich Results Test and look for a ProductGroup with
variesByand one variant for each combination you sell.[3]Google Search Central. Product variant structured data (ProductGroup, Product) - In Merchant Center, filter by
item_group_id: all the variants of a product should share it, and the recommended value is the parent SKU.[4]Google Merchant Center Help. Item group ID [item_group_id] - If a Shopify product goes over 100 variants, check that the apps that read your catalog use the GraphQL product APIs.[2]Shopify.dev, changelog. The product variant limit is now 2,048 for all merchants
Related concept: product attributes
An attribute describes; a variant is bought. Color is an attribute, and when a product is sold in several colors, that attribute becomes an axis of variation and each value gives rise to variants. The weight, composition or capacity of a backpack are attributes that do not create variants as long as they do not change from one version to another. If a fact changes from one variant to another, it is stored on the variant; if it does not, on the product. The product attributes page explains how they are stored and where they end up.
To keep going, the catalog and entities reading path puts the other terms in order, from the product page to the PIM where they are managed.
Synonyms
- English
- product variants, product variations
- Español
- variaciones de producto, variantes
Sources
- [1] Shopify.dev. Products and collections. Accessed . ↑
- [2] Shopify.dev, changelog. The product variant limit is now 2,048 for all merchants. Accessed . ↑ ↑
- [3] Google Search Central. Product variant structured data (ProductGroup, Product). Accessed . ↑ ↑ ↑ ↑
- [4] Google Merchant Center Help. Item group ID [item_group_id]. Accessed . ↑ ↑ ↑ ↑
- [5] Google Merchant Center Help. Product data specification. Accessed . ↑
Change history
- First English version, translated from the Spanish draft.
This definition is published under CC BY 4.0. Reuse this definition freely, crediting Clione with a link to this page.
Related terms
PDP
What PDP means in an online store, where the acronym shows up (analytics, themes, Google) and how to tell a PDP from a PLP on your own site.
PIM
What a PIM (Product Information Management) is, how it organizes families, channels and completeness, and how to decide which system rules each field.
Product attributes
What product attributes are, where they are stored, how filters, Merchant Center and schema.org read them, and which attributes create variants.
ProductGroup
What ProductGroup is in Schema.org, which properties Google asks for, how to mark it up on a single page or one page per variant, and how to check yours.
SKU
What a product SKU is, how it differs from a GTIN and an MPN, how to create one per variant on Shopify or BigCommerce, and where Google asks for it.
Google Merchant Center
What Google Merchant Center is, how your product data gets there, where Google shows it and how to check that the feed and the product page match.
Make your catalog easy for bots to read
Clione fills every product page with what bots read best: the JSON-LD graph with its structured data, the meta description and the FAQs. You review and press Push; then we check your live store so it all stays published.