Free tool — runs in your browser, nothing sent to a server

Product Schema Generator

Type in your product name, price, stock status, and rating. The tool writes the code that lets Google show those details directly under your listing in search results. Copy it, paste it into your product page.

Your details

Product JSON-LD
Fill in the required fields and your JSON-LD appears here.

Paste the block anywhere inside <head> or <body>, then confirm it parses with the schema validator.

What is product schema, and why would you add it?

When someone searches for a product, most results look identical: a blue title, a grey URL, two lines of text. Some results look different. They carry a price, a stock status, and a row of gold stars, right there in the search listing. That extra detail is not something Google worked out on its own. Those sites told it.

Product schema is how they told it. It is a block of code, invisible to shoppers, that states the facts of the product in a form built for machines: this is the name, this costs 39.95 in pounds, it is in stock, it is new, 218 people rated it 4.7. Google reads it literally rather than trying to work out which number on your page is the price.

The payoff is click-through, not ranking. A result showing a price and a rating answers the shopper's two questions before they click, and takes up more space doing it. Against a competitor whose listing shows neither, that is a real advantage for the same position.

One warning worth taking seriously: the price and availability in this code must match what is on the page, always. Google checks, and a mismatch is the fastest route to a manual penalty on your product markup. If your prices move, generate the code from the same data your page uses rather than pasting a fixed copy.

What This Tool Generates

Product JSON-LD

Name, description, image, brand, SKU, GTIN, and MPN

Offer node

Price, ISO currency, availability, and item condition

Shipping details

OfferShippingDetails with a destination country

Price validity

priceValidUntil, which Google warns about when missing

Aggregate rating

Only emitted when both a value and a non-zero count exist

Schema.org enums

Availability and condition written as full schema.org URLs

Generate this from your product data, not by hand

A one-off block pasted into a template is fine for testing, but prices and stock levels move and stale markup is worse than none. On a real store, build the JSON-LD from the same data the page renders, so the two can never disagree. Use this tool to work out the shape you need, then port it into your template. When it is live, check it parses with the schema validator.

Frequently Asked Questions

What does Product schema get me?

Eligibility for product rich results: the price, availability, and star rating that appear under your listing in search. Those extra lines make the result physically larger and answer the two questions a shopper has before they click, which is why product pages with valid markup tend to earn better click-through than ones without.

Which properties are actually required?

Google requires a name, and then either an offer, a review, or an aggregate rating. Everything else is recommended rather than required. In practice you want name, image, description, an offer with price and currency and availability, and a brand, because a listing missing those looks thin next to competitors that have them.

What is a GTIN and do I need one?

A Global Trade Item Number is the barcode identifier: UPC, EAN, ISBN, or JAN depending on the region. It is not required, but it is how Google matches your listing to the same product sold elsewhere. If you resell products that other merchants also carry, supplying the GTIN materially improves how well you are matched. If you make the product yourself, an MPN is the equivalent.

Can I put a price range instead of a single price?

Yes, but not with this tool. A product with variants uses an AggregateOffer with lowPrice and highPrice instead of a single Offer. This generator emits a single Offer, which is correct for a single-price product. If you sell variants at different prices, either mark up each variant page separately or hand-edit the output to an AggregateOffer.

Does the price in the markup have to match the page?

Exactly, every time. A price in your structured data that disagrees with the price on the page is the single fastest way to earn a manual action against your product markup, and Google actively checks for it. The same goes for availability. If your stock changes hourly, generate the markup server-side from the same data the page renders.

Can I make up the review count?

No. Aggregate ratings must come from reviews genuinely collected on your site and visible to visitors on that page. Fabricated ratings, ratings collected elsewhere, and ratings for a different product are all violations. This tool only emits the aggregateRating node when you supply both a value and a count above zero, but it cannot verify the numbers are real. That part is on you.

Where does the markup go?

On the individual product page, describing that product only. Do not put Product markup on a category page listing twenty items. Category and collection pages use ItemList instead, and only when each item genuinely links to its own product page.

One product page is easy. Four thousand is the problem

CrawlRaven crawls every product page you have, flags the ones with missing, invalid, or stale structured data, and ranks them by the revenue-weighted traffic each one already earns.