A blog post byline
Article is the only branch that emits an author, nested as a Person object, alongside the publication date. The name box becomes headline rather than name.
Schema Type → Article; Name becomes headline
Fill a short form and get a valid JSON-LD script tag for Article, WebSite, FAQ, Product, or Organization structured data.
Content last reviewed
Overview
Nothing here can produce broken JSON: the object is handed to the browser's own serialiser, so quoting and escaping are correct by construction. What it cannot do is check that the properties are the ones your chosen type needs, or that they describe anything a visitor can actually see.
The menu offers Article, WebSite, FAQPage, Product and Organization, but Product and Organization run the same fallback and emit the same three properties. Only the `@type` line separates them.
Escaping and indentation are the serialiser's work, so a quote or backslash in your text cannot break the block. Everything after that is unexamined: nothing checks that the URL is a URL, the date is a date, or the required properties are present.
A single type, a single block, and for FAQPage exactly one question. A page needing both Organization and Article markup takes two passes and two separate blocks.
Each type reads only the properties it uses, and the form never hides or dims the rest. Choose FAQPage and the URL, author and date you filled in are all dropped from the output, with no notice anywhere on screen.
How it works
Six steps, in the order the tool above actually takes them.
Article is selected on load. The choice decides which of four mappings runs.
All five boxes arrive holding real example text, not greyed-out placeholders.
The output rebuilds on every keystroke, dropping whatever the chosen branch does not read.
One control, one string, always wrapped in its own script tag.
Head or body, so long as it reaches the HTML the crawler is served.
Google's Rich Results Test is the only check anywhere in this process.
Use cases
The jobs this page is usually opened for, and the setting that makes each one quick.
Article is the only branch that emits an author, nested as a Person object, alongside the publication date. The name box becomes headline rather than name.
Schema Type → Article; Name becomes headline
WebSite emits name, url and description, and reads nothing else. The two remaining boxes stay on screen and are discarded.
Schema Type → WebSite; Author and DatePublished ignored
FAQPage puts the name box inside a Question and the description box inside its acceptedAnswer. A second question has to be added to the array by hand.
Schema Type → FAQPage. The Url, Author and DatePublished boxes are all dropped.
Organization emits name, description and url — the outer shape you then extend with logo, sameAs and address, none of which this form collects.
Schema Type → Organization; three properties only
Product produces the same three properties as Organization and no offers, so as generated it will not qualify for shopping-style treatment.
Schema Type → Product; add offers after pasting
Fill the fields once, then switch the type and watch which properties survive. The mapping is quicker to learn from the output box than from the vocabulary.
The read-only output box regenerates on every keystroke
Before you paste
The output is always syntactically valid, which is the least demanding thing that has to be true about it. Each row below is a way a block that parses cleanly still describes something other than your page.
| Where it bites | The assumption | What the form actually does |
|---|---|---|
| Clearing a box removes the property | An empty field is assumed to drop out of the JSON the way an unused field does. | There is no emptiness check anywhere in the mapping. An empty Description emits "description": "" — a property that is present and says nothing, which reads worse than an absent one. Delete the line after pasting. |
| The box labelled Name | Read as the Schema.org name property, because that is what the label says. | It becomes headline for Article, the Question text for FAQPage, and name only for WebSite, Product and Organization. The label never changes to say which. |
| Visible fields are used fields | The form is assumed to follow the type, so a box on screen must be going somewhere. | All five boxes render for every type. WebSite discards Author and DatePublished, and FAQPage discards the Url you are looking at while filling it in. They vanish from the output with no explanation. |
| The starting values are placeholders | "My Article", "John Doe" and "https://example.com" look like grey placeholder text. | They are real values held in state, so the block is complete and copyable before you have edited anything. Every field has to be replaced, the date included. |
| DatePublished is a date field | Assumed to enforce the ISO format the page recommends. | It is a plain text box with no format check and no calendar. Whatever you type is emitted verbatim, so a prose date reaches your page looking exactly as valid as a correct one. |
| Escaping makes the block safe to paste | Because the serialiser handles quotes and backslashes, any text is assumed to survive the trip into HTML. | It is safe as JSON, not as HTML. A literal </script> typed into a description closes the tag early once the block is in a page. Nothing here guards against that, and it is the one sequence worth checking for. |
An empty field is assumed to drop out of the JSON the way an unused field does.
There is no emptiness check anywhere in the mapping. An empty Description emits "description": "" — a property that is present and says nothing, which reads worse than an absent one. Delete the line after pasting.
Read as the Schema.org name property, because that is what the label says.
It becomes headline for Article, the Question text for FAQPage, and name only for WebSite, Product and Organization. The label never changes to say which.
The form is assumed to follow the type, so a box on screen must be going somewhere.
All five boxes render for every type. WebSite discards Author and DatePublished, and FAQPage discards the Url you are looking at while filling it in. They vanish from the output with no explanation.
"My Article", "John Doe" and "https://example.com" look like grey placeholder text.
They are real values held in state, so the block is complete and copyable before you have edited anything. Every field has to be replaced, the date included.
Assumed to enforce the ISO format the page recommends.
It is a plain text box with no format check and no calendar. Whatever you type is emitted verbatim, so a prose date reaches your page looking exactly as valid as a correct one.
Because the serialiser handles quotes and backslashes, any text is assumed to survive the trip into HTML.
It is safe as JSON, not as HTML. A literal </script> typed into a description closes the tag early once the block is in a page. Nothing here guards against that, and it is the one sequence worth checking for.
Privacy
The schema is built and serialised in this tab and the only route out of it is the clipboard, when you press Copy; the page itself sends one anonymous request per view carrying the tool slug and nothing else, and that request is skipped entirely when your browser sets Do Not Track or Global Privacy Control.
Every result on these pages is computed by JavaScript in this tab while you type. There is no submit step, no job, and no request that carries what you entered.
No draft, history or recent list is written to storage. Closing the tab discards the lot, and a reload brings back the built-in example rather than your work.
Each tool page records that it was opened, sending the tool's slug and nothing else. It carries no text you typed, and it is skipped when your browser signals Do Not Track or Global Privacy Control.
The endpoint behind the counter is rate-limited like any other, which records a requesting address briefly to enforce the limit. It is never joined to what you typed, because none of it is sent.
More detail in how processing works and our privacy policy.
Limits
The values this tool actually enforces, not a rounded-up version.
Each type emits its core properties only: no images, publisher logos, prices, ratings, or breadcrumbs, which some rich-result formats require — treat the output as a correct skeleton to extend rather than exhaustive markup. FAQPage produces a single question-and-answer pair per generation; for a multi-question page, generate the block and duplicate entries inside the mainEntity array by hand. The form fields are shared across types, so fields a type does not use are ignored rather than hidden. The tool does not validate against Google's per-type requirements — the Rich Results Test remains the authority.
FAQ
The ones that actually come up.
Guides