"Product" schema

Last updated 13 May 2026 2 min

Product schema describes a physical or digital product offered for sale. It's the backbone of e-commerce structured data and one of the most rewarding schema types to implement — Google's product rich results, merchant listings, and Shopping experiences all rely on it.

When to use it

Apply Product markup on every product detail page. Don't apply it to category pages (use CollectionPage with an ItemList instead) or to pages that mention a product but aren't selling it.

For variants (sizes, colours), use ProductGroup with nested Product entries that vary by size, color, etc.

Key properties

Required or strongly recommended:

  • name – product name
  • image – one or more high-quality images
  • description – product description
  • sku / mpn / gtin – product identifiers
  • brandBrand
  • offers – an Offer or AggregateOffer with pricing (see the Offer article)
  • aggregateRating – overall rating (only if reviews are visible on the page)
  • review – individual reviews

For merchant listings specifically, Google also looks at shippingDetails, hasMerchantReturnPolicy, and accurate stock availability via Offer.availability.

## Example (JSON-LD)

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Strider Pro Trail Runner – Men's Size 10",
  "image": [
    "https://example.com.au/products/strider-pro-trail-black-1.jpg",
    "https://example.com.au/products/strider-pro-trail-black-2.jpg"
  ],
  "description": "Lightweight trail running shoe with Vibram outsole and breathable mesh upper. Built for technical terrain.",
  "sku": "STRD-PRO-M10-BLK",
  "gtin13": "9312876543210",
  "brand": {
    "@type": "Brand",
    "name": "Ridgeline Footwear"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com.au/products/strider-pro-trail-runner",
    "priceCurrency": "AUD",
    "price": "189.00",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "priceValidUntil": "2026-12-31"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "94"
  }
}

SEO value

  • Eligibility for Google's product rich results (price, rating, availability in SERPs)
  • Eligibility for free merchant listings in the Shopping tab
  • Inclusion in Google Shopping graph for connected entity understanding
  • Better display in Google Lens, Discover, and Images
  • Critical signal for shopping-oriented AI features

Product schema best practices

  • Provide a globally unique identifier (gtin, mpn, or sku) to improve merchant listing eligibility
  • Only use aggregateRating if reviews are genuinely displayed and freshly aggregated
  • Keep availability accurate in real time as outdated stock data may lead to the schema being ignored.
  • Use priceValidUntil to signal price freshness
  • For multi-variant products, model variants properly with ProductGroup rather than duplicating Product blocks

Disclaimer: All information contained herein is for informational purposes only. It is not advice or instructional.