Schema markup generator

Six types, valid JSON-LD, and nothing in the output you did not fill in. It runs in your browser, so your prices and your address stay on your machine.

Schema markup states what a page is, in a form a parser can read without guessing. Fill in what is true about the page and copy the block out. Anything you leave blank is omitted rather than stubbed, because markup describing something your page does not show is the one structured data mistake with a penalty attached rather than a shrug.

Your details

What is this page?

The block that decides whether anything can resolve who you are. Put it site-wide.

Only profiles that exist and are genuinely yours. A sameAs pointing at a dead handle asserts a connection that does not resolve, which is worse than an absent one.

JSON-LD 6 lines · 111 bytes
  • No name. This is the one property the block cannot do without.
  • No sameAs. It is the property that connects this site to the same company elsewhere, and it is the one most often left out.
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization"
}
</script>

Paste this into the HTML your server sends, in the head or the body — placement makes no difference to a parser. What does matter is that it is in the served markup rather than injected later by JavaScript, because plenty of things reading your page never run scripts.

The three ways schema actually breaks

From auditing a lot of live pages. They are not exotic, and they are in this order.

It does not parse, so all of it is discarded

A malformed block is not partially read. One trailing comma, one smart quote pasted out of a document, one unescaped quote inside a string, and the entire block is dropped with no warning in any interface. The page looks right, the source looks right, and nothing downstream ever saw it. Paste the output into any JSON parser before you ship it and this whole class is gone.

It describes something the page does not show

A rating with no reviews on the page, a price the page does not display, questions a visitor cannot see. This validates perfectly, which is why it survives, and it is the failure with an actual policy behind it. Read the block back against the rendered page once. It takes thirty seconds and it is the only check here that needs a person.

It is injected by JavaScript

The block exists in the rendered DOM and is absent from the HTML that was served. Anything reading your page without executing scripts — which is most of the retrieval ecosystem — sees no structured data at all. Therender gap checker shows you the difference between the two versions of your own page.

And one thing that is not a failure

Missing a rich result is often correct rather than broken. Google withdrew the FAQ rich result on 7 May 2026 and removed its documentation the following month, so valid FAQPage markup now earns no result and is still worth publishing for extraction. A tool that reports that as an error is describing a feature that no longer exists.

Which type to add first

Organization and WebSite, site wide, before anything else. The Organization block is what lets anything resolve who published a page, and sameAs is the property that connects this site to the same company on other platforms. Without it a model reading your page has the words and no confirmed identity to attach them to, which is the exact condition under which it credits a directory or a competitor instead of you.

Then the type that matches the page. Article on writing, Product on products, LocalBusiness where there is a physical presence. Breadcrumbs are cheap and mechanical and worth adding on anything more than two levels deep.

Then stop. Adding types you cannot fill honestly is how a site accumulates markup that is technically valid and quietly wrong. If you want the same six types as copy-and-paste examples with the reasoning attached, they are inschema markup examples that validate, and theschema markup prompt is the version that writes a block from a page you describe.

Check it after you paste it

Three tools, answering three different questions. A page can pass one and fail another.

  1. Does it parse, and is it in the served HTML?Our structured data checker fetches the page the way a crawler does, extracts every block and reports which parse and which types they declare. That is the failure mode that accounts for most schema that exists and does nothing.
  2. Is the vocabulary used correctly?The Schema Markup Validatoranswers that broadly, across the whole vocabulary rather than against one Google feature.
  3. Is a specific rich result available to you?Google’s Rich Results Testanswers only that narrower question, and it is the right tool when the answer you want is about a feature rather than about correctness.

Questions people ask

What is schema markup?

A vocabulary for stating what a page is about in a form a machine can parse, rather than leaving it to be inferred from prose. It is written as JSON-LD inside a script tag and it changes nothing a visitor sees. Its whole job is removing ambiguity: this string is the author, this one is the price, this date is when it was published.

Where do I put the generated code?

In the HTML your server sends, inside a script tag with type application/ld+json. Head or body makes no difference to a parser. What does matter is that it is in the served markup rather than injected later by JavaScript, because a large share of the things reading your page never run scripts and will see no structured data at all.

Does schema markup improve rankings?

Not directly, and that is the wrong reason to add it. It creates eligibility for the rich results that still exist, and it removes ambiguity for anything trying to resolve what your page and your organisation are. Google’s own guidance published in May 2026 lists over-focusing on structured data among the things people get wrong about generative AI search, while still recommending it for ordinary rich result eligibility.

Why is there no FAQ rich result any more?

Google deprecated it. A notice went on the documentation on 8 May 2026, the feature stopped appearing in results on 7 May 2026, and the documentation page itself was removed in June 2026. FAQPage markup is still worth publishing, for a different reason: a marked up question and answer pair is the most extractable shape a page can contain, which is what decides whether an assistant can lift a clean passage out of you.

Why does the generator leave properties out?

Because you left them blank, and markup describing something you cannot fill honestly is a liability rather than a gap closed. A minimal block that is entirely true outperforms a complete one that is partly invented, and the invented half is what gets a site penalised.

Why is my schema not working?

Almost always one of three things. It does not parse as JSON, so the whole block is discarded silently — one trailing comma or one smart quote pasted from a document is enough. It describes something the page does not display, which is a policy problem rather than a technical one. Or it is injected by JavaScript and the fetcher never ran any.

Is anything I type here sent to your servers?

No. The page assembles the JSON in your browser and calls nothing. Building a JSON-LD block from a form is deterministic string work, so there is no reason for a server to see your prices, your address or your draft article.

See what your page
actually exposes today

Free account, no card. Paste your URL and get a real, scored report of your AI and search visibility.

Measuring rankings in