Generate valid JSON-LD schema
Pick a type, fill the fields, copy the markup. Required fields are enforced before output. The mistakes the checker flags most are impossible to generate here.
After generating
Paste the block into your page, then run the structured-data check on the live URL. It parses every JSON-LD block including nested ProductGroup variants and names each missing field.
What the schema generator creates
Choose Product, FAQ or Article, fill in the required fields, and generate JSON-LD in your browser. The page does not send form data to a server. For Product, the required inputs are name, image URL, numeric price and currency code; availability can be selected as InStock, OutOfStock or PreOrder, and brand and product URL are optional. FAQ accepts one question and answer per line separated by ||. Article requires a headline and image URL, with author, publication date and publisher optional.
The output describes one of those types. It is not a general schema editor: it does not generate Organization, LocalBusiness, ProductGroup, shipping or return-policy markup. The form also does not fetch your page or prove that the information you entered is visible to shoppers. Treat generated JSON-LD as a starting block that you must compare with the live page.
How to read and use the output
The tool reports missing required form fields instead of outputting markup. After a successful generation, copy or download the JSON-LD and add it to the relevant page inside a script element with type application/ld+json. For example: <script type="application/ld+json">{"@context":"https://schema.org","@type":"Article"}</script>. Use the actual generated object, not this shortened illustration.
A generated block is syntactically structured data, not a promise of a Google rich result. Google requires the markup to describe the visible page and to follow the rules for the specific feature. Product markup from this tool contains a name, image and Offer; it does not include review data, SKU, variant relationships, shipping or returns. Validate the page after deployment with the structured-data check, then use Google’s Rich Results Test to see which Google-supported result requirements apply.
Common Product markup mistakes
The most serious mistake is publishing a price or stock status that differs from the page or checkout. The generator defaults availability to InStock if you leave that optional field blank, so change it whenever the real offer is not in stock. It does not know your inventory. Currency must be the three-letter code matching the price, such as USD, and the image URL should resolve to a crawlable product image.
Do not put Product markup on a page that is really a category or a product review. Do not reuse one product’s markup across other products, and do not add invented ratings. Google’s product result types have different requirements: merchant listings are for pages where the customer can buy the product, while product snippets can fit other product-related pages. Match markup to page purpose and visible facts.
A safe workflow for adding JSON-LD
First select the type that matches the page. For a product detail page, use Product; for editorial content use Article; for visible questions and answers use FAQPage only when those questions and answers are actually on the page. Fill in canonical URLs and facts from the page itself. If a Product has variants, this form does not create ProductGroup markup, so use a platform implementation or write that structure separately rather than pretending a single Offer represents all variants.
Add the JSON-LD to the template responsible for that URL, then view the fetched source and confirm the script appears once with the expected values. Check for a second schema plugin or theme block that already emits the same entity; duplicate or conflicting blocks can make debugging harder. Finally test the live URL with the rich results check or schema content check. Re-run after theme changes and price updates.
When to use related tools
Use the generator when you need a first Product, FAQPage or Article JSON-LD block. Use the structured-data check when markup is already live and you want Shipwork to parse the blocks it can fetch, including nested ProductGroup variants. Use Rich Results for checks focused on Google result eligibility. If your issue is a specific missing product field, the no product markup fix explains how to investigate the page rather than generate a new block.