Schema markup is one of the most direct levers for improving click-through rates in ecommerce. A product listing with star ratings, price, and availability visible in the SERP gets more clicks than a plain blue link — full stop. Yet most ecommerce stores either don't implement schema or implement it incorrectly.
Here's how to do it right.
What Product Rich Results Look Like
When you implement product schema correctly, Google can show your product pages with rich results that include:
- Star rating and review count
- Price and currency
- Availability status (In Stock / Out of Stock / Pre-Order)
- Shipping price or free shipping badge
- Returns policy summary
These rich results are shown for product pages — not category pages, not blog posts, not homepages. Each individual product page needs its own Product schema implementation.
Product Schema: Required and Recommended Fields
According to Google Search Central's product structured data documentation, the required fields to be eligible for rich results are:
name— The product nameimage— URL(s) of product images
To show price and availability in search results, you also need:
offerswithprice,priceCurrency, andavailability
To show star ratings:
aggregateRatingwithratingValueandreviewCount
Recommended additional fields:
descriptionskuormpn(GTIN is particularly valuable for Google Shopping)brandreview(individual reviews)
JSON-LD Implementation
Always use JSON-LD for schema markup — it's Google's recommended format and doesn't require modifying HTML structure. Here's a complete Product schema example:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Nike Air Max 270 Men's Running Shoes",
"image": [
"https://example.com/images/air-max-270-1.webp",
"https://example.com/images/air-max-270-2.webp"
],
"description": "The Nike Air Max 270 features the brand's biggest heel Air unit yet for a super-soft ride.",
"brand": {
"@type": "Brand",
"name": "Nike"
},
"sku": "AIR-MAX-270-WHT-10",
"offers": {
"@type": "Offer",
"url": "https://example.com/products/nike-air-max-270",
"priceCurrency": "AUD",
"price": "219.99",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "183"
}
}
</script>
BreadcrumbList Schema
BreadcrumbList schema shows your site's category hierarchy in search results. This is particularly valuable for ecommerce because it helps searchers understand where a product sits in your catalogue before clicking.
Example SERP breadcrumb output: YourStore > Running Shoes > Nike > Air Max 270
Implement BreadcrumbList on every product and category page. Most SEO plugins (Yoast, RankMath) generate this automatically if you enable breadcrumb display on your theme — but verify it's outputting correctly with Google's Rich Results Test.
FAQPage Schema on Product Pages
Adding an FAQ section to product pages and marking it up with FAQPage schema can earn extended SERP real estate — the dropdown FAQ questions visible directly in search results.
This works best for high-consideration products where customers have multiple questions before buying (electronics, furniture, supplements, appliances). Keep FAQ answers concise and direct — Google truncates long answers in the SERP display.
Testing and Validation
After implementing schema, always validate:
- Google Rich Results Test — search.google.com/test/rich-results — Tests a URL and shows exactly what rich results are eligible
- Google Search Console > Rich Results — Aggregate report showing errors and valid items across your site
- Schema Markup Validator — schema.org/validator for checking schema syntax
Common errors to watch for: missing required fields, incorrect @type values, price without currency, availability using a text string instead of the schema.org URL format.
Platform-Specific Notes
Shopify: Generates basic Product schema by default via the Liquid theme. Usually requires customisation to add aggregateRating (Shopify doesn't expose review data to schema automatically). Use a reviews app that includes schema output (Judge.me, Okendo).
WooCommerce: Yoast SEO WooCommerce extension generates Product schema automatically. Verify it's outputting all required fields — earlier versions missed availability and priceCurrency in some configurations.
Custom platforms: Implement JSON-LD manually. Consider a schema management layer if you have thousands of products, to avoid per-template maintenance.
Frequently Asked Questions
Does product schema directly improve rankings?
Schema markup is not a direct ranking factor — Google has confirmed this. However, rich results improve CTR, and higher CTR correlates with better rankings over time. The indirect benefit is real and measurable. For ecommerce, product schema is non-negotiable — the CTR lift from showing price, availability, and ratings in the SERP is too significant to ignore.
Can I show star ratings in search results without customer reviews?
No. Google requires actual customer reviews to show aggregateRating in search results. Self-assigned ratings or editorial ratings don't qualify. You need genuine customer-submitted reviews, either collected on your site or pulled from a verified third-party platform.
How long does it take for product schema to show as rich results after implementation?
Typically 1-4 weeks after Google recrawls and reindexes the page. You can speed this up by requesting indexing via Google Search Console. Verify eligibility first in Rich Results Test — if the test shows the page is eligible, it will show in results once recrawled.