Product schema generator
Generate Product markup that covers both of Google's product experiences: product snippets (ratings and price under a result) and merchant listings (Shopping surfaces).
All Google-required properties present. That makes the page eligible, not guaranteed. Google's docs
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Trailhead 2 waterproof hiking boot",
"description": "Full-grain leather mid boot with a waterproof membrane and a Vibram outsole.",
"image": [
"https://example.com/img/trailhead2-1x1.jpg",
"https://example.com/img/trailhead2-4x3.jpg"
],
"brand": {
"@type": "Brand",
"name": "Example Outfitters"
},
"sku": "TH2-BRN-42",
"gtin": "0123456789012",
"offers": {
"@type": "Offer",
"url": "https://example.com/p/trailhead-2",
"price": 149,
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30
},
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": 0,
"currency": "USD"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US"
}
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.6,
"ratingCount": 212,
"reviewCount": 87
}
}
</script>When to use Product markup
- A page that sells one product, or one product with variants.
- Review pages about a single product (use review or aggregateRating instead of offers).
- Not for category pages listing many products.
Getting it right
- Product snippets need a name plus at least one of offers, review or aggregateRating.
- Merchant listings additionally need an image and an Offer with price and priceCurrency. Prices are plain numbers: 149.00, not $149.
- Add a return policy and shipping details at offer level, or configure them once in Merchant Center or with Organization markup.
- Only mark up ratings that shoppers can see on the page. Google's review snippet guidelines forbid invented or incentivised reviews that aren't disclosed.
- Use a GTIN whenever the product has one; it helps Google match your offer to the product.
Source: Google Search Central, Product snippet structured data documentation, and schema.org/Product.
Google's property list
| Property | Google says |
|---|---|
name | required |
review or aggregateRating or offers | required |
aggregateRating | recommended |
offers | recommended |
review | recommended |
Example output
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Trailhead 2 waterproof hiking boot",
"description": "Full-grain leather mid boot with a waterproof membrane and a Vibram outsole.",
"image": [
"https://example.com/img/trailhead2-1x1.jpg",
"https://example.com/img/trailhead2-4x3.jpg"
],
"brand": {
"@type": "Brand",
"name": "Example Outfitters"
},
"sku": "TH2-BRN-42",
"gtin": "0123456789012",
"offers": {
"@type": "Offer",
"url": "https://example.com/p/trailhead-2",
"price": 149,
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30
},
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": 0,
"currency": "USD"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US"
}
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.6,
"ratingCount": 212,
"reviewCount": 87
}
}Product schema questions
What is the difference between product snippets and merchant listings?
Product snippets are the richer text results (stars, price) for pages about a product. Merchant listings power shopping experiences and require a purchasable offer with price, currency and image. The same Product markup can qualify for both.
Why does Search Console say "Missing field priceValidUntil"?
It is a recommended property, so it shows as a non-critical warning. Add it if the price genuinely expires; otherwise it is safe to leave out.
Can I add star ratings for my own products?
Yes, if the ratings come from real customers and are visible on the page. Ratings you write yourself, or ones pulled from another site, break Google's guidelines.