ToolsForWeb

Saved

Tap ☆ on any tool to keep it here.

toolsforweb

JSON-LD Schema Generator

Build schema.org JSON-LD for Article, FAQ, Breadcrumb, Organization, LocalBusiness and Product.

Runs in your browser — nothing is uploaded

Loading tool…

Results are provided as is, for general information. Check anything important before relying on it. See the Terms of Use.

About this tool

Pick one of six schema.org types and fill in its fields to assemble JSON-LD in your browser: Article, FAQPage, BreadcrumbList, Organization, LocalBusiness or Product. Author and publisher fields become nested objects; questions, breadcrumb items and other lists use repeating rows. Empty fields are omitted, so review the result for completeness before publishing. FAQPage remains a schema.org type, but Google stopped showing FAQ rich results on May 7, 2026. The generator keeps FAQ support and explains that limit when selected. Hints for other types cover selected Google properties, not a complete eligibility assessment.

When to use it

Describing an article, product or FAQ page with schema.org markup; Google feature support varies by type.
Hand-writing a small amount of JSON-LD and wanting the nesting, @type values and schema.org URLs correct without looking them up.
Generating a BreadcrumbList or Organization block once and pasting it into a template or CMS field.
Checking which properties Google treats as required or recommended for a given type before you brief a developer.

Questions

What is JSON-LD and why does Google prefer it over microdata?

JSON-LD (JSON for Linking Data) is a single script block that describes the page's meaning — its type, title, author, price and so on — in a structured form search engines can read directly. Microdata and RDFa do the same job but by scattering attributes through the HTML, so the markup and the visible content are tangled together and easy to break during a redesign. Google's documentation recommends JSON-LD precisely because it sits in one place, is generated server-side or by a tag manager without touching the layout, and is the format its own tools and examples use. All three formats are still parsed, but new markup should be JSON-LD.

Where does the <script> tag go?

Anywhere in the page — <head> or <body>, Google reads it from either. The convention is to put it in the <head> alongside the other metadata, or to inject it at the end of <body> via a tag manager. What matters is that the exact block is present in the HTML Google receives; if it is added by client-side JavaScript after load, make sure the rendering path Google uses actually runs that script. Tick "Wrap in a <script> tag" to get the block with the correct type attribute already on it.

Does adding this markup guarantee a rich result?

No. Correct JSON-LD does not by itself establish Google feature eligibility. A supported feature also has its own content and property requirements, and Google decides whether to show it. FAQ rich results were retired on May 7, 2026: FAQPage can still describe your content, but it does not enable that retired Google feature.

Should a page have one @type or several?

One primary type that describes what the page is — an Article, a Product, a FAQPage. You can legitimately add more than one block when a page genuinely serves two roles, for example an Article that also carries a BreadcrumbList for the navigation path. What you should not do is claim a type the page is not; a blog post is not a Product just because it mentions one. This tool generates one type at a time — run it once per block and paste each into the page.

What is the @graph array?

@graph lets you put several related nodes in a single script block: instead of two separate <script> tags for an Article and its BreadcrumbList, you write one block whose @graph is an array of both nodes, often cross-referenced by @id. It is purely an organisational convenience — Google treats the nodes the same either way. This tool emits one node per run; if you prefer a single block, drop the two outputs into an @graph array yourself and give each an @id.

How do I test the output?

Use the Schema Markup Validator at validator.schema.org to check vocabulary. For features Google currently supports, use its separate Rich Results Test at search.google.com/test/rich-results. Our JSON-LD Validator runs a smaller local checklist and is not Google's test. FAQPage remains supported as vocabulary, while its Google FAQ rich-result feature was retired on May 7, 2026.

How does nesting work for the author and publisher?

Article's author and publisher are not strings — they are nested nodes. author is a Person (or Organization) with its own name and url; publisher is an Organization with a name and a logo, and the logo is itself an ImageObject with a url. This tool takes the flat fields you fill in — "Author name", "Author URL", "Publisher name", "Publisher logo URL" — and builds those nested objects for you, omitting any level you leave empty. If you write the JSON by hand, that is the structure to reproduce.

What is sameAs for on an Organization?

sameAs is a list of URLs that unambiguously identify the same entity elsewhere — your company's LinkedIn page, X profile, Wikipedia article, Crunchbase entry. It helps search engines connect your Organization node to the wider web and to knowledge-graph data about you. Add the official profile URLs, not every page that mentions the company. In the tool it is the repeating "Social / profile URLs" field.

What happens if the markup and the visible page disagree?

Google's structured-data policies require the markup to describe content that is actually present and visible on the page. Rating stars in your JSON-LD with no reviews on the page, a price that differs from the one shown, FAQ answers that do not appear in the body — all of it risks a manual action that removes your rich results site-wide, not just on the offending page. Regenerate the block whenever the page content changes, and never mark up something a visitor cannot see.

Sources

Related tools