Product Structured Data: A Practical Guide to Google Rich Results
Check existing markup, add accurate Product and Offer JSON-LD, and validate your product pages for Google product snippets and merchant listings.

Start with the product page you actually sell from
Product structured data describes a product in a format search engines can read. It does not replace the title, photos, price or buying information customers see. Start with one public product detail page, then check whether its visible information and structured data agree.
Google distinguishes product snippets, which can enrich ordinary search results, from merchant listings, which support shopping experiences for pages where customers can buy from you. A store product page can qualify for both. A review article that does not sell the product should follow the product snippet guidance instead.
This guide uses a single product with one offer. It is not a complete implementation for variants, subscriptions or a marketplace with multiple sellers.
1. Inspect your theme and apps before adding markup
Open a representative product URL in Google's Rich Results Test. Review the detected Product items and their properties. Also inspect the rendered page or source for application/ld+json, Product and Offer: a theme, commerce platform or SEO app may already generate them. Structured data can also use Microdata or RDFa, so a JSON-LD search alone is not a complete audit.
Identify which theme or app owns the existing output. If it already describes the correct product, update that implementation rather than pasting another Product block beside it. Multiple structured-data items are not automatically wrong, but conflicting prices, identities or availability make maintenance harder.
Record the product URL, displayed name, primary image, selling price, currency and stock state. Check a sale item and an out-of-stock item as well as your first example. On a marketplace, confirm what the platform lets sellers control; editing a listing description is not the same as editing the page's structured data.
2. Map real product fields to Product and Offer
For a merchant listing, Google's required Product properties include name, image and offers. The nested Offer needs a current price and currency; merchant listing prices must be greater than zero. Use an ISO 4217 currency code such as USD, rather than a dollar symbol.
Populate these values from your store's product data. Availability should reflect whether a customer can buy that item now. Use identifiers, brand, shipping details and return policies only when you can supply the actual information. Never invent reviews, aggregate ratings or a GTIN to fill a validator warning.
The Copywriter can do this for your store.
Rewrites titles, descriptions and bullets from what shoppers search.
Score my products freeIllustrative JSON-LD for one product
The product and image URLs below are example.com placeholders. The mug, price and stock state are fictional. Replace them with your own public product and image URLs and matching store data before use. Keep the schema.org vocabulary URLs unchanged.
{
"@context": "https://schema.org",
"@type": "Product",
"@id": "https://example.com/products/blue-ceramic-mug#product",
"name": "Blue ceramic mug, 350 ml",
"image": ["https://example.com/images/blue-ceramic-mug.jpg"],
"description": "A blue ceramic mug with a 350 ml capacity.",
"offers": {
"@type": "Offer",
"url": "https://example.com/products/blue-ceramic-mug",
"price": "29.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
}
}
Have your theme or app emit the JSON inside a script element with type application/ld+json on the relevant product page. Do not paste the sample into a product description and assume it becomes working markup. The image URL must resolve to a representative image Google can crawl. The product page must remain accessible to Google without a login or indexing block.
The sample includes required fields for this simple merchant offer, but it omits optional enhancements such as shipping and returns. Read the current merchant listing property reference for your implementation. Resolve critical errors first; review recommendations against your actual business rather than adding invented values.
3. Keep markup aligned with what customers see
A customer should find the same name, currency, price and availability on the page. When a promotion ends or stock runs out, update both the visible page and the structured data. If your store caches product pages, check the public result after the update, not just the admin form.
For variants, make sure the URL, selected option, image and offer refer to the same purchasable item. Do not reuse this single-product example unchanged for a more complex catalog model. Avoid a generic Product block on category pages that describes no specific item.
Dondo can help draft product content for your review before publishing. Manage structured data through the theme or app responsible for it, using the final product information.
4. Validate before rolling out across the catalog
- Test the proposed code in the Rich Results Test and fix critical errors. A passing test checks eligibility requirements, not every factual claim.
- Publish on a small set of representative product pages. Test their public URLs again so you verify the output customers and Google receive.
- Use Search Console's URL Inspection tool to inspect Google's view and test access. Request indexing after meaningful changes where appropriate; a request does not guarantee immediate crawling.
- Review the Product snippets or Merchant listings reports when Search Console detects those item types. Investigate affected URLs, fix the shared template if needed, and validate the fix in the relevant report.
- Recheck after theme changes, app changes, sales and inventory updates.
Follow Google's structured-data quality guidelines: markup must represent the page truthfully. Valid structured data does not guarantee a rich result, a ranking improvement or inclusion in an AI answer. The useful outcome is accurate, maintainable product information that both shoppers and search systems can understand.
The Copywriter can do this for your store.
Rewrites titles, descriptions and bullets from what shoppers search.
Score my products freeRelated Posts
Ecommerce and Dropshipping GuideAEO explained: How the new AI search works
Help shoppers find useful answers with clear product facts and consistent catalog information.
5 min read
Ecommerce and Dropshipping GuideShopify product SEO checklist
A practical, evidence-backed guide to Shopify product SEO checklist.
2 min read
Ecommerce and Dropshipping GuideCommon ecommerce product-data problems
A practical, evidence-backed guide to common ecommerce product-data problems.
2 min read
Ecommerce and Dropshipping GuideSEO vs AEO: And how to optimize your products for both
Compare SEO and AEO, then improve product titles, descriptions and buyer answers using verified product facts.
6 min read