Product Variants in Google Merchant Center: Sizes and Colours Done Right
How to list sizes and colours correctly with item_group_id, variant URLs and images, without feed errors.
If you sell a T-shirt in four sizes and three colours, Google Merchant Center sees twelve products, not one. Each variant needs its own row in the feed, linked together so Google knows they belong to the same product. Getting this right avoids errors and lets shoppers see the exact colour and size they searched for.
How variants work in a feed
- One row per variant, each with its own unique
id(usually the variant SKU). - The same
item_group_idon every variant of the product โ usually the parent SKU. - Variant attributes that differ:
color,size,material,pattern. - Shared attributes such as brand and description can be the same across variants.
Titles, links and images for variants
- Title โ include the variant detail, such as "Men's Cotton Kurta โ Navy Blue, Size M".
- Link โ point to a URL that opens with that variant pre-selected (often a URL parameter). Landing on a different colour causes mismatch errors.
- Image โ show the actual colour of that variant.
- Price and availability โ per variant; one size can be out of stock while others are available.
- GTIN โ each size and colour normally has its own barcode. Check them with the GTIN validator.
Apparel needs extra attributes
For clothing and shoes in many countries, Merchant Center requires color, size, gender and age_group. Missing them is one of the most common apparel errors.
Common variant errors
- Several variants sharing the same
id. - Variants missing
item_group_id, so they look like unrelated products. - All variants linking to the default variant, causing price or image mismatches.
- One GTIN reused for every size.
Run your feed through the Merchant Center feed validator to catch missing and duplicate values. Read how to fix Merchant Center errors for the rest.
Variants on Facebook and Pinterest
Meta and Pinterest use item_group_id the same way, so a correct Google feed usually works there too. See one product feed for multiple channels.
A worked example: one T-shirt
A T-shirt in three colours (black, white, navy) and three sizes (S, M, L) becomes nine feed rows. Each row has a unique id such as TS-BLK-S and the same item_group_id, TS-CLASSIC. Each row also has its own colour, size, GTIN and stock status. Each link opens the product page with that colour and size selected, and each image shows the right colour. If the navy large sells out, only that one row changes to out of stock.
Checklist before uploading
- Unique id per variant.
- Shared item_group_id across the group.
- Variant attributes filled (colour, size and so on).
- Variant-specific link, image, price and availability.
- Separate valid GTIN per variant.
Related guides
More free tools: browse all our free ecommerce tools, no sign-up needed.
Frequently asked questions
What is item_group_id?
A shared value that tells Google which product rows are variants of the same product.
Should each variant have its own URL?
Each variant should link to a URL that shows that variant selected, often via a parameter on the main product URL.
Do variants need different GTINs?
Usually yes. Each size and colour combination normally has its own barcode.
Can I list only the main product?
You can, but listing variants lets your products match specific searches like colour and size.