Free tool · No signup

    Product Schema Generator

    Build valid Product JSON-LD with the price, availability and review data Google needs for a product rich result.

    Comma-separated.

    Product JSON-LD

    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Product",
      "name": "Alto Merino Crew Jumper",
      "description": "Mid-weight 100% merino crew-neck jumper, machine washable, knitted in Portugal.",
      "image": [
        "https://altoknit.example.com/img/crew-charcoal.jpg"
      ],
      "sku": "ALT-CRW-CHR-M",
      "brand": {
        "@type": "Brand",
        "name": "Alto Knitwear"
      },
      "offers": {
        "@type": "Offer",
        "url": "https://altoknit.example.com/products/merino-crew",
        "price": "129",
        "priceCurrency": "GBP",
        "availability": "https://schema.org/InStock",
        "priceValidUntil": "2026-12-31"
      },
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": 4.6,
        "reviewCount": 218
      }
    }
    </script>

    Paste this block into the <head> or anywhere in the <body> of the page it describes, then confirm it parses with the JSON-LD schema validator.

    In short

    A product schema generator builds Product JSON-LD, which requires a name and image plus a nested offers object containing price, priceCurrency and availability drawn from schema.org's fixed list such as InStock or OutOfStock. Adding an aggregateRating with ratingValue and reviewCount makes the listing eligible for star ratings and price in Google's product rich results and Merchant listing experience, though Google also requires the data to match what a shopper actually sees on the page.

    Worked example

    What the output looks like

    Input
    Trailhead 35L Hiking Backpack, $89.99 USD, in stock, 4.6 stars from 212 reviews
    Output
    { "@context": "https://schema.org", "@type": "Product", "name": "Trailhead 35L Hiking Backpack", "image": "https://example.com/images/trailhead-35l.jpg", "description": "A 35-litre hiking backpack with adjustable torso fit and rain cover.", "offers": { "@type": "Offer", "priceCurrency": "USD", "price": "89.99", "availability": "https://schema.org/InStock", "url": "https://example.com/products/trailhead-35l" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.6", "reviewCount": "212" } }
    How to read it
    Availability uses the full schema.org URL form rather than the bare word InStock, which is the format Google's parser expects. Price is a plain decimal string, not a formatted currency string like $89.99, and priceCurrency carries the currency separately.

    How it works

    1

    Enter the product name, image and description

    Use the exact product title as displayed on the page and a direct image URL. Google crawls the image URL separately, so it must be publicly accessible and not behind a login.

    2

    Add price, currency and stock status

    Enter the current price, an ISO 4217 currency code like USD, and pick availability from schema.org's fixed values (InStock, OutOfStock, PreOrder). These must match the live checkout state exactly.

    3

    Add aggregate rating if you display reviews

    Only include aggregateRating if the page shows real customer reviews with a visible rating and count. Google removes rich results for ratings that can't be verified against on-page content.

    What this tool does

    • Generates Product JSON-LD with nested Offer and AggregateRating
    • Validates required fields: name, image, offers.price, offers.availability
    • Uses schema.org's controlled ItemAvailability and priceCurrency values
    • Supports multiple offers for size or colour variants

    Questions

    Frequently asked

    More free SEO tools

    Learn the concept

    Monitor product rich result eligibility at scale

    LemRank tracks rankings, backlinks, and AI-search visibility in one dashboard. 14-day free Pro trial. No credit card.