Technical SEO
What is structured data and schema markup?
Structured data describes a page's content in a format machines can read. Learn JSON-LD, the common schema types, rich results and how to test markup.
What structured data does
Structured data is code on a page that states plainly what the page is about: the business behind it, the product and its price, the article and its author. Search engines and other systems can read it directly instead of inferring meaning from layout and prose.
The shared vocabulary is schema.org, a project founded by Google, Microsoft, Yahoo and Yandex that defines types, such as Product, and their properties, such as price. Google supports three formats (JSON-LD, Microdata and RDFa) and recommends JSON-LD, because it sits in its own script block instead of being woven through your HTML, which makes it easier to add and maintain.
Common types to know
- Organization
- Your company: name, URL, logo, contact details and sameAs links to official profiles.
- LocalBusiness
- A business with a physical location: address, phone, opening hours and coordinates. More specific subtypes exist, such as Dentist or Restaurant.
- Product
- A product page: name, image, brand, and an offer with price, currency and availability, plus genuine reviews and ratings.
- Article
- News, blog and editorial pages: headline, author, published and modified dates, and image.
- BreadcrumbList
- The page's position in your site hierarchy, which Google can display in search results.
- FAQPage
- A list of questions and their answers that appear on the page.
A minimal Organization example
JSON-LD goes in a script element with the type application/ld+json, in the head or the body. This example describes a company and links its official profiles.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Bakery",
"url": "https://www.example.com/",
"logo": "https://www.example.com/images/logo.png",
"sameAs": [
"https://www.linkedin.com/company/example-bakery",
"https://www.instagram.com/examplebakery"
]
}
</script>Use full, absolute URLs, and keep every value identical to what the page and your profiles show.
Valid markup does not guarantee rich results
Some types make a page eligible for rich results, such as product prices, review stars or breadcrumbs in search listings. Eligible is not the same as guaranteed: Google decides whether to show a rich result, and valid markup is only the entry requirement.
Google also changes which features it shows. In August 2023 it limited FAQ rich results to well-known, authoritative government and health websites. FAQPage markup is still valid schema.org and still describes the page to any system that reads it, but most sites should not expect it to change how their listing looks.
Markup must match visible content. Do not mark up reviews, prices or questions that visitors cannot see on the page. Misleading structured data can lead to a manual action that removes rich result eligibility.
How to test your markup
- Run the page through Google's Rich Results Test to see which Google rich result types it is eligible for, along with any errors and warnings.
- Check the markup in the Schema Markup Validator at validator.schema.org, which tests against the full schema.org vocabulary, including types Google does not use for rich results.
- After publishing, watch the rich result reports in Search Console, which flag errors across every page that uses a type.
- Test again after template changes, since one broken template can break markup on every page built from it.
Put it to work
- Free auditCheck your homepage in about a minute and see a preliminary score with your top issues.
- MovesDrafted fixes with a projected score impact. You approve, the connector applies.
More in Technical SEO
- What are Core Web Vitals?Core Web Vitals measure loading, responsiveness and visual stability. Learn the LCP, INP and CLS thresholds, how they are measured and how to fix them.
- What is a canonical tag?A canonical tag tells search engines which URL is the main version of duplicate pages. Learn how it works, how to set it and which mistakes to avoid.
- What is an XML sitemap and what goes in it?An XML sitemap lists the URLs you want search engines to find. Learn what to include, how lastmod is used, the size limits and how to submit one.
- Can crawlers see content rendered by JavaScript?Googlebot renders JavaScript, but many AI crawlers appear to read only the raw HTML. Learn how rendering works and how to keep key content visible to both.
- Which redirect should you use: 301, 302, 307 or 308?Permanent and temporary redirects send different signals. Learn when to use 301, 302, 307 and 308, and how to avoid chains, loops and migration mistakes.
- How to control crawling, indexing and snippetsRobots.txt controls crawling, noindex controls indexing and canonicals consolidate duplicates. Learn what each one does and when to use which.
- How to write title tags and meta descriptionsTitles and meta descriptions shape how a page appears in search results. Learn how to write them, why Google rewrites them and how long they should be.