Product Schema Generator
Generate Product JSON-LD for Google Shopping and rich results.
Product Details
Pricing & Availability
Ratings
Paste this into the <head> of your product page.
About Product Schema Generator
The Product Schema Generator creates valid Product structured data (JSON-LD) following the Schema.org specification. Adding this markup to your product pages helps Google understand your listings, enabling rich results in Google Shopping— including price, availability, and star ratings displayed directly in search results. Fill in your product name, brand, pricing, availability, and aggregate review data, then copy the generated JSON-LD or the ready-to-use HTML script tag into your page's <head>. Supports all standard fields including GTIN barcodes, product condition, and multi-currency pricing.
Built and maintained by Meet Shah · Last updated
What this tool is used for
- Adding Product markup so a listing can show price and availability in results.
- Producing the offer properties a shopping rich result requires.
- Marking up a product page that currently has no structured data.
- Producing consistent markup across a catalogue template.
- Checking a product's markup still matches the page after a price or stock change.
Frequently Asked Questions
- What does Product markup need to produce a rich result?
- `name` and `image` at minimum, plus `offers` with a `price` and `priceCurrency` for the price to appear, and `aggregateRating` or `review` for stars. Without offers the item is valid but produces almost nothing visible in results.
- How should the price be written?
- As a plain number with a decimal point and no currency symbol or thousands separator — `29.99`, not `$29.99` or `1,299`. The currency goes in `priceCurrency` as a three-letter ISO 4217 code. This is the most common validation failure on product markup.
- What is priceValidUntil for?
- It tells Google how long the price can be trusted. Once the date passes, the price may stop being shown — which surprises people whose rich result silently loses its price months after launch. Set it forward and keep it current, or omit it if the price is stable.
- Can I mark up ratings from anywhere?
- No. `aggregateRating` must reflect reviews genuinely collected for that product and visible on the page. Marking up ratings the page does not display, or ratings for a different product, is a policy violation that removes rich results site-wide rather than just for that page.
- How do I handle a product with variants?
- Either one Product per variant with its own price and SKU, or a `ProductGroup` with `hasVariant` entries — the latter is what Google introduced for exactly this case. An `offers` with `AggregateOffer` and a low/high price range is the older approach and still valid.
Common errors and gotchas
- Publishing a price in the markup that differs from the page, which is a guidelines violation.
- Adding aggregate ratings with no real reviews behind them.
- Omitting the currency, which makes the price meaningless.
- Marking a category page as a single Product, which it is not.
- Leaving availability stale, so an out-of-stock item still advertises as available.