- Schema markup is code that describes a page in the schema.org vocabulary, so search engines can read facts like a product's price or an article's author.
- Google reads JSON-LD, Microdata and RDFa, and recommends JSON-LD because it sits in one script block.
- Article, Product, LocalBusiness, BreadcrumbList, Organization, Event, Recipe and VideoObject can still earn rich results. FAQ rich results are limited and HowTo was removed.
- Structured data is not a ranking factor and does not guarantee a rich result; it makes a page eligible.
- Build markup with the free schema generator, then check the live page with the schema validator.
What is schema markup?
Schema markup, also called structured data, is code that describes the things on a page, such as a business, an article or a product, in a vocabulary search engines share.
The vocabulary comes from schema.org, a project started by Google, Microsoft, Yahoo and Yandex. It defines types such as Organization, Article and Product, and properties such as name, author and price.
A visitor reads "Blue Trail Running Shoe, $89.99, in stock". Structured data states the same facts in a fixed format, so a crawler does not have to guess which number is the price. Google uses it to understand the page and, for some types, to show a rich result such as a product price or a breadcrumb trail. See Google's introduction to structured data.
JSON-LD vs Microdata vs RDFa
Google supports all three formats and recommends JSON-LD, because it lives in one script block instead of being woven through the HTML.
Structured data formats compared
| Format | Where it goes | Good to know |
|---|---|---|
| JSON-LD | A <script type="application/ld+json"> block in the head or body | Recommended by Google. Easy to add from a template, CMS field or tag manager without touching the visible HTML. |
| Microdata | itemscope, itemtype and itemprop attributes on visible HTML elements | Supported, but markup breaks when the page design changes. |
| RDFa | vocab, typeof and property attributes on visible HTML elements | Supported; mostly seen in older CMS themes. |
Every example below is JSON-LD. Put each one inside a script tag like this:
<script type="application/ld+json">
{ ...the JSON object... }
</script>
Which schema types still earn rich results in 2026?
Article, Product, LocalBusiness, BreadcrumbList, Organization, Event, Recipe and VideoObject can still earn rich results; FAQ is limited and HowTo was removed.
Common schema types and their Google rich results
| Type | Rich result | Needs |
|---|---|---|
| Article / BlogPosting | Headline, image, date and byline in results and Top stories | headline, image, datePublished and author are recommended |
| Product | Price, availability and review stars | name plus offers (price and currency), review or aggregateRating that match the page |
| LocalBusiness | Business details such as address, hours and phone | name and address that match the contact page |
| BreadcrumbList | Breadcrumb trail instead of the bare URL | itemListElement with position, name and item |
| Organization | Logo and company details in knowledge panels | name, url and logo; sameAs for official profiles |
| Event | Date, venue and ticket details | name, startDate and location |
| Recipe | Image, rating and cooking time | name and image |
| VideoObject | Video thumbnail, duration and key moments | name, thumbnailUrl and uploadDate |
| FAQPage | Limited | Since August 2023, FAQ rich results show only for well-known, authoritative government and health sites |
| HowTo | Removed | Google stopped showing HowTo rich results in 2023 |
FAQPage and HowTo markup is still valid schema.org and does no harm, but most sites should not expect the old dropdowns or step lists. Google lists every current feature in its search gallery; check it before you build markup for a feature you remember from a few years ago.
Copy-ready JSON-LD examples
Start from these four examples, replace every example.com value with your real details, and keep each fact identical to what visitors see on the page.
Organization
Add this once, usually on the home page or about page. Use absolute URLs for the logo and list only profiles you control in sameAs.
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Company",
"url": "https://example.com/",
"logo": "https://example.com/images/logo.png",
"sameAs": [
"https://www.linkedin.com/company/example-company",
"https://x.com/examplecompany"
]
}
Article
Use Article or BlogPosting on a blog post or news story. Dates use ISO 8601 format, and the author should be the person named on the page.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Choose Trail Running Shoes",
"image": ["https://example.com/images/trail-shoes.jpg"],
"datePublished": "2026-10-01T08:00:00+00:00",
"dateModified": "2026-10-15T09:30:00+00:00",
"author": {
"@type": "Person",
"name": "Jane Doe",
"url": "https://example.com/authors/jane-doe"
},
"publisher": {
"@type": "Organization",
"name": "Example Company",
"logo": "https://example.com/images/logo.png"
}
}
BreadcrumbList
List each level of the path in order. The last item is the current page; Google lets you leave out its item URL.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/" },
{ "@type": "ListItem", "position": 2, "name": "Running Shoes", "item": "https://example.com/running-shoes/" },
{ "@type": "ListItem", "position": 3, "name": "Blue Trail Running Shoe" }
]
}
Product
Price, currency and availability must match the product page. Only add aggregateRating when the page shows real customer reviews with that rating and count.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Blue Trail Running Shoe",
"image": ["https://example.com/images/blue-trail-shoe.jpg"],
"description": "A lightweight trail running shoe with a grippy outsole.",
"sku": "BTRS-42",
"brand": { "@type": "Brand", "name": "Example Company" },
"offers": {
"@type": "Offer",
"url": "https://example.com/running-shoes/blue-trail",
"price": "89.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "128"
}
}
Need a different type, such as LocalBusiness or FAQPage? The schema markup generator builds it from a simple form.
Does schema markup help with AI answers?
Schema markup can make your entities clearer to AI systems, but no AI assistant promises to cite a page because it has structured data.
Clear Organization, Person and Product markup states who you are, who wrote a page and what you sell in a form machines read without guessing. That supports the same understanding that Google's AI Overviews, ChatGPT and Perplexity rely on, alongside the visible text, links and mentions on other sites.
Treat it as one signal among many. The page still has to answer the question well and be crawlable by the AI bots you want. Our guide on how to get cited in AI Overviews covers the rest.
Common schema markup errors
Most schema problems come from missing required fields, markup that does not match the visible page, relative URLs and duplicated blocks.
Schema markup troubleshooting
| Error | What happens | Fix |
|---|---|---|
| Missing required field | A Product without offers, review or aggregateRating, or a LocalBusiness without an address, is not eligible for its rich result. | Add every required property listed in Google's documentation for that feature. |
| Markup does not match the page | A price, rating or FAQ answer that visitors cannot see breaks Google's structured data guidelines and can lead to a manual action. | Generate markup from the same data that renders the page, so both always agree. |
| Relative image or page URLs | /images/logo.png may be read wrongly or ignored. | Use absolute URLs such as https://example.com/images/logo.png. |
| Duplicate Organization blocks | A theme, an SEO plugin and a custom snippet each output Organization, often with different names or logos. | Keep one Organization block and remove or disable the others. |
| Invalid JSON | A trailing comma or a curly quote breaks the whole script block. | Paste the JSON into a validator before publishing; use straight quotes only. |
How to test your schema markup
Generate the JSON-LD, publish it, then check the live page with a validator and Google's Rich Results Test.
Build the markup
Use the free schema markup generator to create JSON-LD for Organization, Article, LocalBusiness, BreadcrumbList, Product or FAQPage from a form.
Validate the live page
Paste the published URL into the schema markup validator. It reads every JSON-LD block, flags missing fields and shows each type's current Google rich result status.
Confirm with Google
Run important pages through Google's Rich Results Test, then watch the enhancement reports in Search Console for errors across the site.
Check the rest of the page
Schema is one item on the on-page SEO checklist; titles, headings and internal links still matter more for rankings.
Questions and answers
Schema markup questions
What is schema markup?
Schema markup, or structured data, is code that describes a page in the schema.org vocabulary, such as a business's name and address, an article's author and dates, or a product's price. Google recommends adding it as JSON-LD.
Is schema markup a ranking factor?
No. Structured data helps Google understand a page and can make it eligible for rich results, which can earn more clicks, but valid markup does not move a page up the results on its own.
What is the difference between schema markup and structured data?
Structured data is any machine-readable description of a page. Schema markup is structured data that uses the schema.org vocabulary, which is what Google, Bing and other search engines read.
Should I use JSON-LD or Microdata?
Use JSON-LD. Google supports JSON-LD, Microdata and RDFa, and recommends JSON-LD because it sits in one script block that is easier to add and maintain.
Do FAQ rich results still work?
Only for some sites. Since August 2023, Google shows FAQ rich results only for well-known, authoritative government and health websites. Google also removed HowTo rich results in 2023.
How do I check my schema markup?
Paste a page URL into a schema validator to read every JSON-LD block and spot missing fields, then confirm important pages in Google's Rich Results Test.
Sources
- Introduction to structured data — Google Search Central: what structured data is, supported formats and why JSON-LD is recommended
- Structured data search gallery — Google Search Central: every rich result feature Google currently supports
- Schema.org — The shared vocabulary of types and properties used in schema markup



