E-commerce product pages — enables price, rating, and availability in Google Search.

Required. Full product name as displayed on the page.

Overview of the product's key features.

Direct URL to product image

Merchant-specific identifier for the product.

The brand of the product.

JSON-LD output
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "offers": {
    "@type": "Offer",
    "priceCurrency": "USD"
  }
}
</script>
Missing required fields
  • Product name
  • Price
  • Currency
Test in Google

How to use the Product Schema Markup Generator

  1. Enter the product name exactly as it appears on your page — Google cross-checks the schema against visible content.
  2. Set the price and currency using an ISO 4217 code (USD, EUR, UAH, GBP). Both fields are required for Rich Results eligibility.
  3. Select the availability status — InStock, OutOfStock, PreOrder, or BackOrder. The generator inserts the full Schema.org URL automatically.
  4. Add a GTIN (barcode), MPN, or SKU if your product has one — this unlocks Google Merchant Center integration and improves product identification across merchants.
  5. Fill in aggregateRating only if your page visibly displays real user reviews. Self-generated or inflated ratings violate Google's guidelines and risk a manual penalty.
  6. Copy the generated JSON-LD block from the output panel and paste it inside the <head> of your product page.
  7. Validate instantly with the Google Rich Results Test and monitor sitewide coverage in Google Search Console → Enhancements.

How the Product Schema Markup Generator works

Product schema markup is a JSON-LD script block placed in your page's <head> that tells Google exactly what your product page contains — name, price, availability, brand, and ratings. The generator builds this block locally in your browser: you fill in the fields, the JSON-LD output updates live in real time, and you copy the result directly into your HTML. No server, no account, no data leaves your machine.

Once added to your page, Google reads the markup during its next crawl and uses it to decide whether your listing qualifies for Rich Results — the enhanced SERP snippets that display price, availability badges, and star ratings directly in search without the user clicking through. The schema is completely invisible to site visitors; it only adds machine-readable metadata for search engines and structured data parsers.

Minimal valid Product schema
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Sony WH-1000XM5 Wireless Headphones",
  "offers": {
    "@type": "Offer",
    "price": "349.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
</script>

Rich Results that Product Schema unlocks in Google Search

Without Product schema, Google displays a standard blue-link snippet for your product page — title, URL, and a short description. With correctly filled markup, Google can enrich that snippet with additional signals pulled directly from your structured data, making your listing stand out visually before a user even clicks.

  • Price and currency — shown beneath the page title in the SERP snippet, with the currency symbol. For products with multiple variants, Google may display a price range (e.g., "$29.99 – $79.99").
  • Availability badge — "In stock" or "Out of stock" displayed next to the price. Prevents users from clicking through to unavailable products, improving your bounce metrics.
  • Star ratings — 1–5 stars with review count displayed when aggregateRating is filled. Consistently one of the highest click-through rate drivers in e-commerce SERPs.
  • Product image — can appear in Google Images Shopping tab and in standard mobile search results, increasing surface area and visual recognition.
  • Shipping information — estimated delivery timeframe and cost shown directly in the SERP if shippingDetails is populated. Reduces pre-purchase friction.
  • Return policy — displays return window and conditions for markets where Google supports this field, primarily the United States.
  • Merchant badge — Google may attach a verified seller label for merchants meeting its quality and trust signals via Google Merchant Center.

The minimum set required for Rich Results eligibility is name + offers.price + offers.priceCurrency + offers.availability. Google skips the schema and shows a plain snippet if any of these four are missing or use invalid values — regardless of how many other fields are correctly filled.

Product Schema fields — importance and business impact

Google divides Product schema fields into required (without them no Rich Result is generated), recommended (increase the richness and accuracy of the displayed result), and optional (provide additional signals for specific markets or integration points). The table below covers every major field and maps it to its practical impact.

FieldImportanceWhat it unlocks
nameRequiredProduct name used in the SERP snippet
offers.priceRequiredPrice display in search results
offers.priceCurrencyRequiredCurrency symbol next to the price (ISO 4217 code)
offers.availabilityRequired"In stock" or "Out of stock" badge in SERP
imageRecommendedProduct photo in Google Images and mobile search
brand.nameRecommendedBrand name shown beneath the page title
descriptionRecommendedExtended description for Google to parse and understand
gtin / mpn / skuRecommendedProduct identification — required for Google Merchant Center integration
offers.priceValidUntilRecommendedPrevents stale price display after the set date passes
aggregateRatingOptional — high impactStar ratings in SERP — the strongest CTR driver in e-commerce
shippingDetailsOptionalEstimated delivery time and cost shown in the snippet
hasMerchantReturnPolicyOptionalReturn window and conditions for US and supported markets

When to use Product Schema — and when to skip it

Pages where Product Schema is the right choice

  • Individual product pages in an online store — the primary and most impactful use case. Every product page with a fixed price should have its own schema block with accurate availability.
  • Digital product pages (plugins, fonts, templates, software licenses) — if there is a set price and a clear purchase action, Product schema applies regardless of whether the item is physical.
  • Single-product landing pages — a dedicated landing page for one item with a "Buy now" or "Add to cart" button qualifies even if the rest of the site is not a store.
  • Manufacturer pages with listed prices — even without a direct checkout, if the page shows price and availability, the schema is valid and may improve SERP appearance.
  • Subscription products — use priceSpecification to describe billing frequency (monthly or annual) alongside the recurring amount.

Pages where Product Schema will not work or may cause issues

  • Category and collection pages — Google does not support Product schema on pages that list multiple products. Use ItemList schema instead for these pages.
  • Service pages — consulting, development, design, and similar services should use the Service schema type. Google rejects Product markup on pages that describe services rather than goods.
  • Affiliate pages without a fixed price — if the displayed price is pulled from a third-party feed and may differ from what the merchant shows, Google can reject the schema for a price mismatch.
  • "Price on request" pages — without a concrete numeric price value, the schema cannot generate a price Rich Result. Omit the offers block entirely or use a different schema type.
  • Discontinued products — do not remove the schema immediately. Update availability to Discontinued instead — this signals to Google that the item no longer exists rather than simply being out of stock.
  • Pages with aggregateRating but no visible reviews — Google verifies that review data shown in the schema is actually present on the page. Schema with ratings not visible to users risks a manual action that removes Rich Results sitewide.

Technical deep dive: GTIN formats, priceValidUntil, and aggregateRating

GTIN (Global Trade Item Number) is the most important product identifier for Google Merchant Center integration and cross-merchant product deduplication. There are four formats in use: gtin8 (8 digits, used on small consumer items), gtin12 (12 digits — UPC-A, the North American standard), gtin13 (13 digits — EAN-13, standard in Europe and Ukraine), and gtin14 (14 digits — shipping carton codes). If you are unsure which format applies to a specific product, use the generic gtin field — Google automatically identifies the format from the digit count. For digital products or items without a retail barcode, use mpn (manufacturer part number) or sku (your internal identifier).

priceValidUntil is frequently skipped but critical for maintaining Rich Results over time. Once the date passes, Google may stop displaying the price in the SERP snippet even if the product is still available and the price has not changed. Treat this field as part of your regular product data update pipeline — update it alongside every price change, or set it far in advance and refresh periodically.

aggregateRating requires both ratingValue and at least one of ratingCount or reviewCount. Without an explicit count, Google rejects the rating field regardless of the ratingValue. There is no published minimum review count, but in practice fewer than 3 visible reviews rarely trigger star display in the SERP. More critically: the rating value and review count in the schema must match what a user actually sees on the page — Google's crawler actively verifies this. Discrepancies between schema data and visible content are one of the most common causes of manual actions that remove Rich Results.

Full Product schema with GTIN, shipping details, and aggregate rating
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Sony WH-1000XM5 Wireless Headphones",
  "image": "https://example.com/img/sony-wh1000xm5.jpg",
  "description": "Industry-leading noise cancellation, 30-hour battery life, multipoint Bluetooth.",
  "brand": { "@type": "Brand", "name": "Sony" },
  "gtin13": "4548736132245",
  "offers": {
    "@type": "Offer",
    "price": "349.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2025-12-31",
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "MonetaryAmount",
        "value": "0",
        "currency": "USD"
      },
      "deliveryTime": {
        "@type": "ShippingDeliveryTime",
        "handlingTime": {
          "@type": "QuantitativeValue",
          "minValue": 0,
          "maxValue": 1,
          "unitCode": "DAY"
        },
        "transitTime": {
          "@type": "QuantitativeValue",
          "minValue": 2,
          "maxValue": 5,
          "unitCode": "DAY"
        }
      }
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "2847"
  }
}
</script>

Frequently Asked Questions

Does Product schema work without a price?
Technically the schema is valid without a price, but you will not get a Rich Result with price display. Google requires name, price, priceCurrency, and availability as the minimum set for a price-based Rich Result. If the price is intentionally omitted — for example, "price on request" products — you can still use Product schema for brand and description signals, but the SERP snippet will look like a standard result.
Can I use Product schema on service pages?
No. Google's Product schema is intended for physical and digital goods — items with a fixed price that can be purchased. For consulting, design, development, or SaaS services, use the Service schema type instead. Applying Product schema to a service page typically results in the markup being rejected or ignored by Google's parser.
What is a GTIN and where do I find it?
GTIN (Global Trade Item Number) is a globally unique product identifier encoded in a barcode. For physical goods it is printed on the packaging: 8-digit EAN-8, 12-digit UPC-A (North America), or 13-digit EAN-13 (Europe, Ukraine). For digital products without a barcode, use the manufacturer's part number (mpn) or your internal SKU. GTIN is the most important identifier for Google Merchant Center integration and deduplication across multiple merchants selling the same item.
How do I add a sale price alongside the regular price?
Use a priceSpecification array with two UnitPriceSpecification objects — one with the regular price and one with the sale price and a priceValidUntil set to the sale end date. Alternatively, some implementations use two separate Offer objects. The generator supports single-offer pricing; for complex sale pricing structures, generate the base schema and edit the JSON-LD output manually.
How many reviews are needed for star ratings to appear in Google?
Google does not publish a minimum threshold. In practice, at least 3–5 visible user reviews are typically needed before stars appear consistently in search results. More importantly, reviewCount or ratingCount must be explicitly included in the aggregateRating object — Google rejects the entire rating block if the count is missing, regardless of how many reviews exist on the page.
How long does it take for Product Rich Results to appear after adding schema?
There is no fixed timeline — it depends on your site's crawl frequency. For established sites with regular crawling, Rich Results can appear within days. For new sites or rarely crawled pages, it may take several weeks. You can request re-crawling via Google Search Console → URL Inspection → Request Indexing. The Rich Results Test confirms eligibility immediately after you add the schema, before Google even crawls the page.
Does Product schema directly improve search rankings?
No — Google officially states that structured data is not a direct ranking factor. However, Product schema enables Rich Results that show price, stars, and availability in the SERP snippet. These visual elements consistently increase click-through rates, and higher CTR sends positive engagement signals back to Google. The indirect ranking benefit is real and measurable, especially in competitive e-commerce categories.
What happens if the price in my schema differs from the visible price on the page?
Google actively cross-references the schema price against the visible price it detects on the page. A mismatch can result in the structured data being ignored, a warning appearing in Search Console, or — in repeated cases — a manual action that removes Rich Results sitewide. Always keep the schema price synchronized with the displayed price. If prices are updated programmatically, include the schema update in the same pipeline.
What should I do when a product goes out of stock?
Update availability to https://schema.org/OutOfStock as soon as the product becomes unavailable. Do not remove the schema block entirely — sudden removal can disrupt Google's understanding of the page and affect its SERP appearance. If the product is permanently discontinued, set availability to https://schema.org/Discontinued, which signals to Google that the item no longer exists rather than being temporarily unavailable.
Does each product variant (color, size) need its own schema?
If each variant has its own URL, yes — each page should have its own Product schema with the correct price and availability for that specific variant. If all variants are selected on a single page without URL changes, one schema block with the base price is sufficient. Advanced implementations can use a ProductGroup schema to describe the relationship between variants, but this is optional and not required for Rich Results eligibility.
Can I combine Product schema with other schema types on the same page?
Yes — multiple schema types coexist on a single page in separate <script type="application/ld+json"> blocks. A product page commonly combines Product schema with BreadcrumbList (to display the navigation path in the SERP snippet) and optionally FAQPage (for a product Q&A section). Keep each type in its own script block rather than merging them into one JSON object.
Does Google verify that aggregateRating reviews are genuine?
Yes. Google's guidelines require that aggregateRating reflects actual user reviews that are visible on the page — not self-generated, purchased, or inflated ratings. Google actively audits this: if the schema rating significantly exceeds what third-party signals or visible page content suggest, it may trigger a manual review. Sites found using fake review data can have Rich Results removed across the entire domain.