Schema markup is one of the most consistently underused technical SEO opportunities I see in audits — not because it's complex, but because people assume it's only for large technical teams. In reality, a correct JSON-LD block of 15 lines can make a product page eligible for price and availability details, or an event page eligible for dates and ticket status, in search results. Those enhancements can lift click-through rate from the same ranking position. This guide takes you from the basics to a working implementation — including which rich results Google has retired, so you don't chase features that no longer exist.
What Schema Markup Actually Does — The Two-Layer Effect
- 🔴 Page text describing a product, business, recipe or event
- 🔴 Google infers meaning from context — usually right, not always
- 🔴 Standard listing: title, URL and snippet
- 🔴 Not eligible for most rich result features
- 🔴 AI systems have to guess at entity types and relationships
- 🟢 JSON-LD declaring exactly what type of content the page contains
- 🟢 Properties with defined, shared meanings Google can read reliably
- 🟢 Eligible for features such as review stars, price, availability, event dates, breadcrumbs
- 🟢 Rich results stand out and can earn more clicks from the same position
- 🟢 Clearer entity signals for AI search and knowledge systems
The Schema.org Vocabulary — Where the Definitions Come From
Schema markup uses the vocabulary from schema.org, a shared project founded by Google, Microsoft, Yahoo and Yandex that defines entity types and their properties. When you declare "@type": "Product" in JSON-LD, you link your content to schema.org's definition of Product — with properties like name, offers, aggregateRating and brand. Google supports only a subset of schema.org for rich results and has its own required and recommended properties for each, so always check Google's documentation for the type you're implementing.
The Most Important Schema Types for SEO in 2026
| Schema Type | What It Can Unlock in Google (2026) | Best For |
|---|---|---|
| Product / Offer | Price, availability, shipping and returns details; review stars when genuine reviews are shown | E-commerce product pages |
| Review / AggregateRating | Review stars — only for eligible types (products, recipes, books, courses, software and similar). Self-serving reviews of your own LocalBusiness or Organization aren't eligible | Product and editorial reviews |
| LocalBusiness | Helps Google understand your address, hours and contact details; complements your Google Business Profile | Clinics, restaurants, hotels, retail |
| Article / BlogPosting | Helps Google understand headline, images, author and dates for article features | News and blog content |
| Event | Event dates, location and ticket status in event experiences | Conferences, concerts, webinars |
| BreadcrumbList | A readable breadcrumb path in the result instead of a raw URL | Any multi-level site |
| Organization | Logo, contact and brand details Google can use in knowledge panels | Home and about pages |
| Person / ProfilePage | No visual rich result for authors on articles, but clarifies who wrote the content — useful for E-E-A-T and entity understanding | Author bios and profile pages |
| FAQPage | No longer produces rich results — Google ended FAQ rich results on 7 May 2026. Still valid schema.org vocabulary | Optional; no SERP feature to chase |
| HowTo | No longer produces rich results — retired in 2023 | Optional; no SERP feature to chase |
For a deeper look at which types matter most, see our guide to 10 essential schema types, and for the FAQ change specifically, what changed when Google removed FAQ rich results.
A Complete JSON-LD Example — LocalBusiness
Here is a complete, working JSON-LD block for a local business — one of the most useful schema types for any business with a physical location. Replace every value with your own real details.
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "MedicalClinic", "name": "Example Physiotherapy Clinic", "url": "https://www.example.com/", "image": "https://www.example.com/images/clinic-front.jpg", "telephone": "+91-00000-00000", "address": { "@type": "PostalAddress", "streetAddress": "12 Example Road", "addressLocality": "New Delhi", "postalCode": "110001", "addressCountry": "IN" }, "geo": { "@type": "GeoCoordinates", "latitude": 28.6139, "longitude": 77.2090 }, "openingHoursSpecification": [{ "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"], "opens": "09:00", "closes": "18:00" }] } </script>
Rule 1 — Only mark up content visible on the page. If a user can't see the rating or price, don't put it in your schema; misleading markup can lead to a manual action. Rule 2 — Always include @context and @type. Without them, Google can't map your properties to the vocabulary. Rule 3 — Validate before and after publishing. Use Google's Rich Results Test to check eligibility for Google features and the Schema Markup Validator to check general schema.org syntax — they test different things (see Schema Validator vs Rich Results Test).
How Schema Markup Supports AI Search in 2026
Beyond classic rich results, structured data helps AI-driven search experiences understand your pages. Product and Offer markup, along with Merchant Center feeds, feeds the product information Google uses in shopping experiences, including AI Mode. Organization and Person markup make it clearer who is behind the content, which helps systems attribute it correctly. Google has said there is no special markup required to appear in AI Overviews or AI Mode — so treat schema as a clarity signal that supports those surfaces, not a switch that guarantees citations.
"I run schema audits as one of the first deliverables on a new engagement because the effort-to-impact ratio is so good. For a healthcare client with 40 clinic location pages, we implemented complete LocalBusiness markup — correct clinic type, address, geo coordinates, opening hours and contact details — across all 40 pages in two development sprints. Combined with cleaned-up Google Business Profile data, the clinic pages became noticeably more stable in local results, and average CTR from local search improved 28% from the same ranking positions within six weeks, with no content changes and no new links. The implementation took about 12 hours of developer time."
Five Schema Mistakes That Prevent Rich Results
Missing the @context Declaration
Writing JSON-LD without "@context": "https://schema.org" leaves every property undefined — Google has no vocabulary to map it against. Make @context the first property in every JSON-LD block.
Marking Up Content That Isn't on the Page
Google checks structured data against visible content. Marking up a 4.9-star rating that doesn't appear on the page breaks Google's structured data policies and can trigger a manual action. Every value in your schema should match what users can actually see.
Using the Wrong Type — or Self-Serving Reviews
Article schema on a product page, or Product schema on a blog post, misdescribes the page and won't earn the matching feature. A related trap: adding AggregateRating to your own LocalBusiness or Organization based on reviews you host yourself — Google doesn't show review stars for these self-serving reviews. Match @type to what the page really is.
Missing Google-Required Properties
Google sets required properties for each rich result type, beyond schema.org's own rules. For example, Product snippets need at least one of review, aggregateRating or offers — the Product type alone isn't enough. Check the requirements for each type in Google Search Central's structured data documentation.
Relying on Fragile JavaScript Injection
Google can read JSON-LD added with JavaScript, but only if it renders without user interaction. Markup that loads only after a click, a consent choice or a slow third-party script may never be seen. The most reliable option is to output JSON-LD in the initial HTML — in the <head> or <body>.
Frequently Asked Questions
The Bottom Line
Schema markup — most easily added as JSON-LD — tells Google exactly what your content is instead of leaving it to infer. The right type makes a page eligible for rich results that can lift clicks from the same position, and it gives search and AI systems clearer entity signals. Focus on types that still produce features in 2026, such as Product, Review (for eligible items), Event, Article and BreadcrumbList, alongside LocalBusiness and Organization for entity clarity; FAQ and HowTo rich results are gone. Always include @context and @type, mark up only visible content, avoid self-serving reviews, and validate with both the Rich Results Test and the Schema Markup Validator.
Sources: Google Search Central — Intro to structured data; Google — Review snippet guidelines; Google — Product snippet; Search Engine Journal — Google drops FAQ rich results (May 2026).
Driven by advanced SEO expertise, deep marketing analytics, high-impact content strategy
With 5+ years of hands-on experience, I specialize in holistic search strategies that don’t just rank—they drive real, measurable business growth. I’ve worked across industries including healthcare, hospitality, legal, e-commerce, and professional services, helping brands dominate their target markets. My approach bridges the gap between raw data and creative execution. Every strategy I build is rooted in rigorous market analysis, structured SEO frameworks, and tailored content ecosystems—no templates, no shortcuts. Whether you’re a single-location brand or scaling across multiple cities, I create data-driven marketing systems designed to compound results and grow with you.
Want Schema Markup Done Right Across Your Site?
Get a structured data audit that shows which rich results your pages qualify for — and ready-to-use JSON-LD for each template.
Book a Free SEO Audit →