S SCHEMA.BIZ
Product Extends: Thing

Product Schema Markup

Product is the essential schema type for e-commerce. It enables Google to display rich product snippets with pricing, availability, and review ratings directly in search results — dramatically improving click-through rates for product pages.

Eligible Rich Results

Product Rich Result Product Snippet Merchant Listing Shopping Tab

When to Use Product

E-commerce product pages Marketplace listings Digital products Physical goods Product comparisons

Properties

Property Type Status Description
name Text required The product name.
image URL or ImageObject required Product image(s). Google recommends multiple angles.
description Text recommended Product description.
brand Brand or Organization recommended The brand name.
offers Offer or AggregateOffer required Pricing and availability information.
sku Text recommended Stock keeping unit identifier.
gtin Text recommended Global Trade Item Number (UPC, EAN, ISBN).
mpn Text optional Manufacturer Part Number.
aggregateRating AggregateRating recommended Overall customer rating.
review Review recommended Individual customer reviews.
url URL recommended Product page URL.
color Text optional Product color.
material Text optional Product material.
weight QuantitativeValue optional Product weight.

JSON-LD Examples

E-commerce Product with Reviews

A product listing with pricing, availability, and aggregate rating.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Ultra Comfort Running Shoes",
  "image": [
    "https://shoes.com/ultra-1.jpg",
    "https://shoes.com/ultra-2.jpg"
  ],
  "description": "Lightweight running shoes with responsive cushioning and breathable mesh upper.",
  "brand": {
    "@type": "Brand",
    "name": "RunFast"
  },
  "sku": "RF-UC-2024-BLK",
  "gtin13": "0123456789012",
  "offers": {
    "@type": "Offer",
    "url": "https://shoes.com/ultra-comfort",
    "price": "129.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2024-12-31",
    "itemCondition": "https://schema.org/NewCondition"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "284",
    "bestRating": "5"
  }
}

Product with Multiple Offers

A product available from multiple sellers with varying prices.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Organic Coffee Beans - 1lb Bag",
  "image": "https://coffeeco.com/organic-beans.jpg",
  "brand": {
    "@type": "Brand",
    "name": "Mountain Roast"
  },
  "offers": {
    "@type": "AggregateOffer",
    "lowPrice": "12.99",
    "highPrice": "18.99",
    "priceCurrency": "USD",
    "offerCount": "3",
    "availability": "https://schema.org/InStock"
  }
}

Common Mistakes

Putting price directly on the Product object instead of inside an Offer.

Using price: '$29.99' with the currency symbol — price must be a plain number ('29.99') with a separate priceCurrency.

Using short availability values like 'InStock' instead of the full URL 'https://schema.org/InStock'.

Missing priceCurrency — Google requires it alongside price.

Not including a GTIN/UPC when one exists — this helps Google match your product to its database.

Complete Guide to Product Schema Markup

Product schema markup is essential for any e-commerce site. It enables Google to display rich product snippets with pricing, availability, and star ratings directly in search results — features that can dramatically improve click-through rates. Studies show that products with rich results receive up to 30% more clicks than standard listings.

The Offer object within Product is where most of the magic happens. It must include price (as a plain number without currency symbols), priceCurrency (ISO 4217 code like USD), and availability (using the full schema.org URL like https://schema.org/InStock). Without all three, Google won't display the product snippet.

For products sold by multiple retailers or in multiple variants, use AggregateOffer instead of Offer. This lets you specify a price range with lowPrice and highPrice, along with the number of offers available.

Product identifiers (GTIN, UPC, EAN, ISBN, MPN) are increasingly important. Google uses these to match your product to its product database, which can unlock additional features like the Shopping tab, price comparison, and Google Shopping free listings. Always include the most specific identifier available.

The aggregateRating property shows star ratings in search results. Google requires ratingValue plus either ratingCount or reviewCount. Note that review markup must represent real customer reviews — Google explicitly prohibits fabricated or incentivized reviews in structured data.

Related Types

Ready to Create Product Markup?

Use our free generator to create valid Product JSON-LD markup with a visual form. No coding required.

Open Generator