Technical Definition & Architecture

Shopify stores frequently struggle with variant indexing. When an item comes in multiple sizes and colorways, naive theme templates often output conflicting Product schemas on the same URL, triggering 'Duplicate schema' warnings in Google Search Console.

The modern solution defined by Google and schema.org is ProductGroup. The parent object represents the overarching product concept with a productGroupID, while individual variant child items are declared under the hasVariant array.

Smart Schema structures complex Shopify variant matrices into clean ProductGroup hierarchies, allowing search engines to index individual SKUs and prices accurately without tripping duplication filters.

Syntax Example for Shopify JSON-LD

{
  "@context": "https://schema.org",
  "@type": "ProductGroup",
  "name": "Classic Merino Crewneck",
  "productGroupID": "CREW-001",
  "variesBy": ["https://schema.org/size", "https://schema.org/color"],
  "hasVariant": [
    {
      "@type": "Product",
      "sku": "CREW-001-S-BLK",
      "offers": { "@type": "Offer", "price": "120.00" }
    }
  ]
}
Automate Google Compliance with Smart Schema Pro

Stop editing raw liquid theme templates. Smart Schema injects verified, error-free structured data server-side in 60 seconds.

Start 14-Day Free Trial

Frequently Asked Questions

When should an e-commerce store use ProductGroup instead of Product?

Use ProductGroup whenever a product page contains selectable options (size, color, material) where each combination possesses its own SKU, price, or barcode.