DEV TOOLBOX · SCHEMA MARKUP · NO SIGNUP
> schemapreview

Product schema

Product gets you stars, price, and availability badges in the SERP — and, if you have a Merchant Center account linked, into the free shopping listings tab.

Required fields

  • name — product name as displayed on the page.
  • image — at least one URL. Multiple aspect ratios is better; Google picks the one that fits the slot.
  • offers — exactly one Offer (or AggregateOffer for variants) with price, priceCurrency (ISO 4217), and availability (use the schema.org URL form like https://schema.org/InStock).

Recommended

  • aggregateRatingAggregateRating with ratingValue and reviewCount. The stars.
  • review — at least one Review with author, reviewRating, and reviewBody. Without this, the "review snippets" rich result is not shown.
  • brandBrand or Organization with name. Used by Google's product knowledge graph.
  • sku and gtin — required for shopping listings to merge identical products from different sellers.
  • description — falls back to meta description if absent, but explicit is better.

Rules Google enforces

  • The product page must show the same price and availability as the schema. Mismatches trigger the "Inaccurate price" manual action in Search Console.
  • Stars from aggregateRating must reflect first-party reviews on this page, not aggregated from third-party sources.
  • For variant products (size, color), use a single Product with hasVariant plus separate Offer objects — not multiple top-level Product blocks.

Common mistakes

  1. availability as plain InStock string. Google accepts both, but the URL form https://schema.org/InStock is strictly correct.
  2. Hard-coded sale price in schema while live price is regular. A common source of warnings. If you have time-limited offers, generate the schema from the same data the page renders.
  3. Missing priceValidUntil for sale prices. Without it, Google may stop showing the price after 6 months.

CMS notes

  • Shopify: native Product schema is good but stops at basics. Use a Liquid snippet to add GTIN, brand, and shipping details if needed.
  • WooCommerce: built-in schema is barebones. Rank Math WooCommerce module fills gaps.
  • Headless: generate from product API data; mirror it field-by-field with what the page displays.

Generate it below

Last verified: 2026-05-15. Found something inaccurate? Email hello@schemapreview.dev.

Google's Product docs ↗

TYPE
02 — PROPERTIES
Offers*
Aggregate rating+
Featured review+
03 — PREVIEW
Google preview · approximate
image
Product name
No price
VALIDATION
× Not eligible3 errors · 6 warnings
  • nameRequired property "Product name" is missing.docs ↗
  • imageRequired property "Image URL" is missing.docs ↗
  • offersRequired property "Offers" is missing.docs ↗
  • descriptionRecommended property "Description" is missing.docs ↗
  • brandRecommended property "Brand name" is missing.docs ↗
  • skuRecommended property "SKU" is missing.docs ↗
  • gtinRecommended property "GTIN" is missing.docs ↗
  • aggregateRatingRecommended property "Aggregate rating" is missing.docs ↗
  • reviewRecommended property "Featured review" is missing.docs ↗
04 — COPY
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product"
}
</script>