Schema markup generator that checks its own work
Pick a type, fill the fields, copy the JSON-LD. Every keystroke is checked against the required and recommended properties in Google's structured-data documentation, with a preview of what the markup can feed.
What's still live in Google, September 2026
Supported types stay hot; retired ones have gone cold. The retirement timeline has the details.
Choose a schema type
All Google-required properties present. That makes the page eligible, not guaranteed. Google's docs
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Trailhead 2 waterproof hiking boot",
"description": "Full-grain leather mid boot with a waterproof membrane and a Vibram outsole.",
"image": [
"https://example.com/img/trailhead2-1x1.jpg",
"https://example.com/img/trailhead2-4x3.jpg"
],
"brand": {
"@type": "Brand",
"name": "Example Outfitters"
},
"sku": "TH2-BRN-42",
"gtin": "0123456789012",
"offers": {
"@type": "Offer",
"url": "https://example.com/p/trailhead-2",
"price": 149,
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30
},
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": 0,
"currency": "USD"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US"
}
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.6,
"ratingCount": 212,
"reviewCount": 87
}
}
</script>Need more room to work, plus notes on this type? Open the dedicated Product schema generator.
What happens after you paste it
Google reads JSON-LD in four steps: it parses the block, recognises the schema.org type, checks the properties its feature needs, and then applies quality and policy checks. A block can be valid schema.org and still fail step three, because Google's requirements are stricter than schema.org's. That gap is why a generic validator can pass markup that Search Console later flags.
SchemaForge covers steps one to three in your browser. Step four is Google's call: its general structured data guidelines require that markup describes content visitors can see, and even then it only makes a page eligible.
Read the full explainer on schema markup or browse copy-ready schema markup examples.
Try it: switch parts of a Product block on and off
Each switch changes the JSON-LD below. Watch where the pipeline stops.
Eligible. Elements the markup can now feed: title link, price, availability, image (merchant surfaces). Google still chooses whether to show any of them, which is why no tool can promise a rich result.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Trailhead 2 hiking boot",
"image": "https://example.com/boot.jpg",
"offers": {
"@type": "Offer",
"price": 149,
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}Built from the documentation, not from memory
- Google-specific rules. Required and recommended properties per rich result, transcribed from Google Search Central, including either/or rules like Product's "offers, review or aggregateRating".
- Format checks. ISO 8601 dates and durations, time-zone offsets, currency codes, plain-number prices, absolute URLs, rating ranges and schema.org enumeration values.
- Honest status. Retired features are labelled as retired, so you don't spend a sprint on markup Google no longer rewards with a special appearance.
- AI where it saves typing. Point it at a page and it fills the form from what the page says, never inventing prices, dates or ratings.
Already have markup?
Paste a snippet, a whole page's HTML, or a public URL into the schema markup validator. It finds every JSON-LD block, including @graph arrays, and lists errors and warnings per entity. An AI review then explains the findings in plain language and drafts a corrected block.
Google's own Rich Results Test remains the final word on eligibility, and the Schema Markup Validator checks pure schema.org syntax. Use SchemaForge to get there faster.
Questions
Is this schema markup generator free?
Yes. Generating, validating, copying and downloading are free with no account. The AI fill and AI review features are free too, with a fair-use limit per visitor.
Will this markup get me rich results?
Nobody can promise that. Google's own documentation says structured data makes a page eligible, and Google decides whether to show a rich result based on quality, relevance and policy. SchemaForge checks that your markup meets the documented requirements.
Why JSON-LD and not Microdata?
Google recommends JSON-LD because it sits in one script block, separate from your HTML, which makes it easier to add and maintain at scale. Microdata and RDFa remain supported.
Where do I paste the code?
Anywhere in the page's HTML, in the head or the body. See the guide on how to add schema markup for WordPress, Shopify, Google Tag Manager and JavaScript frameworks.
What is a schema markup generator?
A tool that turns form fields (name, price, address, dates) into Schema.org structured data, usually JSON-LD, that you paste into a page. A good one also checks the output against Google's required properties so you know the page is eligible before you publish.
Is FAQ schema still relevant?
Not for Google rich results: Google stopped showing FAQ rich results on May 7, 2026. FAQPage markup is still valid schema.org and does no harm, so keep it only if another system uses it.
What is a schema markup example?
A Product block with name, image and an Offer (price 149, priceCurrency USD) is the classic example. See our page of copy-ready schema markup examples for 17 types.
Which types still produce rich results in 2026?
Article, Breadcrumb, Event, Job posting, Local business, Organization, Product, Recipe, Review snippet, Software app, Video, Profile page and Course list are all still documented. FAQ (May 2026) and How-to (2023) rich results have been retired.