Glossary

Structured data

Structured data is markup that states the facts of a page in a defined vocabulary, so that a machine reading the page does not have to infer them from prose: that this is a product, that its price is this, that the article was published on that date. On the web the vocabulary is almost always schema.org, and the most common serialisation is JSON-LD. Search engines use it to understand pages and, for some types, to display richer results.

Vocabulary and syntax are separate choices

schema.org is the vocabulary: the set of types and properties — `Article`, `Product`, `Organization`, `FAQPage` — and what each means.

JSON-LD, Microdata and RDFa are three syntaxes for expressing that vocabulary. JSON-LD is a script block in the head or body; the other two annotate the HTML in place.

Google's own documentation states a preference for JSON-LD, chiefly because it is a separate block that can be generated and validated without touching the markup around the content.

The vocabulary is far larger than what any search engine consumes. Most of it is understood by nothing in particular, which is not an argument against using it but is worth knowing.

What it is used for

Rich results: review stars, product prices and availability, event dates, recipe details, breadcrumb trails in place of URLs. Each has its own documented required and recommended properties.

Entity understanding: connecting a site to an organisation, a person or a place that a search engine already knows about.

Consumption by anything else that reads pages — aggregators, assistants, summarisers — for which a stated fact is far more reliable than an inferred one.

Eligibility is not entitlement. Correct markup makes a rich result possible; the search engine still decides whether to show one.

The mismatch rule

Structured data must describe what is actually on the page. Marking up a price the page does not show, or reviews that do not exist, is a policy violation rather than an optimisation.

Google's structured data guidelines state this explicitly, and the consequence of ignoring it is a manual action removing rich result eligibility for the site.

The common accidental version is a template that emits an aggregate rating on every page including ones with no reviews, usually with a hard-coded value.

Markup that becomes stale — an event date in the past, a price that changed — is the same problem arriving slowly.

How to validate it

`curl -s https://example.com/page | grep -A5 'application/ld+json'` shows the JSON-LD blocks in the served HTML.

Google's Rich Results Test reports which rich result types a page is eligible for and which required properties are missing.

The Schema Markup Validator checks the markup against the vocabulary itself, independently of any search engine's requirements.

Check the rendered page as well as the source when the markup is injected by JavaScript, and check that the values match what the page displays.

Frequently asked questions

Does structured data improve rankings?
It is not a ranking factor. It can change how a result is displayed, which affects click-through, and it helps machines understand the page.
Which format should I use?
JSON-LD. It is the format Google's documentation states a preference for, and it can be generated and validated separately from the HTML it describes.
What happens if the markup does not match the page?
It violates the structured data guidelines and can lead to a manual action removing rich result eligibility for the whole site.

Sources

Related

VeriFixScan crawls a site and applies its checks to every page it reaches, keeping the evidence behind each finding. Scanning one website is free.

Scan a website