Skip to main content
SlapMyWeb
Structured Data

Schema Markup

The schema.org vocabulary written as JSON-LD — the code that states what a page is about.

Schema markup is structured data added to a page in schema.org vocabulary, usually as JSON-LD, that states explicitly what the page is about. It makes a page eligible for rich results, and it gives retrieval systems a machine-readable account of the content instead of leaving them to infer it from the prose.

Definition

Schema markup is the concrete implementation of structured data: the vocabulary from schema.org, written in JSON-LD, that states explicitly what a page is about. Where structured data is the concept, schema markup is the code you paste into the page.

JSON-LD is the format Google recommends — a single <script type="application/ld+json"> block that sits apart from the visible markup, so changing the layout does not break it.

The rule that governs all of it: the markup must describe what a visitor can actually see on the page. Marking up reviews that are not shown, or a price that is not offered, is a manual-action risk, not a shortcut.

How common is this?

Across every site SlapMyWeb has audited, 31.6% ship structured data — which leaves 68.4% with no schema markup at all.

31.6%68.4%

Measured from SlapMyWeb audits of live public URLs. The full aggregate is published as a CC-BY-4.0 dataset.

Why It Matters

Schema markup is what makes rich results possible: star ratings, FAQ accordions, breadcrumb trails, recipe cards, event listings. It does not raise rankings directly, but it changes how much space and detail a result occupies, which changes clicks.

It has also become the cheapest way to be legible to AI systems, which read declared types and relationships far more reliably than they infer them from prose.

Example

A minimal, valid block for an article:

<script type="application/ld+json">
{"@context":"https://schema.org","@type":"Article",
 "headline":"How to run an SEO audit",
 "datePublished":"2026-09-02",
 "author":{"@type":"Organization","name":"SlapMyWeb"}}
</script>

One caveat specific to Next.js: injecting JSON-LD through next/script keeps it out of the server-rendered HTML, so a non-rendering crawler never sees it. Use a plain <script> tag.

Know the term.
Check your own site.

A free audit tells you whether this is currently costing you score points — and exactly what to change.

Run a free audit
Free foreverNo signupResults in 30s