What does a schema markup generator do?
It writes the JSON-LD block that describes a page in the vocabulary search engines understand. You pick what the page is — an article, a product, a recipe, a job posting, a set of questions and answers — and fill in the fields that matter for that type, and the tool produces a script tag ready to paste into the head.
The value is in the required properties. Structured data is only used when it is both present and complete, so a Product without a price or an Article without a publish date is ignored rather than partially recognised. The tool knows which properties each type requires and says plainly what is still missing, which is the difference between a snippet that works and one that looks correct and does nothing.
It also handles the parts that are tedious to get right by hand. The nested nodes each type implies — an author as a Person, a publisher as an Organization, an address as a PostalAddress, an offer with the price and the currency in the right place — are assembled from the flat fields you fill in. Dates use the ISO format, times use ISO 8601 durations, and the FAQ and breadcrumb types take a simple line-per-item format rather than JSON you would have to write yourself.
How to generate schema markup
- Choose the schema type that matches what the page is. If a page is an article about a product review, the article is the type — one entity per page.
- Fill in the fields. Required ones are marked with an asterisk, and the note under the selector explains what matters most for the type you have chosen.
- Watch the message above the output. A green note means every required property is filled; an amber one lists what is still empty.
- For the FAQ, HowTo, Recipe, Organization and breadcrumb types, enter one item per line, using the separator the field asks for.
- Copy the script tag and paste it into the head, or download the JSON-LD as a file if your CMS imports it.
- Check the values against the rendered page. Every property should be visible to a visitor, and the values should match what is on the page word for word.
Schema Markup Generator limits and rules
| Item | Limit |
|---|---|
| Types | Article, Product, FAQPage, HowTo, LocalBusiness, Organization, WebSite, Event, Recipe, JobPosting, VideoObject and BreadcrumbList |
| Format | JSON-LD in a script tag, which is the format search engines recommend |
| Nested nodes | Author, publisher, address, offer, rating, steps and question nodes are assembled for you |
| Dates | ISO 8601 from the date picker, as required |
| Durations | ISO 8601 durations such as PT30M, which you enter in the time fields |
| Validation | Required properties are checked; the output is always syntactically valid JSON |
| Not done | Fetching your URL, validating against live search engine requirements, or checking the page itself |
| Not done | Types outside the list, and combinations of several types in one block |
When to use it
- Adding FAQ markup to a page of questions you already display.
- Marking up a product page with a price, availability and rating.
- Declaring an organisation and its logo so it can appear in a knowledge panel.
- Describing a how-to article so the steps can appear in the result.
- Fixing markup that a validator says is incomplete by seeing which required property is missing.
Is it private?
The JSON-LD is assembled by JavaScript in this page from the values you type. Nothing is uploaded, no URL is fetched and nothing is stored, so you can draft markup for a page that is not public yet.
Frequently asked questions
Not directly, and the distinction matters. Google states that structured data is not a ranking factor, and what it does instead is make a result eligible for a richer presentation — a star rating, a price, a recipe time, a question accordion. Those richer results tend to be clicked more often, and click-through rate is a factor in how a page performs, so the gain is real but indirect. What structured data does do directly is state facts machine-readably, which is why a page with prices, ratings or opening hours is much better described with it than without.
Because it separates the description from the markup. Microdata and RDFa embed the structured data in the HTML attributes of the page itself, which couples it to the exact elements that render it; restructure the template and the markup silently breaks. JSON-LD is a single script block that names the page it describes, so it lives in one place, it can be generated from data the page already has, and a design change cannot invalidate it. That is why it is the format Google recommends and the one this tool produces.
Yes, and many pages legitimately do — an article on a site that also declares the organisation, with a breadcrumb trail alongside. The rule is that one entity of a given type is described once, so you should not have two separate Article nodes for the same article. Where several nodes describe the same thing, connect them with a shared @id rather than repeating the properties. This tool emits one node per generation, which you can then combine in a single script block or add as separate ones.
The output is still valid JSON and will not break your page, but the search engine will most likely ignore the markup instead of using it, and in some cases will report an error in Search Console. The tool flags the gap before you paste anything, and the amber message lists exactly which fields are still empty. Treat the required set as a minimum rather than a target: a Product with a name and a price but no image or description is technically complete and practically much less useful.
Yes, and that is the normal pattern — FAQ content is usually collapsed on the page. What matters is that the question and its answer are present in the HTML and visible to a visitor once expanded, not hidden behind a login or revealed only by JavaScript on interaction. Marking up questions that are not on the page, or answers that differ from the visible text, is misrepresentation, and it is the most common reason sites lose FAQ rich results. The honest test is simple: could a visitor read the same question and answer on the page.
In the head or the body; both are valid, and Google reads either. Placing it in the head keeps all the page metadata together, which most people find easier to maintain, while placing it near the content it describes can help when the markup is generated by a component. What matters more than position is that it is present in the HTML the crawler receives rather than injected later by client-side JavaScript, and that the values match the rendered page.
Related tools
Written and maintained by Md. Nur Hossain Repon.