SEO · Structured data

Product Schema Generator

This product schema generator creates valid Product JSON-LD with price, currency, availability, brand and ratings, and tells you which fields Google requires for a product snippet and which it only recommends.

Eligible for a Google rich result

Product markup can produce product snippets (rating, price and availability in the result) and merchant listing experiences. Merchant listings need a page where the product can be bought, and stricter fields.

Status verified on 24 September 2026 · Google’s Product documentation

Fill in your details

One URL per line. Several images in different aspect ratios are recommended.

The barcode number: 8, 12, 13 or 14 digits.

OfferRecommended

At least one of Offer, rating or review is required by Google for a product snippet.

ISO 4217 code. Required for merchant listings.

Aggregate ratingOptional

Only if the page shows real customer reviews for this product.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Trailblazer 40L Backpack",
  "image": [
    "https://example.com/img/trailblazer-40-front.jpg",
    "https://example.com/img/trailblazer-40-side.jpg"
  ],
  "description": "A 40-litre hiking backpack with a rain cover, padded hip belt and laptop sleeve.",
  "sku": "TB-40-GRN",
  "mpn": "TB40G",
  "brand": {
    "@type": "Brand",
    "name": "Trailblazer"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/trailblazer-40",
    "price": 89,
    "priceCurrency": "USD",
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": 4.6,
    "reviewCount": 132
  }
}

Validation — no errors

All required and recommended fields are present and correctly formatted.

Rich result preview (illustration)

example.com
Trailblazer 40L Backpack
4.6 (132)· USD 89· In Stock

A 40-litre hiking backpack with a rain cover, padded hip belt and laptop sleeve.

An illustration of the kind of result this markup could produce — not a guarantee. Google decides whether to show a rich result at all.

The markup is generated in your browser from what you type. Nothing is uploaded.

Product schema: required vs recommended properties

Google distinguishes product snippets, which suit review pages and any product page, from merchant listings, which need a page where the product can be bought and are stricter. The table shows the properties for both.

PropertyStatusFormatNotes
Product nameRequiredText
Image URLsRecommendedListOne URL per line. Several images in different aspect ratios are recommended.
DescriptionRecommendedText
SKURecommendedText
Brand nameRecommendedText
OfferRecommendedGroupAt least one of Offer, rating or review is required by Google for a product snippet.
Manufacturer part number (MPN)OptionalText
GTIN (barcode)OptionalTextThe barcode number: 8, 12, 13 or 14 digits.
Offer › PriceOptionalNumber
Offer › CurrencyOptionalISO 4217 codeISO 4217 code. Required for merchant listings.
Offer › AvailabilityOptionalOne of a fixed set
Offer › Price valid untilOptionalDate, YYYY-MM-DD
Offer › Offer URLOptionalURL
Aggregate ratingOptionalGroupOnly if the page shows real customer reviews for this product.
Aggregate rating › Rating valueOptionalNumber
Aggregate rating › Number of reviewsOptionalNumber

Is Product markup eligible for a Google rich result?

Product markup can produce product snippets (rating, price and availability in the result) and merchant listing experiences. Merchant listings need a page where the product can be bought, and stricter fields.

Status verified on 24 September 2026. Google’s documentation: https://developers.google.com/search/docs/appearance/structured-data/product-snippet

About Product structured data

Product markup can make a search result show a rating, a price and stock status. Which of those appear depends on the fields you provide and on whether the page is a product review, an aggregator, or a page where the product can be bought.

For a page where customers can buy, the merchant listing requirements apply: the offer needs a price and a currency as well as a name and image. Adding a GTIN, MPN and brand improves matching to Google’s product catalogue.

Common Product schema mistakes

  • Marking up a product with no offer, rating or review. Google requires at least one of the three for a product snippet, and a name alone is not enough.
  • Putting a price in text form, such as “$89.00”, in the price property. Price is a plain number; the currency belongs in priceCurrency as an ISO 4217 code.
  • Marking up prices or availability that differ from what the page shows. The values in the markup must match the visible page.
  • Using aggregateRating on a product with no visible customer reviews, or copying ratings from another site.
  • Leaving out availability, then wondering why the result shows no stock status. Use the full schema.org URL or the enumeration name, such as InStock.
  • Marking up a category or listing page as a single Product. Each Product markup should describe one product on a page about that product.

Product schema example

A backpack with two images, a brand, an in-stock offer and a rating of 4.6 from 132 reviews, as generated on this page, is shown below.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Trailblazer 40L Backpack",
  "image": [
    "https://example.com/img/trailblazer-40-front.jpg",
    "https://example.com/img/trailblazer-40-side.jpg"
  ],
  "description": "A 40-litre hiking backpack with a rain cover, padded hip belt and laptop sleeve.",
  "sku": "TB-40-GRN",
  "mpn": "TB40G",
  "brand": {
    "@type": "Brand",
    "name": "Trailblazer"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/trailblazer-40",
    "price": 89,
    "priceCurrency": "USD",
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": 4.6,
    "reviewCount": 132
  }
}

How to use it

  1. Fill in the product details — the form marks each field Required, Recommended or Optional.
  2. Watch the JSON-LD and the validation list update as you type.
  3. Copy the JSON-LD, the HTML script tag or the Next.js snippet, or download the .json file.
  4. Paste it into your page, then check it with Google’s Rich Results Test.

Frequently asked questions

Which fields are required for Product schema?

For a product snippet, Google requires a name and at least one of offers, aggregateRating or review. Merchant listings additionally need a price and a currency on the offer.

How do I write the price?

As a plain number in price, such as 89.00, with the currency as a separate ISO 4217 code in priceCurrency, such as USD. Do not include the currency symbol in the price.

What availability values can I use?

Values from schema.org ItemAvailability, such as InStock, OutOfStock, PreOrder, BackOrder, SoldOut, LimitedAvailability, OnlineOnly and Discontinued. This generator outputs the full schema.org URL.

Can I add reviews to my own product?

You can add aggregateRating and reviews when the page shows genuine customer reviews of that product. Do not mark up reviews you wrote yourself or copied from elsewhere.

Does Product markup guarantee a rich result?

No. Google decides whether to show one. Valid markup makes you eligible; it does not guarantee a rating, price or availability line in the result.

Valid markup makes a page eligible for a rich result; it does not guarantee one. Google decides what to show. Test your page with Google’s Rich Results Test before relying on it.