Is the Product Schema Builder free?
Yes. It is free and generates Product JSON-LD locally in your browser with no signup.
Does it upload my product data?
No. The JSON-LD is built entirely in your browser, so your product details never leave your device.
Does it support product variants or feeds?
No. This version is intentionally limited to one practical Product block, not variant matrices or multi-item feeds.
Can I leave rating or price empty?
Yes. Optional offer and aggregate rating data are only included when you fill them in, and the markup stays valid without them.
Where do I put the generated JSON-LD?
Copy the generated block and paste it into your product page, typically inside a script tag of type application/ld+json in the page head.
Why is my offers block missing from the output?
The offer is only written when both a price and a currency are present. An empty price, or a currency field you cleared, drops the whole Offer object. The result panel reports Offer block: Missing for exactly this reason, so check both fields.
Can I use this for a product with sizes and colours?
Not directly. Variants are modelled with ProductGroup and hasVariant, or with separate Product blocks on separate URLs. This builder emits one Product, which is the right shape for a single item page and the wrong shape for a variant hub.
Do I need ratings and reviews?
No, aggregateRating is optional and the block is valid without it. If you do include it, the rating must be genuine and must be visible to users on that page. Marking up ratings that a visitor cannot see, or that you invented, is a manual-action-grade violation of Google's review snippet guidelines.
What format should the price be in?
A plain decimal number with a dot, such as 49.00, and the currency as a three letter ISO 4217 code such as USD or EUR. The builder uppercases the currency for you but does not check it exists, and it will happily pass a malformed price straight into the JSON.
Does the markup have to match the page?
Yes. Price, availability and rating in the structured data must match what a user sees on the page. A stale price in the JSON-LD, which is common when the block is hardcoded rather than generated, is one of the fastest routes to a merchant listing being pulled.
Is the product data sent anywhere?
No. The block is assembled in your browser and nothing is uploaded, so you can draft schema for an unreleased product or an internal SKU without it leaving the machine.