scalpel@labs: ~/glossary/structured-data-schema.mdx5 sections

Structured Data and Schema Markup Explained

Structured data is markup, usually JSON-LD, that describes a page's content in schema.org vocabulary so search engines parse it as data instead of inferring from prose. It enables rich results: star ratings, FAQs, recipes, and product prices in Google search.

extension: Scalpel SEOupdated: 2026-08-14read_time: 2 min
less structured-data-schema.mdx

Why it matters

Correct structured data is the difference between a plain blue link and a rich result with extra visual space and higher click-through. But it earns nothing by itself. Google treats it as eligibility, not a ranking boost. It can ignore or act against markup that misrepresents the visible page. Getting the type and required properties right is what unlocks the eligible rich result.

How it works

Structured data uses a standardised vocabulary (schema.org) to label page content. A Product block declares price, availability, and reviews. An Article block declares author, publication date, and headline. A Recipe block declares ingredients, cook time, and instructions. Search engines extract this data and use it to populate rich results, answer boxes, and knowledge panels.

Three syntaxes exist: JSON-LD (Google's recommendation, a script tag in the head), microdata (HTML attributes alongside your content), and RDFa (also embedded in HTML). JSON-LD is easiest to maintain because it lives in one place and doesn't require attributes scattered through your HTML.

What does not matter

Structured data does not guarantee a rich result will appear. Providing markup is necessary but not sufficient. Google uses it to understand eligibility, then applies editorial discretion. A page with perfect, complete schema can still be shown as a plain link if Google judges the rich result wouldn't fit the query or the content is thin. Structured data is also not a ranking factor on its own. It only affects display format and click-through rate.

Code example

Here is a complete, valid JSON-LD Product block:

<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Executive Anvil",
  "image": "https://example.com/photos/1x1/photo.jpg",
  "description": "Sleek and powerful.",
  "brand": {
    "@type": "Brand",
    "name": "ACME"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/anvil",
    "priceCurrency": "USD",
    "price": "119.99",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "ratingCount": "89"
  }
}
</script>

This block declares a product with price, availability, images, and review rating. Each property maps to schema.org's documented vocabulary for the Product type. Validation against the Rich Results Test will confirm whether all required properties are present.

How Scalpel shows it

The Schema tab parses and lists every structured data block found on the page, showing its type, raw JSON-LD or microdata, and a checklist of required and recommended properties. Scalpel flags incomplete blocks so you can see what's missing before publishing.

Sources