Schema markup for SEO is structured data, written in the schema.org vocabulary and usually added as JSON-LD, that tells search engines exactly what a page is about: the business, the product, the article, the event. It can make a page eligible for rich results, but Google has retired many of those features since 2023, including FAQ rich results in May 2026. Markup still helps Google understand your business. This guide shows which types are worth your time now.

Key takeaways
- Schema markup describes your content to machines. It can earn rich results, but Google is clear that eligibility is not the same as getting one.
- Google stopped showing FAQ rich results on May 7, 2026, retired HowTo results in 2023 and phased out more than ten other types in 2025.
- Split your markup into two jobs: features (Product, Review snippet, Event, Video, Breadcrumb) and meaning (Organization, LocalBusiness, WebPage and their connections).
- Connect every entity with @id so your organization, locations, pages and services form one graph instead of disconnected snippets.
- Markup must match what visitors can see. Google's AI features guidance repeats this, and a mismatch can cost rich result eligibility.
What schema markup is, in plain English
Schema markup is a set of labels you add to a page's code so machines can read it without guessing. A person can see that a page shows a plumber's phone number and hours. Markup states it outright: this is a Plumber, here is its telephone, here are its openingHours.
The labels come from schema.org, a shared vocabulary that Google, Microsoft and other search engines support. The format Google prefers is JSON-LD. Its introduction to structured data says: "In general, Google recommends using JSON-LD for structured data if your site's setup allows it." JSON-LD sits in a script block, separate from the visible HTML, which makes it easier to build into templates and maintain.
Two other formats exist, Microdata and RDFa, which weave labels into the HTML itself. Google accepts all three when they are valid. We use JSON-LD on every site we build because it keeps the markup in one place.
What schema markup for SEO does, and what it doesn't
Markup helps search engines understand a page and can make it eligible for enhanced displays. It is not a ranking boost on its own, and eligibility never means a rich result will show.
What it does
- Makes pages eligible for rich results such as product prices, review stars, event dates and video thumbnails.
- Removes ambiguity about who you are. Google's Organization markup documentation says it can help Google "disambiguate your organization in search results" and influence which logo appears.
- Supports product and merchant experiences with price, availability, shipping and returns.
What it doesn't do
- Promise a feature. Google's documentation says markup "can enable" richer results, and items missing required properties are not eligible at all.
- Fix a weak page. Markup describes content. It doesn't replace it.
- Override what the page shows. Google's structured data guidelines say: "Don't mark up content that is not visible to readers of the page."
Google has published case studies of sites that gained from structured data. On its introduction page it reports Rotten Tomatoes measured a 25% higher click-through rate on pages with structured data, and Nestlé measured an 82% higher click-through rate for pages that showed as rich results. Those are Google's reported examples from large publishers, not a forecast for a local business.
The rich result cleanup: what Google retired, and when
Since 2023, Google has steadily removed rich result types it says few sites used or that no longer added value. If your markup strategy was built around FAQ and HowTo snippets, it needs an update. These dates come from Google's own Search documentation updates log.
| When | What changed |
|---|---|
| 2023 | FAQ rich results limited to well-known, authoritative government and health sites; HowTo rich results retired and their documentation removed |
| June 12, 2025 | Google began phasing out several types, including book actions, course info, ClaimReview, estimated salary, learning video, special announcement and vehicle listing |
| September 9, 2025 | Documentation removed for course info, estimated salary, learning video, special announcement and vehicle listing |
| November 5, 2025 | Practice problem and Dataset phased out of Google Search results (Dataset markup still used by Dataset Search) |
| May 7, 2026 | FAQ rich results stop appearing in Google Search |
| June 15, 2026 | FAQ documentation removed: "The FAQ rich result feature is no longer shown in Google Search results" |
The lesson is not that markup is dead. It is that a visible feature is something Google lends you and can take back. The markup that describes who you are and what each page covers keeps its value, because it doesn't depend on any one display.
Should you delete old FAQPage markup? There is no need to rush. It still describes the questions on the page accurately. Just stop adding it for the sake of a snippet that no longer shows, and never mark up questions that aren't visible.
Schema types that still matter, by job
Sort every type into one of two jobs: types that can still earn a visible feature, and types that add meaning. Google's search gallery lists the features it currently supports, including Article, Breadcrumb, Event, Local business, Organization, Product, Review snippet, Video and Job posting.
| Type | Job | Use it on | Visible feature in Google? |
|---|---|---|---|
| Organization | Meaning | Home or About page, once | Logo and knowledge panel details |
| LocalBusiness (or a subtype like Plumber, Dentist, RealEstateAgent) | Meaning + feature | Each physical location page | Local business details |
| WebSite | Meaning | Home page | Site name in results |
| BreadcrumbList | Feature | Every page below the home page | Breadcrumb trail in results |
| Product with Offer | Feature | Every page where something can be bought | Price, availability, shipping, returns |
| Review / AggregateRating | Feature | Product pages with real on-page reviews | Review stars (not self-serving reviews, see below) |
| Article / BlogPosting | Meaning + feature | Articles and guides | Better article display, author and date |
| Event | Feature | Real events with dates and places | Event listings |
| VideoObject | Feature | Pages where a video is the main content | Video thumbnails and key moments |
| JobPosting | Feature | Individual job pages | Google's job search experience |
| Service | Meaning | Service pages | None; describes what you offer |
| FAQPage | Meaning only now | Pages with visible Q&A | None since May 2026 |
That is twelve types, and most businesses need five or six of them. A local service company needs Organization, LocalBusiness per location, WebSite, BreadcrumbList and Article for its guides. A store adds Product and reviews. An event venue adds Event.
The review markup rule that catches most businesses
You cannot mark up reviews of your own business and expect stars. Google's review snippet guidelines say that if the entity being reviewed controls the reviews about itself, its pages using LocalBusiness or any other Organization structured data "are ineligible for star review feature."
In practice that means the testimonials on your own home page will not produce stars in search, no matter how they are marked up. Plugins that add a five-star AggregateRating to every page of a service business are wasting code at best, and creating a mismatch at worst.
Review markup still works for products you sell when the reviews are genuine and shown on the page, and for review sites writing about someone else's product or business. For a local business, the review signal that matters is on your Google Business Profile. Our guide to getting more Google reviews covers that side.
Build one connected graph, not scattered snippets
Give every entity an @id and reference it everywhere else. Then your organization, its locations, its pages and its services form one connected description instead of a dozen disconnected blocks that each repeat your name and phone number.
Here is a simplified example for a fictional plumbing company's service page. It defines the organization once, defines the location and links it to the organization, then says the page is about that location.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example.com/#org",
"name": "Example Plumbing Co.",
"url": "https://example.com/",
"logo": "https://example.com/logo.png",
"sameAs": ["https://www.facebook.com/exampleplumbing"]
},
{
"@type": "Plumber",
"@id": "https://example.com/#location-morristown",
"name": "Example Plumbing Co.",
"parentOrganization": { "@id": "https://example.com/#org" },
"telephone": "+1-973-555-0100",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 Sample St",
"addressLocality": "Morristown",
"addressRegion": "NJ",
"postalCode": "07960",
"addressCountry": "US"
},
"openingHours": "Mo-Fr 07:00-18:00"
},
{
"@type": "WebPage",
"@id": "https://example.com/water-heater-repair/#webpage",
"url": "https://example.com/water-heater-repair/",
"name": "Water Heater Repair in Morristown",
"about": { "@id": "https://example.com/#location-morristown" },
"breadcrumb": { "@id": "https://example.com/water-heater-repair/#crumbs" }
},
{
"@type": "BreadcrumbList",
"@id": "https://example.com/water-heater-repair/#crumbs",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Services", "item": "https://example.com/services/" },
{ "@type": "ListItem", "position": 2, "name": "Water Heater Repair" }
]
}
]
}
</script>Three details make this work:
- Stable IDs.
https://example.com/#orgmeans the same organization on every page of the site. - The most specific type.
Plumberis a subtype of LocalBusiness. Use the closest subtype schema.org offers. - Every value matches the page. The phone number, address and hours in the markup are exactly what the visitor sees.
Generate this from your templates and your business data, not by pasting blocks into each page. When the hours change, they should change everywhere at once.
Schema markup for SEO and AI search
Treat structured data as a consistency layer for AI search, not a shortcut into it. Google's guidance on AI features says there are no special optimizations needed for AI Overviews or AI Mode, and lists "making sure your structured data matches the visible text on the page" among its best practices.
That is the honest position. Engines read the page. Markup confirms facts the page already states: your business name, your locations, your hours, what the page covers. When the two agree, and when your Business Profile and directory listings say the same thing, you give every engine fewer reasons to doubt you.
What markup cannot do is make an AI engine cite a page that doesn't answer the question well. For that side, see our guides to generative engine optimization and answer engine optimization.
How to add schema markup without a mess
The right method depends on how your site is built. Whatever you choose, there should be exactly one source for each block of markup.
| Site setup | Best approach | Watch out for |
|---|---|---|
| Custom-coded site | Generate JSON-LD in templates from page data | Hard-coded values that drift when content changes |
| WordPress with an SEO plugin | Let one plugin own the core graph; add custom types through it | Two plugins outputting competing Organization blocks |
| Shopify or another store platform | Theme or app output for Product; check it includes Offer details | Prices in markup that lag the page during sales |
| Page builders and tag managers | Possible, but last resort | Markup injected late by scripts may not be seen consistently |
Duplicate markup is the most common problem we find: a theme adds Organization, a plugin adds another, and a reviews widget adds a third with different details. Pick one owner and switch the others off. Our web development team builds markup into templates for exactly this reason.
Test, then monitor
Validate before launch and monitor after. Use two validators and two Search Console tools, because each catches different problems.
- Rich Results Test shows whether a page is eligible for Google's features and flags missing required properties.
- Schema Markup Validator checks any schema.org markup, including types Google doesn't display.
- URL Inspection in Search Console confirms Google actually found the markup on the live page.
- Rich result reports in Search Console show errors and warnings across the whole site over time.
Then add one step most teams skip: compare the markup with the visible page. Validators confirm the code is well formed. Only a person, or a careful crawl, confirms the phone number in the markup is the one on the page.
Our schema markup for SEO audit checklist
This is the checklist we run when we audit structured data on a site. It takes about an hour on a small site and finds something on almost every one.
- Is there exactly one Organization block, defined once and referenced by @id?
- Does each physical location have its own LocalBusiness block, using the most specific subtype?
- Do name, address, phone and hours match the page, the Google Business Profile and major directories?
- Does every page below the home page have a BreadcrumbList that matches the visible trail?
- Do product pages carry price, currency and availability that match the page today?
- Is any review markup self-serving on a LocalBusiness or Organization? Remove it.
- Is any markup describing content that is not visible? Remove it.
- Are there retired types still being added for a feature that no longer shows, such as FAQ for snippets or HowTo? Stop adding them.
- Are two plugins or a theme and a plugin outputting competing blocks?
- Do Rich Results Test and Search Console show zero errors on key templates?
Structured data is one part of a wider check. Our technical SEO checklist covers crawling, indexing and speed, and our technical SEO audit service runs all of it for you.
Markup by business type: where to start
If you only do one thing this month, do the row that matches your business.
| Business | Start with | Then add |
|---|---|---|
| Local service business | Organization + LocalBusiness subtype per location | BreadcrumbList, Service, Article on guides |
| Online store | Product with Offer on every product page | Review markup for genuine product reviews; see our ecommerce SEO playbook |
| Real estate agent or brokerage | RealEstateAgent per agent or office | BreadcrumbList on neighborhood pages; see our real estate SEO guide |
| Venue or organizer | Event on every real event page | Organization, VideoObject for event recaps |
| Publisher or content-heavy site | Article with author and dates | BreadcrumbList, VideoObject |
Then measure. Track rich result impressions in Search Console and fold them into the monthly report described in our SEO reporting guide.
How Unified handles structured data
We build schema markup for SEO into the templates of every site we make, connected by @id and generated from the same data that fills the page, so it can't drift. On Nusbaum Medical Centers, that matters at scale: 3,066 pages live, and one template change updates the markup on all of them.
UnifiedIQ, our own platform, scores every page for SEO, which is how we kept all 50 landing pages for Joe Sale Photography scoring 99 to 100. Our SEO team handles the strategy. If you want your current markup audited against the checklist above, get in touch.
Schema markup questions, answered
Is schema markup a Google ranking factor?
Google does not describe structured data as a ranking boost. It helps Google understand a page and can make it eligible for rich results, which can change how many people click. Google's guidelines also say a structured data manual action removes rich result eligibility but does not affect how the page ranks.
Does FAQ schema still work in 2026?
Not for rich results. Google stopped showing FAQ rich results on May 7, 2026, and removed the documentation in June 2026. FAQPage markup is still valid schema.org and can stay on pages with visible questions, but it no longer produces a feature in Google Search.
Which schema format should I use?
JSON-LD. Google says it generally recommends JSON-LD when your site setup allows it. It keeps markup in one script block, separate from the HTML, which is easier to generate from templates and to maintain.
Can I add review stars for my own business?
No. Google's review snippet guidelines say that when a business controls the reviews about itself, its pages using LocalBusiness or Organization markup are ineligible for star reviews. Focus on reviews on your Google Business Profile instead.
How do I test my schema markup?
Use Google's Rich Results Test for feature eligibility, the Schema Markup Validator for general schema.org checks, and URL Inspection in Search Console to confirm Google sees it live. Then compare the markup against the visible page by hand.
Does schema markup help with AI search?
It helps by confirming facts the page already states. Google says no special optimizations are needed for AI Overviews or AI Mode and recommends structured data that matches visible text. It won't make an engine cite a page that doesn't answer the question well.
Get your structured data audited
We will check every template against our schema checklist and hand you a clean, connected graph your developers can ship.
Get a free proposal