Basic Product schema works fine for a single simple item. It starts generating invalid-structured-data warnings once variants (size, colour, material), regional currencies, and out-of-stock states enter the picture — which is most real e-commerce catalogues.
Use ProductGroup, not repeated Product blocks
Rather than generating a separate Product object for every variant combination on a page, use ProductGroup to link individual variant nodes under one parent:
{
"@context": "https://schema.org",
"@type": "ProductGroup",
"name": "Technical SEO Running Shoes",
"url": "https://example.com/shoes/pro-runner",
"variesBy": ["https://schema.org/size", "https://schema.org/color"],
"hasVariant": [
{
"@type": "Product",
"sku": "RUN-RED-10",
"name": "Technical SEO Running Shoes - Red / Size 10",
"color": "Red",
"size": "10",
"offers": {
"@type": "Offer",
"price": "120.00",
"priceCurrency": "GBP",
"availability": "https://schema.org/InStock",
"url": "https://example.com/shoes/pro-runner?color=red&size=10"
}
}
]
}Pricing and stock details worth getting right
Use ISO 8601 formatting for priceValidUntil. And when stock hits zero, update availability to OutOfStock rather than deleting the Offer block — removing the offer entirely tends to remove rich-result pricing eligibility along with it, which is usually the opposite of what you want.
Related articles
Schema Markup for SEO: The Complete Practitioner's Guide
Rich snippets get the attention, but entity disambiguation is the bigger reason schema markup matters — especially as AI Overviews take a growing share of search.
JSON-LD vs Microdata vs RDFa: Which Should You Actually Use?
All three formats validate identically. The real difference is which one survives your next template redesign without silently breaking.
Does Schema Markup Help with Google AI Overviews?
Schema markup doesn't earn a citation on its own — it removes friction in the retrieval process that decides which pages are confident enough to cite.
Organization Schema: The Full Property Guide
Organization schema is the entity everything else on your site references. Get it right once, and every other type inherits a stable identity to point back to.

Written by
Paul Lovell
International SEO Consultant & Founder of Always Evolving SEO. 15+ years running technical audits, log-file analysis, and root-cause fixes for multimillion-dollar businesses — speaker at SMX London, Search & Content Summit, and SEMrush events.