Product Schema for Ecommerce: A Complete Guide With Examples
How to add Product, Offer, review, shipping and return policy structured data to an online store, keep it in sync with Merchant Center, and test it.
- Product structured data tells search engines the name, price, availability, brand and reviews of a product in a format they can read without guessing.
- Google supports two kinds of product rich results: product snippets for review-style pages and merchant listings for pages where the product can be bought.
- Include identifiers (brand, GTIN or SKU), offers, reviews, shipping details and return policy for the best eligibility.
- The data in your markup, on the page and in Merchant Center should match. Mismatches cost visibility.
On this page7 sections
Product schema is structured data that describes each product in a format search engines can read without guessing: its name, image, brand, identifiers, price, availability, reviews, shipping and returns. It makes products eligible for rich results in Google, keeps Google Shopping accurate and gives AI shopping assistants the details they need to match products to questions.
What kinds of product rich results are there?
Google documents two types:
- Product snippets for pages that review or discuss a product, showing ratings and price ranges.
- Merchant listings for pages where a shopper can buy the product, which can show price, availability, shipping and returns, and appear in shopping experiences across Google.
Most online stores should aim for merchant listing eligibility on product pages.
Which properties should you include?
| Property | Why it matters |
|---|---|
name, image, description |
The basics every product needs |
brand |
Helps match brand searches and comparisons |
gtin, mpn or sku |
Identifies the exact product across sellers |
offers.price, priceCurrency |
Price shown in results |
offers.availability |
In stock, out of stock, preorder |
offers.itemCondition |
New, used or refurbished |
aggregateRating, review |
Review stars and trust |
shippingDetails |
Delivery cost and time to each country |
hasMerchantReturnPolicy |
Return window and method |
What does a complete example look like?
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Oud Noir Eau de Parfum 100 ml",
"image": ["https://yourstore.com/images/oud-noir-100ml.jpg"],
"description": "A long-lasting oud with amber and smoked wood.",
"sku": "OUD-NOIR-100",
"gtin13": "0000000000000",
"brand": { "@type": "Brand", "name": "Your Brand" },
"aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "reviewCount": "412" },
"offers": {
"@type": "Offer",
"url": "https://yourstore.com/products/oud-noir",
"priceCurrency": "USD",
"price": "128.00",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "GB" },
"shippingRate": { "@type": "MonetaryAmount", "value": "0", "currency": "USD" }
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "GB",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30
}
}
}
Replace the placeholder GTIN with the real barcode number. Delivery times can be added with deliveryTime, and Google also supports shipping and return policies defined once at the organisation level instead of on every product.
How do you handle variants?
If sizes or colours share one URL, you can describe them with ProductGroup and hasVariant, with each variant listing its own SKU, price and availability. If each variant has its own URL, each page gets its own Product markup. Either way, the price and availability in the markup should match what the shopper sees.
How do you keep schema, pages and feeds in sync?
The most common problem we find is not missing markup but mismatched data: a sale price on the page, the old price in the markup and a third price in Merchant Center. Generate all three from the same source (your platform’s product data) rather than hard-coding values in a theme or plugin.
How do you test product schema?
- Rich Results Test for a single URL, to see eligibility and warnings.
- Search Console enhancements reports for Product snippets and Merchant listings, to see errors across the store.
- Merchant Center diagnostics, to spot price or availability mismatches between feed and page.
Does product schema help with AI search?
AI assistants lean on structured product data to answer detailed questions: size, material, price, delivery and returns. Complete markup does not guarantee a recommendation, but thin or wrong data makes one unlikely. See how to get products into ChatGPT Shopping.
Structured data is one piece of ecommerce SEO. For the full process, read our ecommerce SEO guide or see our ecommerce SEO services.
Frequently asked questions
What is product schema?
Product schema is structured data, usually written in JSON-LD, that describes a product in a standard vocabulary from schema.org: its name, image, brand, identifiers, price, availability, reviews, shipping and returns.
Does product schema improve rankings?
Structured data is not a direct ranking factor, but it makes products eligible for rich results such as price and review stars, which can lift click-through rates. It also gives Google Shopping and AI assistants accurate product details.
Should I use JSON-LD or microdata?
Google supports both, but recommends JSON-LD because it is easier to maintain and does not have to be woven into the HTML.
Do Shopify and WooCommerce add product schema automatically?
Most themes and SEO plugins add basic Product markup. It is often missing brand, GTIN, shipping details and return policy, so check it with Google's Rich Results Test.
Sources
- Google Search Central: Introduction to Product structured data
- Google Search Central: Merchant listing structured data
- Google Search Central: Product snippet structured data
- Google Search Central: Shipping policy structured data
- Google Search Central: Return policy structured data
- Google Merchant Center: Product data specification
