ProductGroup schema markup enables product variant rich results in Google Shopping — allowing you to represent a product with multiple variants (different sizes, colors, or configurations) as a single structured entity. A ProductGroup links to individual Product variants via hasVariant and specifies which attributes vary via variesBy.
| Property | Type | Description |
|---|---|---|
namerich result | string | The name of the product group. |
hasVariantrich result | Product array | The individual product variants. Each variant is a Product. |
variesByrich result | string | The property that differs between variants (e.g. 'size', 'color'). |
Missing recommended properties generate warnings. They won't block validation, but rich result-tagged properties are needed for full Google rich result eligibility.
| Property | Type | Description |
|---|---|---|
description | string | A description of the product group. |
image | URL or ImageObject | A representative image for the product group. |
brand | Organization | The brand of the product. |
sku | string | A base SKU for the product group. |
url | URL | The canonical URL of the product group page. |
Rich result type: Product variants rich result in Google Shopping
Requirements: Required: name, hasVariant (array of Product schemas), and variesBy (the property that differs between variants, e.g. 'size', 'color').
{
"@context": "https://schema.org",
"@type": "ProductGroup",
"name": "Ergonomic Office Chair",
"description": "Adjustable office chair available in three colors.",
"url": "https://example.com/products/ergonomic-chair",
"variesBy": "color",
"hasVariant": [
{
"@type": "Product",
"name": "Ergonomic Office Chair — Black",
"color": "Black",
"sku": "CHAIR-BLK",
"offers": {
"@type": "Offer",
"price": "299",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
},
{
"@type": "Product",
"name": "Ergonomic Office Chair — Gray",
"color": "Gray",
"sku": "CHAIR-GRY",
"offers": {
"@type": "Offer",
"price": "299",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
]
}Validate this schema against Google's requirements in one API call:
curl "https://schemacheck.dev/api/v1/validate" \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonld":{"@context":"https://schema.org","@type":"ProductGroup","name":"Ergonomic Office Chair","description":"Adjustable office chair available in three colors.","url":"https://example.com/products/ergonomic-chair","variesBy":"color","hasVariant":[{"@type":"Product","name":"Ergonomic Office Chair — Black","color":"Black","sku":"CHAIR-BLK","offers":{"@type":"Offer","price":"299","priceCurrency":"USD","availability":"https://schema.org/InStock"}},{"@type":"Product","name":"Ergonomic Office Chair — Gray","color":"Gray","sku":"CHAIR-GRY","offers":{"@type":"Offer","price":"299","priceCurrency":"USD","availability":"https://schema.org/InStock"}}]}}'100 free validations/month. No credit card required.