AI Overview
Schema markup is structured data code, usually JSON-LD, that describes a page's content so Google can understand it and show rich results. It is not a direct ranking factor, and FAQ and HowTo rich results are gone, so focus on supported types.
Key takeaways
- Schema markup is structured data, usually JSON-LD, that describes a page in the Schema.org vocabulary so Google can show rich results.
- Google recommends JSON-LD because it sits in its own script block and is easier to maintain than Microdata or RDFa.
- FAQ rich results left Google Search on May 7, 2026 and HowTo in 2023, so spend effort on Product, Article, Breadcrumb and other supported types.
- Structured data is not a direct ranking factor, but richer listings can earn more clicks and Organization markup clarifies your brand.
- Test with the Rich Results Test and Schema Markup Validator, and keep every value in sync with the content visitors can see.
Summarize with AI
Opens the assistant in a new tab with a link to this post.
On this page
Schema markup is one of the few SEO tasks where a small amount of code can visibly change how your pages look in Google. Product prices and star ratings, breadcrumbs instead of a raw URL, event dates, recipe cards: all of these come from structured data. It also tells search engines and AI systems, without guesswork, who you are and what a page is about.
But the rules have shifted a lot. Google has retired a long list of rich results since 2023, including FAQ rich results in May 2026, so a lot of the schema advice still floating around is out of date. This guide covers what schema markup is, which formats to use, which types still earn rich results in 2026, copy and paste JSON-LD examples, how to add and test it, and the mistakes that quietly break it.
What is schema markup?#
Schema markup is code you add to a page to describe its content in a standard vocabulary that search engines understand. The vocabulary comes from Schema.org, a project founded by Google, Microsoft, Yahoo and Yandex. The code itself is called structured data.
A human reading your product page sees a name, a photo, a price and some reviews. A search engine sees text and images and has to infer the rest. Schema markup removes the guessing:
- This page is a
Product. - Its name is "Trail Runner 2".
- It costs
129.00USDand isInStock. - It has an average rating of
4.6from212reviews.
Google uses structured data to understand the page and, for supported types, to show it as a rich result: a search listing with extra visual elements such as prices, ratings, images or dates.
JSON-LD vs Microdata vs RDFa#
There are three formats for writing structured data. Google supports all three, but it recommends JSON-LD.
| Format | How it works | Pros | Cons |
|---|---|---|---|
| JSON-LD | A separate <script type="application/ld+json"> block | Easy to add, read and maintain; doesn't touch your HTML; can be injected by plugins or tag managers | Can drift out of sync with the visible content if it isn't generated from the same data |
| Microdata | Attributes (itemscope, itemprop) added to existing HTML elements | Markup sits right next to the visible content | Clutters templates; easy to break during a redesign |
| RDFa | Attributes (vocab, typeof, property) added to HTML | Flexible, used in some CMSs | Same maintenance problems as Microdata |
Use JSON-LD unless your platform forces something else. Because it lives in its own block, a designer can rebuild your page layout without touching it.
Which schema types still earn rich results in 2026?#
Google's search gallery is the source of truth. As of October 2026 it lists these features:
| Rich result | Schema type(s) | Best for |
|---|---|---|
| Article | Article, NewsArticle, BlogPosting | Blogs, news, publishers |
| Breadcrumb | BreadcrumbList | Almost every site |
| Carousel | ItemList combined with Recipe, Course, Restaurant or Movie | Sites with lists of those items |
| Course list | Course | Course providers |
| Dataset | Dataset | Research and data publishers |
| Discussion forum | DiscussionForumPosting | Forums and community sites |
| Education Q&A | Quiz | Flashcard and study sites |
| Employer aggregate rating | EmployerAggregateRating | Job and employer review sites |
| Event | Event | Concerts, conferences, classes |
| Image metadata | ImageObject | Photographers, image libraries |
| Job posting | JobPosting | Careers pages, job boards |
| Local business | LocalBusiness and subtypes | Shops, restaurants, service businesses |
| Math solver | MathSolver | Math learning tools |
| Movie | Movie | Movie list pages |
| Organization | Organization | Every business site, on the homepage |
| Product | Product, Offer, AggregateRating | Ecommerce |
| Profile page | ProfilePage | Author and creator pages |
| Q&A | QAPage | Pages with one question and user answers |
| Recipe | Recipe | Food sites |
| Review snippet | Review, AggregateRating | Products, recipes, books, software, local businesses |
| Software app | SoftwareApplication | App and SaaS product pages |
| Speakable | SpeakableSpecification | News publishers |
| Paywalled content | isAccessibleForFree on CreativeWork | Subscription publishers |
| Vacation rental | VacationRental | Rental listings |
| Video | VideoObject | Any page with a main video |
What Google has retired#
| Feature | What happened |
|---|---|
| HowTo | Removed from search results on desktop and mobile in 2023 |
| FAQ | Limited to well known government and health sites in 2023, then removed from Google Search entirely starting May 7, 2026 |
| Book Actions, Course Info, ClaimReview, Estimated Salary, Learning Video, Special Announcement, Vehicle Listing | Phased out after Google's June 2025 "simplifying the search results page" announcement |
| Practice problems | Documentation removed in 2026 |
Two important points about retirements. First, Google said the 2025 changes "won't affect how pages are ranked": you lose the visual enhancement, not your position. Second, a retired rich result doesn't make the markup harmful. You don't need to rush to delete old FAQPage markup, but you also shouldn't add new FAQ schema expecting the dropdowns to come back. Spend that effort on types that still produce results.
JSON-LD examples you can copy#
Replace the example values with your own, and make sure every value matches what visitors can see on the page.
Organization (homepage)#
This tells Google and AI systems who you are: your name, logo and official profiles.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Studio",
"url": "https://www.example.com/",
"logo": "https://www.example.com/images/logo.png",
"sameAs": [
"https://www.linkedin.com/company/example-studio",
"https://x.com/examplestudio"
]
}
</script>
Article (blog posts)#
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How to Plan a Website Migration",
"image": ["https://www.example.com/images/migration-cover.jpg"],
"datePublished": "2026-10-20T09:00:00+00:00",
"dateModified": "2026-10-24T14:30:00+00:00",
"author": {
"@type": "Person",
"name": "Jordan Lee",
"url": "https://www.example.com/authors/jordan-lee"
}
}
</script>
Product (ecommerce)#
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Trail Runner 2",
"image": "https://www.example.com/images/trail-runner-2.jpg",
"description": "Lightweight trail running shoe with a grippy outsole.",
"sku": "TR2-BLK-42",
"brand": { "@type": "Brand", "name": "Example Outdoor" },
"offers": {
"@type": "Offer",
"url": "https://www.example.com/shoes/trail-runner-2",
"price": "129.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "212"
}
}
</script>
BreadcrumbList (category and product pages)#
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Shoes", "item": "https://www.example.com/shoes" },
{ "@type": "ListItem", "position": 2, "name": "Trail", "item": "https://www.example.com/shoes/trail" },
{ "@type": "ListItem", "position": 3, "name": "Trail Runner 2" }
]
}
</script>
The last breadcrumb item can leave out item, because it's the current page.
Try it on your site · free
Check your own page's meta tags
Title, description, canonical and robots - including an accidental noindex - in a few seconds.
How to add schema markup to your site#
Manually or in your code#
Put the JSON-LD block in the page's <head> or <body>; both work. The reliable approach is to generate it from the same data that renders the page, in your template or framework component, so the price in the markup can never disagree with the price on screen. Hand writing JSON-LD per page is fine for a few static pages and fragile for anything larger.
WordPress#
SEO plugins such as Yoast SEO, Rank Math and All in One SEO output Organization, WebSite, Article and BreadcrumbList markup automatically, and WooCommerce adds Product markup to product pages. Check two things: that only one plugin is generating schema (two plugins often produce duplicate, conflicting graphs), and that the organization name and logo in the plugin settings are filled in correctly.
Shopify#
Most Shopify themes include Product and Organization structured data in their Liquid templates. Before adding an app that injects more markup, test a product page to see what your theme already outputs, otherwise you end up with two Product entities with different values. Theme switches and theme updates can change or remove this markup, so retest after either.
Google Tag Manager#
You can inject JSON-LD with a Custom HTML tag, and Google can read structured data that JavaScript adds to the page. It's a workable stopgap, but it's harder to keep in sync with the page content than markup in your templates.
How to test schema markup#
| Tool | What it tells you |
|---|---|
| Rich Results Test | Whether a page is eligible for Google rich results, with errors and warnings per feature. It renders JavaScript. |
| Schema Markup Validator | Whether your markup is valid Schema.org, for all types, including ones Google doesn't show as rich results |
| Search Console enhancement reports | Valid and invalid items across your whole site for each supported feature, plus alerts when errors appear |
| URL Inspection in Search Console | What Google found on the live, indexed version of a page |
For a quick look at what any live URL declares, the free MyKavo Structured Data Checker parses every JSON-LD block on the page, including @graph containers, lists each entity with its type and key properties, flags blocks that aren't valid JSON, checks common required and recommended properties for popular types, and counts any Microdata and RDFa items. Our guide on how to check structured data walks through the full testing workflow.
Does schema markup help SEO rankings?#
Not directly. Google has said for years that structured data isn't a ranking factor in itself, and adding it won't move a page up. What it can do:
- Make your listing more clickable. Prices, ratings and breadcrumbs take up more space and answer questions before the click.
- Remove ambiguity. Organization markup tells search engines and AI systems which logo, name and social profiles are officially yours.
- Qualify pages for special experiences, such as job search, event listings and merchant listings.
Also note that valid markup is no guarantee. Google decides whether to show a rich result based on the query, the device and the quality of the page.
Common schema markup mistakes#
| Mistake | Why it's a problem | Fix |
|---|---|---|
| Markup that doesn't match visible content | Violates Google's guidelines and can lead to a manual action | Generate markup from the same data as the page |
| Invalid JSON (a trailing comma, an unescaped quote) | The whole block is ignored | Validate after every template change |
| Reviews you wrote about your own business | Self serving reviews aren't eligible for review snippets on LocalBusiness and Organization | Only mark up genuine third party reviews where allowed |
| Two plugins or a theme and an app both outputting schema | Duplicate, conflicting entities | Keep one source of structured data |
| Prices or availability left stale | Wrong information in search, and possible merchant issues | Pull values dynamically |
| Still adding HowTo or FAQ schema for rich results | Neither shows in Google Search anymore | Focus on supported types |
| Missing required properties | Page isn't eligible for that rich result | Check each feature's documentation and the Rich Results Test |
Catch broken structured data across your site#
Structured data usually breaks as a side effect. A theme update renames a template variable and a JSON-LD block prints an empty value. A plugin conflict produces a trailing comma. A redesign drops the breadcrumb markup. None of this shows on the page, so nobody notices until rich results fade from search.
MyKavo's Site Audit crawls your site and checks structured data alongside its other technical SEO checks. It reports Invalid JSON-LD as an error when a block fails to parse, flags pages with no structured data, and warns when your home page has no Organization, LocalBusiness or WebSite markup, so search engines and AI systems have to guess your brand, logo and profiles.
Frequently asked questions
What is schema markup in SEO?
Schema markup is structured data code, usually JSON-LD, that describes a page's content using the Schema.org vocabulary so search engines understand it and can show rich results.
Is schema markup a ranking factor?
No. Google says structured data is not a direct ranking factor. It can make listings richer and more clickable, which can bring more traffic from the same position.
What is the best format for schema markup?
JSON-LD. Google recommends it because it sits in its own script block, so it is easier to add and maintain than Microdata or RDFa, which are woven into your HTML.
Does FAQ schema still work in 2026?
Not for rich results. Google stopped showing FAQ rich results in Google Search starting May 7, 2026. The markup is not harmful, but it no longer produces the expandable questions.
How do I test my schema markup?
Use Google's Rich Results Test for rich result eligibility, the Schema Markup Validator for general Schema.org validity, and Search Console enhancement reports to track errors across your site.
Which schema types should every website have?
Most sites benefit from Organization (or LocalBusiness) on the homepage and BreadcrumbList on inner pages, plus the type that matches each page, such as Article, Product or Event.
The bottom line#
Schema markup won't rank a page on its own, but it makes your listings richer, tells search engines and AI systems exactly who you are, and qualifies pages for features plain HTML can't reach. Use JSON-LD, stick to the types Google still supports, keep every value in sync with the visible page, test with the Rich Results Test, and watch for template changes that quietly break it.
Check what any page declares right now with the free Structured Data Checker, then start free with MyKavo to audit structured data and the rest of your technical SEO across your whole site.
Get alerted when your site breaks. Free, no card.
Start free