SCHEMA.ORG · Product

Product Schema Markup: Offer, Price, SKU, GTIN & JSON-LD Examples

Product structured data should describe one real product that users can see on the page. The strongest implementation connects Product to a real Offer or AggregateOffer, keeps commercial data synchronized with the visible page, and uses stable identifiers instead of invented values.

updateUpdated: September 18, 2026
Quick answer

What you need to know

Product Schema is JSON-LD that identifies a product and its commercial data. For Google product snippets, Product needs a name and at least one of offers, review, or aggregateRating. For a sellable product, use Offer with price and priceCurrency, then add availability, URL, image, brand and identifiers when those values are real and visible on the page.

memorySemantic summary for search and AI

Product Schema.org describes a single product entity. Put descriptive fields such as name, description, image, brand, sku, gtin and mpn on Product. Put price, priceCurrency, availability, url and seller on Offer. Do not create Product markup for category pages that list unrelated products, and never fabricate ratings, identifiers, prices or stock states.

Key properties

The table below summarizes the fields that most often determine whether the entity is clear and internally consistent. Only provide values supported by the page.

PropertyImportanceHow to use it
nameRequiredThe product name. Match the visible product heading.
offersKey commercial fieldOffer for one sellable offer or AggregateOffer for a real range/multiple offers of the same product.
imageStrongly recommendedCrawlable HTTPS images that represent the actual product.
descriptionRecommendedA concise description matching visible page content.
skuRecommendedThe real internal catalogue identifier.
brandRecommendedA real Brand entity when the page provides a brand.
gtin / mpnWhen availableUse genuine identifiers only; never invent them.
aggregateRating / reviewOptionalOnly mark up real visible rating/review data.

What Product Schema is for

Product markup tells search engines that the primary entity on a page is a specific product. It belongs on product detail or variant pages, not on broad category pages, service pages or editorial articles. The visible page and JSON-LD should describe the same item.

How Product, Offer and AggregateOffer fit together

Product contains identity and descriptive information. Offer contains a concrete commercial offer such as price, currency, availability and purchase URL. AggregateOffer is appropriate when the same product genuinely has a price range or multiple offers.

Price, currency and availability

Keep price synchronized with the visible page and put the ISO 4217 currency code in priceCurrency. Use Schema.org ItemAvailability values such as InStock, OutOfStock, PreOrder or BackOrder. Stale price or stock data is worse than omitting a field you cannot maintain.

SKU, GTIN and MPN

SKU identifies the item in your own catalogue. GTIN and MPN should be genuine manufacturer/global identifiers. Consistent identifiers help search systems reconcile product entities across sources; fabricated identifiers create ambiguity.

Images

Use product images, not favicons, logos, category banners or tracking assets. Absolute HTTPS URLs are safest. Multiple relevant product images can be supplied as an array.

Ratings and reviews

aggregateRating and review must be backed by real user-visible data. ratingValue, reviewCount and authors should agree with the page. Never generate a five-star rating automatically.

Variants

When the page contains variants, keep selected variant, URL, image, price and availability synchronized. Google also documents ProductGroup for product families; stable sku or gtin values help distinguish variants.

Validation workflow

Validate JSON syntax, entity relationships and @id references, then compare every structured value against the rendered page. A valid result does not guarantee a rich result; it only makes the markup technically eligible for use.

JSON-LD examples

Complete Product + Offer JSON-LD example

Replace every example value with data actually visible on your product page.

{
    "@context": "https://schema.org",
    "@type": "Product",
    "@id": "https://example.com/products/studio-monitor/#product",
    "name": "Studio Monitor X1",
    "description": "Active near-field studio monitor with a 5-inch woofer.",
    "image": [
        "https://example.com/images/x1-1x1.jpg",
        "https://example.com/images/x1-4x3.jpg",
        "https://example.com/images/x1-16x9.jpg"
    ],
    "sku": "X1-BLK",
    "gtin13": "0123456789012",
    "brand": {
        "@type": "Brand",
        "name": "Example Audio"
    },
    "offers": {
        "@type": "Offer",
        "url": "https://example.com/products/studio-monitor/",
        "price": "299.00",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock",
        "itemCondition": "https://schema.org/NewCondition"
    }
}

Google, Bing and Yandex

Google

Google documents Product for product snippets and merchant listings. Product snippets require name plus at least one of offers, review or aggregateRating; merchant-listing scenarios benefit from complete Offer data.

Bing

Bing supports Schema.org JSON-LD and can use structured annotations to understand page entities. Accurate Product and Offer data can help interpretation, but markup does not guarantee a particular result layout.

Yandex

Yandex documents Product together with Offer or AggregateOffer for product snippets. Keep name, description, price/lowPrice and priceCurrency accurate and synchronized with the page.

Important: valid structured data does not guarantee a rich result. Each search engine decides whether to use the data and how to present it.

Common mistakes

  • warningUsing Product on a category page that lists unrelated products.
  • warningPutting price directly on Product instead of Offer/AggregateOffer.
  • warningIncluding a currency symbol inside price.
  • warningUsing a logo or banner as the product image.
  • warningInventing GTIN, MPN, ratings or reviews.
  • warningLeaving stale price or availability values.

Frequently asked questions

Does Product Schema improve rankings by itself?

No. It helps search engines understand the page and can make a page eligible for richer presentations, but it is not a shortcut to higher rankings.

Is Offer required for Product Schema?

For Google product snippets, Product needs at least one of offers, review or aggregateRating. For ecommerce pages, Offer is usually the most useful commercial model.

Can I use Product on a category page?

Not when the page primarily lists unrelated products. Mark up the individual product detail pages instead.

Should I include GTIN when I have one?

Yes, when it is a genuine identifier for the marked-up product. Never create a fake GTIN just to fill a field.