What are Product Snippets? #
Product snippets are enhanced search results that show extra product info like price, availability, ratings, and reviews directly in Google Search text results.
When to Use Product Snippet Markup? #
Use Product structured data on pages focused on a single product or product variants (not category or listing pages).
- If customers can’t buy directly on your page (e.g., editorial review), use Product Snippet markup.
- If customers can purchase directly, consider Merchant Listing markup instead.
How to Add Product Snippet Structured Data #
1. Add Required Properties #
At minimum, your Product structured data must include:
- name (product name)
- At least one of:
- review (detailed product review)
- aggregateRating (average rating summary)
- offers (price & availability info)
- review (detailed product review)
2. Recommended Properties #
- aggregateRating (average rating + review count)
- offers (price, currency, availability)
- review (detailed user/editorial reviews with optional pros/cons)
Example of Product with Review (JSON-LD): #
{
“@context”: “https://schema.org/”,
“@type”: “Product”,
“name”: “Executive Anvil”,
“description”: “Sleeker than ACME’s Classic Anvil, perfect for travelers.”,
“review”: {
“@type”: “Review”,
“reviewRating”: {
“@type”: “Rating”,
“ratingValue”: 4,
“bestRating”: 5
},
“author”: {
“@type”: “Person”,
“name”: “Fred Benson”
}
},
“aggregateRating”: {
“@type”: “AggregateRating”,
“ratingValue”: 4.4,
“reviewCount”: 89
}
}
Example of Editorial Review with Pros and Cons: #
{
“@context”: “https://schema.org”,
“@type”: “Product”,
“name”: “Cheese Grater Pro”,
“review”: {
“@type”: “Review”,
“name”: “Cheese Knife Pro review”,
“author”: {
“@type”: “Person”,
“name”: “Pascal Van Cleeff”
},
“positiveNotes”: {
“@type”: “ItemList”,
“itemListElement”: [
{“@type”: “ListItem”, “position”: 1, “name”: “Consistent results”},
{“@type”: “ListItem”, “position”: 2, “name”: “Still sharp after many uses”}
]
},
“negativeNotes”: {
“@type”: “ItemList”,
“itemListElement”: [
{“@type”: “ListItem”, “position”: 1, “name”: “No child protection”},
{“@type”: “ListItem”, “position”: 2, “name”: “Lacking advanced features”}
]
}
}
}
Example of Shopping Aggregator Product with Offers: #
{
“@context”: “https://schema.org/”,
“@type”: “Product”,
“name”: “Executive Anvil”,
“image”: [
“https://example.com/photos/1×1/photo.jpg”,
“https://example.com/photos/4×3/photo.jpg”,
“https://example.com/photos/16×9/photo.jpg”
],
“description”: “Sleeker than ACME’s Classic Anvil, perfect for travelers.”,
“sku”: “0446310786”,
“mpn”: “925872”,
“brand”: {
“@type”: “Brand”,
“name”: “ACME”
},
“review”: {
“@type”: “Review”,
“reviewRating”: {
“@type”: “Rating”,
“ratingValue”: 4,
“bestRating”: 5
},
“author”: {
“@type”: “Person”,
“name”: “Fred Benson”
}
},
“aggregateRating”: {
“@type”: “AggregateRating”,
“ratingValue”: 4.4,
“reviewCount”: 89
},
“offers”: {
“@type”: “AggregateOffer”,
“offerCount”: 5,
“lowPrice”: 119.99,
“highPrice”: 199.99,
“priceCurrency”: “USD”
}
}
Key Guidelines to Follow #
- Mark up only pages for single products or their variants (not broad category pages).
- Use distinct URLs for product variants or products offered in different currencies.
- Include either review, aggregateRating, or offers — at least one is required.
- For editorial pros and cons, use positiveNotes and negativeNotes under Review.
- If you include offers, specify price, priceCurrency (ISO 4217 format), and availability (e.g., InStock, OutOfStock).
- Avoid spammy content or markup — follow Google’s structured data and content guidelines strictly.
- Validate your structured data with Google’s Rich Results Test.
Monitoring & Troubleshooting #
- Use Google Search Console to monitor errors and performance of your product markup.
- Fix any errors or warnings promptly to maintain eligibility for rich results.
- Allow several days after publishing for Google to crawl and update rich results.