Product Variants for Size and Color, Without a Separate Product for Each
Product variants are the specific versions of one product. Shopify's definition is a combination of option values: a small blue shirt is one variant, not a separate product and not "the blue shirts" as a group [1]. If you sell size and color, each pair is its own row, with its own inventory.
What happens to price and inventory when you add variants?
Shopify says that once a product has variants, price, inventory, and shipping move off the main product details page and onto the variants [2]. You change those on the variant, not on a single price field that is supposed to cover every size. Inventory is managed per variant [1].
Can you hide extra facts on the variant and show them to customers?
Not with variant metafields, at the time of Shopify's current help page. You can store specialized information on the variant, and that page says product variant metafields cannot be displayed to customers at this time [1]. If the care label or the fit note has to be seen, put it in a field the theme actually prints. Category metafields can be connected to options so you are not retyping the same list on every product [1].
What if you wanted each color to be its own product?
Shopify Plus stores can use Combined Listings to merge separate products into one listing [1]. Everyone else is in the variant model above. Splitting every color into a new product duplicates the description and splits the inventory story. Do that only when the colors are honestly different products, not when they are options.
How does Google tell those variants apart?
With ProductGroup markup: variesBy, hasVariant, and a productGroupID, plus Product markup on the variants. Google says that grouping is what lets it understand which products are variations of one parent, and both product snippets and merchant listings can use it [3] [4]. Each variant needs a unique ID, such as a sku or a gtin. Each group needs its own ID [4].
Does each size and color need its own URL?
Yes. Google says the site has to be able to preselect each variant with a distinct URL, including query parameters, so the crawler can see the right image, price, and availability and so a shopper could add that variant to the cart [4]. A color that only exists after a click, with no URL of its own, is invisible to that crawl. On a single-page product, Google wants one canonical URL for the group, usually the base URL with nothing preselected [4].
What if the same shirt also exists at three filtered URLs?
Sorting and filtering a category often creates extra URLs of the same content. Google says that kind of duplicate is normal and is not, by itself, a spam violation. It also says a canonical is a hint. Google can cluster similar pages and choose a different URL than the one you marked [5]. Give each real variant a stable URL. Do not also create a new indexable page for every sort order of the collection.
What should the photo for that variant be?
An img with a src Google can fetch, not only a background in CSS [6]. The variant guide's point is that preselecting the variant shows the right image [4]. If every color shares one filename, the URL did not preselect anything. Alt text should describe that photo, not a string of keywords [6].
- One variant — one combination, such as small and blue.
- Inventory — counted on that variant.
- A URL — that opens the right color, price, and stock.
- A unique ID — sku or gtin on each variant, and an ID on the group.
- A photo — of that combination, in an img tag.
What if the markup is only injected by JavaScript?
Google says that for merchants who want shopping results, Product markup in the initial HTML is the better path, and JavaScript-generated product markup can make shopping crawls less frequent and less reliable for price and availability [4]. If the variant data only appears after a script runs, do not assume the crawler saw every size.
Where does this sit in the store?
It is ordinary Shopify setup, and it is the difference between a clean catalog and a pile of near-duplicate products. The store build should decide the options before the theme is skinned. If you are still choosing a platform, how to choose one matters less than whether it can hold a variant with its own stock. Fashion sites feel this first, which is why the features that convert include the thing the shopper actually selects.
What should you fix on one product this week?
Pick one shirt with two colors and three sizes. Confirm you have six variants, not two products and not one product with a note in the description [1]. Open a URL for one of them and check that the photo, the price, and the stock match that combination [4]. If the only way to see the second color is a click that does not change the address bar, add the URL.
Sources & references
- Shopify Help Center: Variants.
- Shopify Help Center: Product details.
- Google Search Central: Intro to Product structured data.
- Google Search Central: Product variant structured data.
- Google Search Central: URL canonicalization.
- Google Search Central: Google image SEO best practices.
Shopify's variant screen and Google's variant markup are updated on the linked pages. Check both before you remodel a catalog.
If every color is its own product and inventory is a mess, we can look at how the variants are set up.
Talk to us arrow_right_alt