How to generate schema markup, free and without uploading
To generate schema markup, click one of the ten Schema Type buttons (Article, Product, LocalBusiness, Organization, Person, Event, FAQ, HowTo, Recipe or Review), fill in the fields or click Load Sample, choose JSON-LD (Recommended) or Microdata under Output Format, then click Copy Schema, or Download HTML to save a file. The Generated Schema Markup box rewrites itself on every keystroke, and a Check before publishing list appears under it when a field is missing or a value is malformed. In JSON-LD mode the copied text is a complete <script type="application/ld+json"> block, ready to paste into the page it describes.
It runs in your browser; nothing is uploaded (you can check the Network tab in DevTools). The markup is built from what you type by a script that ships with the page. There is no account and nothing to install. The Validate with Schema.org and Test with Google buttons open those sites in a new tab, and nothing is sent to them unless you paste your code there yourself.
Schema markup, also called structured data, is code that labels what a page contains, such as a product with a price or an event with a start date, using the schema.org vocabulary. Google recommends JSON-LD when your site setup allows it (Google Search Central, Introduction to structured data, as of October 2026). Valid markup makes a page eligible for enhanced results; it does not promise one. Pair it with the meta tag generator, the Open Graph generator, the XML sitemap generator and the robots.txt generator.
Table of Use: which schema type fits your page
| Your page | Schema Type | Fields in the form | What the checks flag |
|---|---|---|---|
| Blog post or news story | Article | Article type, Headline, Author name and URL, Date published, Date modified, Image URL, Publisher | No headline, headline over 110 characters, modified date before published date |
| Product page | Product | Name, Description, Image URL, Brand, SKU, Price, Currency, Availability | No name, no price, a price that is not a plain number |
| Shop, restaurant, clinic | LocalBusiness | Name, Business type (19 choices), address, Phone, Website | No name, no street or city |
| Company homepage | Organization | Name, Website, Logo URL, Contact email and phone, Social profile URLs | No name, an email that looks invalid, a URL without https:// |
| Author or team profile | Person | Name, Job title, Works for, Website, Photo URL, Profile URLs | No name, a URL without https:// |
| Conference or workshop | Event | Name, Start and End date and time, Attendance, Venue, Online event URL, UTC offset, Description | No start date, end before start, no venue or online URL, a note on online-only events |
| Q&A section | FAQ | Question and Answer pairs | No complete pair, a half-filled pair, a note that Google ended FAQ rich results |
| Step-by-step guide | HowTo | Name, Description, Total time, Steps | No name, no steps, a note that Google ended HowTo rich results |
| Recipe page | Recipe | Name, Description, Image URL, Author, Prep and Cook time, Yield, Ingredients, Instructions | No name, no image, times that are not whole minutes |
| Review | Review | Item and Item type (10 choices), Rating, Reviewer, Date, Text | No item name, no reviewer, a rating outside 1 to 5 |
JSON-LD for a Product with an empty Description, shown condensed: the property is omitted, not written blank.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Wireless Bluetooth Headphones",
"image": "https://example.com/headphones.jpg",
"brand": { "@type": "Brand", "name": "SoundCo" },
"sku": "SC-WH-200",
"offers": {
"@type": "Offer",
"price": "149.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}Features
- Ten schema types. Article, Product, LocalBusiness, Organization, Person, Event, FAQ, HowTo, Recipe and Review, each with its own form. Switching types keeps what you typed for each one.
- JSON-LD and Microdata from one source. Both formats are built from the same data, so they state the same facts.
- Built-in checks. The Check before publishing list flags missing fields, URLs that do not start with https:// or http://, a headline over 110 characters, a bad date order, a malformed price and ratings outside 1 to 5.
- Clean output. Blank fields are dropped, and a Product only gets an Offer once you enter a price.
- Events with time zones. Pick In person, Online or In person and online, then one of 40 UTC offsets so times are written like
2026-11-18T09:00-05:00. - Durations done for you. HowTo and Recipe times are typed in minutes and written as ISO 8601 durations, so 90 minutes becomes
PT1H30M. - Safe to paste. A stray
</script>in your text cannot end the script block early, and Microdata values are HTML-escaped. - Load Sample, Clear, Copy Schema and Download HTML. Downloads are named after the type, for example
schema-article.html.
How to use the schema markup generator
- Click the Schema Type button that matches your page, for example Product for a shop page or Article for a blog post.
- Fill in the fields under the form heading (for example Product Details), or click Load Sample to start from an example and overwrite it. Click Clear to empty the current type.
- Read the Check before publishing list under the code and fix each item.
- Under Output Format, click JSON-LD (Recommended) or Microdata.
- Click Copy Schema, or Download HTML to save a file.
- Paste the JSON-LD block into the
<head>or<body>of the page. For Microdata, merge the attributes into the HTML elements that already show the content. - Click Validate with Schema.org or Test with Google, paste your code or page URL there, and check the result before you publish.
Who can use it
- Bloggers and publishers adding an Article block with author, dates and image, and giving each post a clean address with the slug generator.
- Online shop owners marking up a product with price, currency and availability.
- Local businesses such as cafes, dentists and salons that want a LocalBusiness block with address and phone.
- Event organisers describing a conference or workshop with dates, venue and time zone.
- Developers and SEO specialists who check a hand-written block with the JSON validator, tidy it with the JSON formatter or compact it with the JSON minifier.
- Site builders who paste the result into a template, view it with the HTML beautifier and shrink the page with the HTML minifier.
FAQs
How do I generate schema markup for free?
Click a Schema Type button such as Article or Product, fill in the fields or click Load Sample, and choose JSON-LD (Recommended) or Microdata under Output Format. The code updates as you type. Click Copy Schema, or Download HTML to save a file. There is no account, no limit and no cost.
Where do I paste the generated JSON-LD?
Paste the whole <script type="application/ld+json"> block into the HTML of the page it describes, either in the <head> or in the <body>. In WordPress and most site builders, use a custom HTML block or the header-code field. Each page should carry markup that describes that page, not a copy from another one.
Should I use JSON-LD or Microdata?
Use JSON-LD unless your templates force Microdata. Google recommends it if your site's setup allows it, as the easiest format to implement and maintain at scale. Microdata puts attributes on the elements that show the content, so merge the generated attributes into your existing markup instead of adding a second copy.
Do FAQ and HowTo schema still produce rich results in Google?
No. As of October 2026, Google Search Central says the FAQ rich result stopped appearing in Google Search from 7 May 2026, and it removed the HowTo rich result in September 2023. Both stay valid schema.org types that other tools can read, and this generator still builds them, with a warning.
Does schema markup improve my search rankings?
Not by itself. Google describes structured data as a way to make a page eligible for enhanced results such as product prices, review stars or event dates, not as a promise of a rich result or a higher position. A rich result can still make a listing more noticeable, which may bring more clicks.
What does the Check before publishing box mean?
It lists problems the generator can detect while you type: a missing headline, product name or price, a URL that does not start with https:// or http://, an end date before the start date, or a rating outside 1 to 5. The code is still generated, but fix each item before you publish so the markup is complete.
Is my data sent anywhere when I use this generator?
It runs in your browser; nothing is uploaded (you can check the Network tab in DevTools). The markup is built by a script that ships with the page as you type. The Validate with Schema.org and Test with Google buttons only open those sites in a new tab, and nothing reaches them until you paste your code there.