Schema markup
What is schema markup?
Schema markup is structured data that uses the schema.org vocabulary to describe the things on a page, such as a product, an article, a recipe, an event or a local business, in a form search engines can read. It is usually written as JSON-LD. Google, Microsoft (Bing) and Yahoo launched schema.org in 2011, and Yandex joined later that year.
Schema.org is organised as types with properties. Types form a hierarchy: LocalBusiness is a kind of Organization, which is a kind of Thing. Properties can hold text, numbers, dates or other types, so a Product has an `offers` property holding an Offer, which has its own `price` and `priceCurrency`.
Schema.org defines hundreds of types, but Google only uses a subset for rich results, each with its own required properties. Markup outside that subset is still valid and can help search engines understand the page; it just will not produce a special result in Google.
Why schema markup matters for SEO
Schema markup is how pages qualify for rich results, such as product prices and availability, review stars, event dates and breadcrumbs in place of the URL. Those results stand out on the SERP and can earn more clicks.
It also makes entities explicit. Organization markup with `sameAs` links to your official profiles, and author markup with a profile URL, help search engines connect your pages to the right business and people.
How to add schema markup
- Choose the most specific type that fits: Product, not Thing; Restaurant, not just LocalBusiness.
- Fill in Google’s required properties for that type, then as many recommended ones as you can support accurately.
- Write it as JSON-LD in a `<script type="application/ld+json">` block, generated from the same data that renders the page.
- Keep it truthful: every value must match what users see on the page. Fake or hidden review markup is structured data spam.
- Test in the Rich Results Test, then monitor the enhancement reports in Search Console.
Schema markup example
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Trail running shoe",
"image": "https://www.example.com/images/trail-shoe.jpg",
"description": "Lightweight trail shoe with a grippy outsole.",
"sku": "TRS-042",
"brand": { "@type": "Brand", "name": "Example" },
"offers": {
"@type": "Offer",
"url": "https://www.example.com/shoes/trail-running-shoe",
"price": "89.99",
"priceCurrency": "GBP",
"availability": "https://schema.org/InStock"
}
}
</script>Schema markup FAQ
Does schema markup help SEO?
It does not raise rankings directly, but it makes pages eligible for rich results, which can improve click-through rate, and it helps search engines understand your content.
Which schema types should I use?
Use the types that match your content and that Google supports in its Search Gallery: often Organization, BreadcrumbList, Article, Product and LocalBusiness. Don’t add types that do not describe what is on the page.
Related SEO terms
Structured data is code in a standard format that describes a page’s content to search engines, making it eligible for rich results.
JSON-LD is a JSON-based format for structured data, placed in a script tag. It is the format Google recommends for schema markup.
Rich results are Google search results with extra visual features, such as star ratings, prices or event dates, usually powered by structured data.
Rich snippets are search results enhanced with extra details, such as review stars, prices or cooking times, usually from structured data.
LocalBusiness schema is structured data that describes a business’s name, address, phone, hours and more in a format search engines can read.
Breadcrumbs are a row of links showing where a page sits in a site’s hierarchy, such as Home > Shoes > Running. They help users and search engines.
An entity is a distinct, identifiable thing, such as a person, place, organisation or product, that search engines and AI models recognise.