FREE TOOL · NO SIGNUP

Generate Product Schema JSON-LD in Seconds

Build valid Product + Offer + AggregateRating structured data for rich results — with price, availability, condition, identifiers, and ratings — copy or download it in one click.

Product details

·

Core

One per line, or comma-separated. Absolute https URLs.

Identity

Length picks gtin8/12/13/14.

Offer

ISO date — recommended.

Aggregate rating

Example output — fill in your product details to generate your own JSON-LD.
Product JSON-LD Valid schema Offer AggregateRating
aero-running-shoes-product-schema.json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Aero Running Shoes",
  "image": "https://example.com/photos/aero-running-shoes-1.jpg",
  "description": "Lightweight performance running shoes with a breathable knit upper and responsive foam midsole for everyday training.",
  "sku": "AERO-RUN-001",
  "gtin13": "0614141999996",
  "mpn": "STR-AERO-2026",
  "category": "Apparel & Accessories > Shoes",
  "brand": {
    "@type": "Brand",
    "name": "Stride"
  },
  "offers": {
    "@type": "Offer",
    "price": "129",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "url": "https://example.com/products/aero-running-shoes",
    "priceValidUntil": "2026-12-31"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "218",
    "bestRating": "5",
    "worstRating": "1"
  }
}

Paste this into your <head>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Aero Running Shoes",
  "image": "https://example.com/photos/aero-running-shoes-1.jpg",
  "description": "Lightweight performance running shoes with a breathable knit upper and responsive foam midsole for everyday training.",
  "sku": "AERO-RUN-001",
  "gtin13": "0614141999996",
  "mpn": "STR-AERO-2026",
  "category": "Apparel & Accessories > Shoes",
  "brand": {
    "@type": "Brand",
    "name": "Stride"
  },
  "offers": {
    "@type": "Offer",
    "price": "129",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "url": "https://example.com/products/aero-running-shoes",
    "priceValidUntil": "2026-12-31"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "218",
    "bestRating": "5",
    "worstRating": "1"
  }
}
</script>

Validate with Google’s Rich Results Test and the Schema.org validator.

The Complete Guide

Product Schema Markup: The Complete JSON-LD Guide for Rich Results

5 MIN READ

Understand with AI

Discuss with your preferred AI assistant

+35%
Higher CTR

Rich results with stars and price can lift click-through versus a plain blue link.

< 2 min
Setup time

A complete Product JSON-LD block takes minutes to generate, validate, and paste.

JSON-LD
Recommended format

Google explicitly recommends JSON-LD over Microdata for product structured data.

Product schema is the structured data that lets Google understand exactly what you sell — the name, price, availability, condition, and how shoppers rate it. Add it correctly and your listings become eligible for product rich results: the star ratings, price, and stock status that appear right in the search results and pull in clicks before a shopper ever lands on your page.

This guide explains what Product schema is, which properties matter, how to mark it up with JSON-LD, and the mistakes that quietly disqualify pages from rich results.

What Is Product Schema?

Product schema is a vocabulary from schema.org that describes a product as machine-readable data. You embed it in a page using JSON-LD — a small block of JSON inside a <script type="application/ld+json"> tag in your HTML. Search engines read it to confirm the page is a product and to extract the details they display in enhanced listings.

A complete Product node usually nests two other types: an Offer (price, currency, availability, condition) and an AggregateRating (average rating and the number of reviews). Together they form the trio Google looks for when deciding whether a page qualifies for product rich results.

Which Product Properties Matter

Google distinguishes between required and recommended properties. Missing a required one disqualifies the page; missing recommended ones simply limits how rich the result can be.

PropertyRoleNotes
nameRequiredThe product title shoppers recognise.
imageStrongly recommendedAbsolute https URLs; multiple sizes help.
offers (price, priceCurrency, availability)Required for the price/stock resultCurrency must be ISO 4217 (USD, EUR, INR).
aggregateRating (ratingValue, reviewCount)Required for the star resultMust reflect ratings genuinely visible on the page.
sku / gtin / mpnRecommendedUnique identifiers improve matching and eligibility.
brand, description, itemConditionRecommendedAdd context and unlock more display options.

How to Add Product Schema with JSON-LD

1. Choose JSON-LD over Microdata

Google explicitly recommends JSON-LD because it lives in a single script block, separate from your visible HTML. That makes it far easier to generate, audit, and keep in sync than Microdata sprinkled across your markup.

2. Build the Product node

Start with @context and @type: "Product", then add the name, image, and description. Nest an Offer for commercial details and an AggregateRating for review data. Use the full schema.org URLs for enumerated values — for example https://schema.org/InStock for availability and https://schema.org/NewCondition for condition.

3. Use the correct GTIN property

Global Trade Item Numbers come in fixed lengths, and schema.org expects the matching property: an 8-digit code uses gtin8, a 12-digit UPC uses gtin12, a 13-digit EAN uses gtin13, and a 14-digit case code uses gtin14. Our generator detects the length and emits the right property automatically.

4. Paste it into your page and validate

Drop the script tag into the <head> or <body> of the product page, then run it through Google's Rich Results Test and the Schema.org validator. Green checks mean the page is eligible — though eligibility is not a guarantee the rich result will always show.

Product Schema Best Practices

  • Match the visible page. The price, availability, and ratings in your markup must equal what a shopper actually sees, or Google may issue a manual action.
  • Only mark up real reviews. AggregateRating must come from genuine, on-page reviews — never invented or self-serving ratings.
  • Keep prices fresh. Add priceValidUntil and update it; stale price data weakens eligibility over time.
  • Provide an identifier. Include at least one of SKU, GTIN, or MPN so Google can confidently match your product.
  • Use absolute image URLs. Relative paths and data URIs are not reliably crawled.

Common Product Schema Mistakes

  • Marking up ratings that do not appear anywhere on the page.
  • Using a plain string for availability instead of the full https://schema.org/InStock URL.
  • Omitting priceCurrency while still declaring a price.
  • Putting a rating outside its scale (for example 4.6 when bestRating is 1).
  • Marking up a category or listing page with a single Product instead of an ItemList.

Expert Tips

Match the markup to the page

Price, availability, and ratings in your schema must equal what a shopper actually sees. Mismatches can trigger a manual action and remove your rich results.

Always validate before shipping

Run every block through Google’s Rich Results Test and the Schema.org validator. Eligibility starts with zero errors — fix warnings to unlock the richest display.

Frequently Asked Questions

What is product schema used for?

Product schema tells search engines the structured details of an item — name, price, availability, condition, and ratings — so the page can qualify for product rich results that show stars, price, and stock status directly in search.

Is JSON-LD or Microdata better for product markup?

JSON-LD. Google recommends it because it sits in a single script block separate from your visible HTML, which makes it easier to generate, validate, and maintain than Microdata embedded throughout the page.

Do I need reviews to use Product schema?

No. Product, name, and Offer details work without reviews. AggregateRating is only required if you want the star rating shown — and it must reflect real reviews that appear on the page.

Will adding product schema guarantee rich results?

No. Valid schema makes a page eligible, but Google decides when to show rich results based on quality, relevance, and policy compliance. Always validate with the Rich Results Test and keep your markup matching the visible page.

Related guides

Related tools