Structured Data & Schema.org
Structured data tells search engines what your content means. Get the schema types worth implementing, a working JSON-LD example and how to validate it.
Structured data, schema markup, product schema. If you work with websites or SEO you have run into at least one of those terms, usually without a clear explanation of what sits underneath them.
Structured data is extra technical information on your page that states what your content means. Not what it says, which the crawler can already read, but what each part of it is: that this number is a price, this string is an author, this block is a set of opening hours.
A person reading a page infers all of that from context, position and formatting. A search engine does not have that intuition. Structured data removes the guesswork, and it is the difference between a machine hoping it understood your product page and knowing it did.
The formats, and the one to use
You can add structured data in three formats: JSON-LD, Microdata and RDFa. Microdata is effectively legacy at this point, and RDFa is rare outside publishing. JSON-LD sits in a script tag, separate from your visible markup, which makes it far easier to maintain, template and validate. It is also the format Google recommends. Use JSON-LD and ignore the other two.
What it actually earns you
Correct markup makes your result eligible for rich results: the review stars, prices, availability, breadcrumbs, event dates and recipe details that make a listing take up more space and answer more of the question before the click. That usually lifts click-through rate, which is the practical reason to bother.
Two clarifications worth having, because both get repeated incorrectly.
Eligible is not guaranteed. Structured data qualifies a page for a rich result. Google still decides whether to show one, and the same markup can produce a rich result for one query and a plain listing for another.
Featured snippets are not structured data. The answer box at the top of some result pages is selected from ordinary page content, based on how directly a passage answers the query. Clear writing and sensible headings get you there. Schema does not.
It is also worth knowing what has been withdrawn. Google retired FAQ rich results for most sites and HowTo rich results entirely in 2023, so marking those up no longer changes how your listing looks. The markup can still help a machine parse the page, and it will not win you display real estate.
The types worth implementing
Some content is an obvious fit for markup, some is not, and there is a schema type for almost everything either way. In practice, five types cover the majority of commercial sites.
Organization on your front page, and LocalBusiness if you have physical locations. Name, logo, address, contact details, and sameAs links to your profiles elsewhere. This is the markup that ties your brand to a specific entity rather than a name that happens to appear on a page.
Article on individual posts and guides. Include the sender, not just the content: author, publisher, publication date and last modified date. Credibility is part of what you are declaring.
Product on product pages, where the commercial return is largest. Product markup requires at least one of offers, aggregateRating or review. Once one is present the other two are optional, and adding the ones you legitimately have gives Google more to display.
BreadcrumbList on anything nested. It is quick to implement, it clarifies your hierarchy, and it changes how the URL line renders in the results.
Event, JobPosting and Recipe where they apply. Each has its own required properties and each produces a distinct result format.
Here is what a straightforward Article implementation looks like:
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Article",
"headline": "{{the article headline}}",
"description": "{{short description of the article}}",
"author": {
"@type": "Person",
"name": "{{author name}}"
},
"publisher": {
"@type": "Organization",
"name": "{{company name}}",
"logo": "{{company logo URL}}"
},
"datePublished": "2026-01-14T10:00:00Z",
"dateModified": "2026-06-10T09:15:00Z"
}
</script>
How to implement it without guessing
Start with an inventory rather than a plugin. Go through your templates and list what each one actually contains: a blog template, a product template, a category template, a location template. Then cross-reference schema.org and Google's search gallery to find the type that matches each one.
Then fill in more than the required minimum. Read the full property list for your chosen type from top to bottom and check each one against what is genuinely on the page. Teams routinely discover they have the phone number in the footer and the type they are implementing has a telephone property waiting for it. Those small additions are what turn a technically valid markup into a useful one.
One rule governs all of it: the markup must describe what a visitor can see. Marking up reviews you do not display, prices that are not on the page or ratings you invented is a spam policy violation under Google Search Essentials, and the penalty is losing rich results across the site rather than on one page.
Validate, then keep watching
Three tools cover the lifecycle. The Rich Results Test tells you whether a page qualifies for a specific result type. The Schema Markup Validator checks your markup against schema.org itself, including types Google does not use. And the enhancement reports in Google Search Console show errors at scale, across every URL in the affected template, which is where the real problems surface.
Template-level errors are the ones to hunt for. A single broken product page costs you one listing. A missing required property in the product template costs you all of them, and that is exactly the kind of finding a technical audit is built to surface.
Why this matters more in AI search
Language models building an answer are looking for facts they can lift with confidence. Explicit, machine-readable statements about price, availability, author and organization are easier to use than the same facts implied by layout, and sameAs links help a model connect your brand to the right entity instead of a similarly named one.
Structured data is the technical half of the same job semantic SEO does with language: making the meaning of your content unambiguous. Clear writing for the reader, explicit markup for the machine, and the two saying the same thing.
If you want to know which templates on your site are missing markup, and which ones are declaring something they should not, our free SEO analysis covers the technical setup alongside content and visibility.
