Product schema is structured data that tells Google what a product page is selling, so the search result can show price, availability, and review stars instead of a plain blue link. Add it as a block of JSON-LD in the page head or body. Here is exactly what goes in it, the rules Google enforces, and how to check that it works.
What Product schema includes
Product schema uses JSON-LD with "@type": "Product". The core fields are:
- name: the product title, matching the visible page.
- image: one or more image URLs.
- description: a short product description.
- brand: the manufacturer or brand, usually as a nested
Brandobject. - sku: your stock keeping unit or product code.
The part that drives rich results lives in the nested offers object. An Offer needs:
- price: the numeric price, like
29.99. - priceCurrency: the ISO currency code, like
USD. - availability: a schema.org URL such as
https://schema.org/InStockorhttps://schema.org/OutOfStock.
You can also add aggregateRating (average score plus rating count) or individual review objects. These are optional, but they are what produces the star rating in search.
Build it without writing JSON by hand
The fastest accurate way is to fill in a form and copy the output. Use the Product Schema Generator:
- Open the Product Schema Generator and enter the product name, image URL, and description.
- Add the brand and SKU.
- Fill in the offer: price, currency, and availability.
- Optionally add an aggregate rating or reviews, but only if they are real.
- Copy the generated JSON-LD and paste it into your page inside a
<script type="application/ld+json">tag.
Everything runs in your browser. Nothing about your product is sent to a server.
Google’s rules you must follow
Google distinguishes two kinds of product results. A merchant listing can appear when the page lets a user buy the product, and it requires offer details like price and availability. A product snippet is the lighter version that can show review stars or brand. Either way, a few rules are strict:
- The markup must match the visible page. The price, currency, and availability in your JSON-LD have to be the same values a shopper sees. Mismatched prices are a common reason rich results get dropped.
- Use real, current prices. Do not mark up a sale price you are not honoring.
- Never fake reviews. Self-serving or invented
aggregateRatingandreviewdata violates Google’s policy and can get structured data ignored or penalized. Only mark up ratings genuinely collected from customers. - One product per Product item. For variants, follow Google’s guidance on product variant structured data rather than cramming everything into one block.
Validate before you ship
After you add the markup, test it. Paste the URL or the code into Google’s Rich Results Test and confirm it detects a valid Product with no errors. Warnings about recommended fields are fine. Errors are not. Schema.org’s validator is a good second check for syntax.
If you run WooCommerce or Shopify, your store likely outputs Product schema already, often through the platform or an SEO plugin. It is still worth testing, because themes and customizations frequently break it or leave out the offer. When that happens, you can generate a clean block manually and replace the broken one.
Related tools
- Article Schema Generator - mark up blog posts and news articles for richer listings.
- FAQ Schema Generator - add question and answer markup to support pages.
- Breadcrumb Schema Generator - show your site hierarchy in search results.
Get the offer right, keep it honest, validate, and let Google do the rest.