🏗️ What is schema markup? (Direct answer)
Schema markup is structured data code — written in JSON-LD format and added to a webpage's HTML — that uses the Schema.org vocabulary to describe your page's content to search engines in machine-readable terms. It tells Google exactly what type of content is on your page (article, product, FAQ, recipe, event, local business) and provides structured details about it.
Schema markup enables rich results: visually enhanced SERP listings that display star ratings, FAQ accordions, recipe cards, how-to steps, event dates, and other features directly in Google's search results. According to case studies documented by Google, pages displayed as rich results achieve up to 82% higher click-through rates compared to standard listings.
There's also a second audience for your schema now: AI. Google's AI Overviews, Perplexity, ChatGPT's web browsing — they all use structured data when deciding which sources to cite and how much weight to give them. Schema markup is one of the most consistently overlooked tactics in SEO — not because people don't know it exists, but because the gap between "has some schema" and "actually earns rich results" is almost entirely about implementation quality.
Who This Is For & What's Covered
1. What Is Schema Markup and How Does It Work?
Schema markup is a way of telling machines what your content actually means — not just what words it contains. Without it, a search crawler reads your page the way you might read a document in a language you don't speak: the characters are legible, but the meaning is guesswork.
Schema markup solves this by giving content publishers a shared vocabulary — maintained at Schema.org by a consortium that includes Google, Bing, Yahoo, and Yandex — to label content in terms machines understand.
When you implement FAQPage schema, you're explicitly telling every crawler that visits your page: "these are questions and answers, here's exactly what they say." When you add Product schema with AggregateRating, you're saying: "this is a product, it costs $49, 847 people have reviewed it, the average is 4.6 out of 5." No inference required.
When I started specialising in technical SEO over a decade ago, schema markup was genuinely optional — a nice-to-have that a few forward-thinking publishers used to win recipe cards. Today, after auditing over 47 site launches and running hands-on structured data work across more than 150 websites, I can tell you with confidence that it is the single most consistently underleveraged tactic I encounter.
I routinely find high-traffic informational pages — ranking at position 3 or 4 — that are one well-implemented FAQPage schema block away from earning the accordion display that would push their CTR past the pages ranked above them. The implementation gap is almost never about knowledge; it is about prioritisation and validation discipline.
From JSON-LD to a rich result: what actually happens
You place a <script type="application/ld+json"> block in the <head> or <body> of your page. It contains a JSON object describing your content using Schema.org vocabulary, with the specific properties required for the schema types you want to trigger.
When Googlebot crawls your page, it reads the JSON-LD block and checks it — first for syntactic validity (one bad comma or mismatched bracket and the whole block is ignored), then cross-references schema values against actual page content to verify they match. This content accuracy check is one most people don't know about until they fail it.
Valid schema doesn't automatically mean a rich result. Google evaluates four things: is the JSON technically valid (no syntax errors, all required properties present), does the schema accurately describe what's on the page, does the underlying page meet basic quality standards, and does the content comply with structured data policies. You need to pass all four. Schema validity is necessary but not sufficient.
When a query matches your page and Google decides the rich result format will improve that user's experience, the enhanced listing shows up — star ratings inline, recipe cards with images and cook times, FAQ accordions. Each format takes up considerably more SERP real estate than a standard blue link. Rotten Tomatoes documented a 25% higher CTR for pages with schema versus those without.
Beyond traditional rich results, structured data gives AI-powered search (Google AI Overviews, Perplexity, Bing Copilot) explicit factual anchors to work with — stated dates, authors, ratings, step sequences, Q&A pairs. A page with FAQPage schema hands AI systems a ready-to-use answer library. Analysis of 15,847 AI Overview results found that content combining text, images, and structured data shows 156% higher AI Overview selection rates versus text-only content.
2. JSON-LD vs. Microdata vs. RDFa: Which Format to Use
| Criterion | JSON-LD | Microdata | RDFa |
|---|---|---|---|
| Google's recommendation | ✅ Officially recommended | ⚠️ Supported, not recommended | ⚠️ Supported, not recommended |
| Placement in HTML | Separate <script> block — fully isolated from visible content | Attributes embedded directly in HTML elements alongside visible content | Attributes embedded directly in HTML elements — XML-based syntax |
| Maintenance complexity | Low — schema lives in one isolated block; never breaks when HTML is redesigned | High — tightly coupled to HTML; any template change can silently break it | High — same as Microdata; steeper learning curve |
| AI search performance | Excellent — clean parseable JSON preferred by AI extraction systems | Good | Moderate |
3. How Search Engines Process Structured Data
Most schema problems come from the gap between "technically valid" and "actually correct." Knowing how Google processes structured data — particularly the content accuracy check — helps you avoid mistakes that look fine in the Rich Results Test but silently fail in production.
Googlebot crawls your page and extracts the JSON-LD block from the HTML. It parses the JSON for syntactic validity first — a single misplaced comma, bracket, or quotation mark in JSON-LD prevents parsing entirely. Google also supports JSON-LD rendered dynamically by JavaScript, but server-side rendering ensures faster and more reliable processing. For pages where schema is injected via JavaScript frameworks, always verify rendering with Google's URL Inspection tool in Search Console.
Google cross-references the structured data values against the visible, crawlable page content. For FAQPage schema, it checks that each question and answer in the JSON-LD appears as readable text on the page. For Product schema, it verifies that the product name and description match page content. Schema that describes content not present on the page is flagged as inaccurate and does not produce rich results — and repeated violations can trigger manual action reviews.
After confirming schema accuracy, Google's quality systems look at the underlying page. A technically perfect FAQPage schema block on a thin or low-quality page won't earn rich results. The schema is the prerequisite — content quality is the gate. Both have to be there.
Google AI Overviews, Perplexity, and similar systems process structured data differently from traditional indexing. They use schema markup as high-confidence factual anchors when constructing responses — preferring explicitly stated structured data over inferred content from prose. Author, datePublished, and organisational affiliation schema properties are specifically weighted by AI systems as credibility signals.
Gary Illyes of Google has confirmed that AI systems perform the same fundamental evaluation as traditional search — structured content that is well-organised, authoritative, and technically clean earns both rankings and citations.
4. All Google Rich Result Types: 2026 Reference Table
| Rich Result Type | Required Schema | CTR Impact | AI Citation Value |
|---|---|---|---|
| Star Ratings / Reviews | Product + AggregateRating + Review | +20–30% (Search Pilot) | High — product comparisons |
| Recipe Card | Recipe + NutritionInformation | +35–50% | High — instructional extraction |
| Video Carousel | VideoObject | 3× impressions (Vidio/Google) | Medium |
| Event Listings | Event | +25–35% | Medium — date-specific queries |
| Job Postings | JobPosting | +30–45% | Low |
| Course Listings | Course + CourseInstance | +15–20% | Medium |
| Breadcrumb Trail | BreadcrumbList | +5–10% | Low (site structure context) |
| Article / Top Stories | Article, NewsArticle, BlogPosting | +20–35% | Very High — named author + publisher |
| Product Snippet | Product + Offer | +10–20% | High — shopping comparisons |
| FAQPage Accordion | FAQPage + Question + Answer | ⚠️ Deprecated general web 2023 | Very High — pre-formatted Q&A extraction |
| HowTo Steps | HowTo + HowToStep | ⚠️ Deprecated general web 2023 | High — instructional step extraction |
Meeting all technical requirements for a rich result makes your page eligible — Google then decides on a query-by-query basis whether to display the rich result format. Consistent rich result display typically begins 2–12 weeks after implementation and validation.
5. FAQPage Schema: Implementation Guide and Code Template
FAQPage is probably the most underused schema type on content-heavy sites, and the most misunderstood since Google's 2023 deprecation of the FAQ accordion in standard search results. People saw the deprecation announcement and stopped implementing it. That was the wrong takeaway.
The FAQ accordion in the SERP is gone for most sites — but FAQPage schema is still one of the clearest signals to AI systems that your page has direct, structured answers to specific questions. For informational content, that matters enormously right now.
One of the most common FAQPage errors I encounter during audits is answers hidden behind JavaScript toggles or accordion elements that require a user click to expand. In a software client audit I ran in late 2025, I found 14 pages with FAQPage schema where every single answer was loaded via a JavaScript accordion — none visible as crawlable HTML text. Those pages had carried the schema for over five months with zero rich result eligibility.
After migrating the FAQ section to visible HTML (keeping the visual accordion via CSS, not JavaScript), 9 of those 14 pages showed valid schema in Google's Rich Results Test within a week, and organic impressions from FAQ-related queries measurably increased over the following 6 weeks. Visible HTML is non-negotiable. — Rohit Kunal
FAQPage schema eligibility requirements
- The page must contain a FAQ section with questions and answers fully visible as HTML text — not hidden behind JavaScript toggles or tabs requiring user interaction
- Each question must have exactly one authoritative answer written by the page publisher
- The page must not be a forum, community, or user-generated Q&A platform (those qualify for Q&APage schema instead)
- All schema values must match the visible on-page content precisely
- The page's overall content must meet Google's quality guidelines
// Place inside <script type="application/ld+json"> in your page <head> { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "[Your question exactly as it appears on the page?]", "acceptedAnswer": { "@type": "Answer", "text": "[Your complete answer — 50–300 words. Must match visible page text.]" } }, { "@type": "Question", "name": "[Second question?]", "acceptedAnswer": { "@type": "Answer", "text": "[Second complete answer text.]" } } // Add as many Question objects as your FAQ section contains // Recommended: 5–10 questions per FAQPage schema block ] }
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Article",
"@id": "https://yoursite.com/your-article-url#article",
"headline": "[Your Article Title]",
"datePublished": "2026-02-03T08:00:00+00:00",
"dateModified": "2026-02-03T08:00:00+00:00",
"author": {
"@type": "Person",
"name": "[Author Name]",
"url": "https://yoursite.com/author/author-name"
},
"publisher": {
"@type": "Organization",
"name": "[Your Organisation Name]",
"logo": { "@type": "ImageObject", "url": "https://yoursite.com/logo.png" }
}
},
{
"@type": "FAQPage",
"@id": "https://yoursite.com/your-article-url#faq",
"mainEntity": [
{
"@type": "Question",
"name": "[Question 1?]",
"acceptedAnswer": { "@type": "Answer", "text": "[Answer 1]" }
},
{
"@type": "Question",
"name": "[Question 2?]",
"acceptedAnswer": { "@type": "Answer", "text": "[Answer 2]" }
}
]
},
{
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://yoursite.com/" },
{ "@type": "ListItem", "position": 2, "name": "[Category]", "item": "https://yoursite.com/category/" },
{ "@type": "ListItem", "position": 3, "name": "[Current Page Title]", "item": "https://yoursite.com/your-article-url" }
]
}
]
}
✅ FAQPage schema implementation checklist
- Every question in the JSON-LD appears as visible, crawlable HTML text on the page
- Every answer in the JSON-LD matches the corresponding on-page answer text (exactly or very closely)
- Only ONE FAQPage schema block on the page — not duplicated across multiple script tags
- One authoritative answer per question (not multiple competing answers)
- The FAQ section is authored content — not user-generated community responses
- Questions are complete sentences ending with "?"
- Answers are at least 2 sentences (20+ words) and fully self-contained
- Validated with Google's Rich Results Test (0 errors required)
- Answers must NOT be hidden behind JavaScript toggles — they must be visible as raw HTML
- Do not implement FAQPage schema for forum content or pages with multiple user-generated answers per question
6. HowTo Schema: Implementation Guide and Code Template
HowTo schema is in the same situation as FAQPage — the traditional rich result display was deprecated for general websites in 2023, but the schema still does real work. Specifically for AI Overviews and tools like Perplexity, structured step sequences are much easier to extract and present than prose tutorials. When someone asks "how to do X," an AI system prefers a page that has already organised its instructions as discrete, labelled steps. That's exactly what HowTo schema provides.
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "[Title — e.g., How to Implement Schema Markup in WordPress]",
"description": "[1–3 sentence description of what this process achieves and who it is for]",
"totalTime": "PT30M",
// ISO 8601: PT15M = 15 mins, PT2H = 2 hours, PT1H30M = 1.5 hours
"tool": [
{ "@type": "HowToTool", "name": "Google Search Console" },
{ "@type": "HowToTool", "name": "Google Rich Results Test" }
],
"step": [
{
"@type": "HowToStep",
"position": 1,
"name": "[Short step title — 3–8 words, action phrase]",
"text": "[Full step instruction — 1–3 sentences explaining exactly what to do]",
"url": "https://yoursite.com/your-page#step-1",
"image": {
"@type": "ImageObject",
"url": "https://yoursite.com/images/step-1-screenshot.jpg"
}
},
{
"@type": "HowToStep",
"position": 2,
"name": "[Step 2 title]",
"text": "[Step 2 full instruction text]",
"url": "https://yoursite.com/your-page#step-2"
}
// Include a HowToStep for every step — minimum 3, recommended 5–12 for AI citability
]
}
name property for each HowToStep should be a concise action phrase (verb + object) that AI systems can display as the step label. Adding step-specific images via ImageObject significantly increases extractability. Analysis of 15,847 AI Overview results found that content combining text, images, and structured data shows 156% higher AI Overview selection rates — HowTo schema with step images directly serves this multimodal preference.7. Article Schema: NewsArticle, BlogPosting, and the @graph Pattern
Article schema tells Google that your page is editorial content with a named author, a publisher, and a publication date. That sounds basic, but it has a meaningful downstream effect: it's the primary credibility layer that AI systems check when deciding whether a source is worth citing. Named authorship with verifiable credentials — especially when the Person schema includes jobTitle, worksFor, and sameAs links to professional profiles — is consistently one of the strongest signals correlated with early AI Overview citations on new sites.
I have tracked AI citation patterns across 47 new-site launches since Google AI Overviews expanded globally in May 2024. One consistent finding: sites that implemented Article schema with a complete Person entity for their primary author — including jobTitle, worksFor, and knowsAbout properties — started appearing in AI Overview citations for their core topic clusters measurably faster than sites with anonymous or incomplete author markup.
On one B2B SaaS publishing project, completing the Person schema for two named authors and linking their author bio pages using sameAs to their professional profiles correlated with the site's first AI Overview citations appearing within 11 weeks of launch — faster than any comparable site in my tracking set that lacked complete author markup. — Rohit Kunal
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Article",
// Use "NewsArticle" for news; "BlogPosting" for blog posts
"@id": "https://yoursite.com/your-article#article",
"headline": "[Your article's H1 / page title — max 110 characters]",
"description": "[Your meta description — 150–160 characters]",
"datePublished": "2026-02-03T08:00:00+00:00",
"dateModified": "2026-02-03T08:00:00+00:00",
// Update dateModified on every meaningful content revision
"author": {
"@type": "Person",
"name": "[Author full name]",
"url": "https://yoursite.com/author/author-slug",
"jobTitle": "[Author's professional title]",
"worksFor": { "@type": "Organization", "name": "[Employer/Publication]" },
"knowsAbout": ["[Topic 1]", "[Topic 2]", "[Topic 3]"],
"sameAs": ["https://www.linkedin.com/in/author-profile"]
},
"publisher": {
"@type": "Organization",
"name": "[Your Organisation / Publication Name]",
"url": "https://yoursite.com",
"logo": {
"@type": "ImageObject",
"url": "https://yoursite.com/logo.png",
"width": 600, "height": 60
}
},
"image": {
// Required for Top Stories eligibility
"@type": "ImageObject",
"url": "https://yoursite.com/images/article-featured-image.jpg",
"width": 1200, "height": 630
},
"inLanguage": "en-US",
"wordCount": 3500,
"articleSection": "[Category, e.g., SEO, Marketing, Technology]"
}
]
}
Article as the default for most long-form editorial content and guides. Use NewsArticle for timely news reporting — required for Top Stories carousel eligibility. Use BlogPosting for personal blog posts and informal editorial writing. All three share the same required properties. Article works well as the safe default for most informational and how-to content.8. Product Schema: Pricing, Availability, and Review Markup
For e-commerce and SaaS sites, Product schema is where structured data directly affects revenue. A complete implementation — including Offer (pricing and availability) and AggregateRating (star ratings) — puts that information directly in organic SERP listings before anyone clicks. A Search Pilot controlled test found that adding Review schema to product pages increased organic traffic by 20%. Industry case studies from 2025 have documented product schema delivering up to 4.2× higher Google Shopping visibility in specific client accounts.
The AggregateRating policy is the area where I see the most serious, most consequential mistakes — specifically, clients importing review scores from third-party platforms (Google Maps, Trustpilot, Yelp) and marking them up as AggregateRating on their own product pages. Google's structured data policy is explicit: the rating data in the markup must match the rating data visible on the page, and it must be collected from users who have direct experience with the product or service on your own platform.
I've seen manual actions issued specifically for AggregateRating policy violations. Before implementing any star rating markup, verify three things: that the reviews are from genuine purchasers or users, that the rating calculation in schema matches what's visible to users, and that the reviews are hosted on your own domain. Always automate the sync between your review system and your schema output. — Rohit Kunal
{
"@context": "https://schema.org",
"@type": "Product",
"name": "[Product name — must match H1 and visible product title on page]",
"description": "[Product description — 50–300 characters. Must match on-page description.]",
"image": [
"https://yoursite.com/images/product-image-1.jpg",
"https://yoursite.com/images/product-image-2.jpg"
],
"sku": "[YOUR-SKU-001]",
"brand": { "@type": "Brand", "name": "[Brand name]" },
"offers": {
"@type": "Offer",
"url": "https://yoursite.com/product-page",
"priceCurrency": "USD",
"price": "49.99",
// Must match visible price on page exactly
"priceValidUntil": "2026-12-31",
// Required for rich result eligibility
"availability": "https://schema.org/InStock",
// InStock | OutOfStock | PreOrder | Discontinued
"itemCondition": "https://schema.org/NewCondition",
"seller": { "@type": "Organization", "name": "[Your Organisation Name]" }
},
"aggregateRating": {
// Only include if genuine reviews from YOUR platform
"@type": "AggregateRating",
"ratingValue": "4.7",
// Must match on-page display — automate this sync
"reviewCount": "384",
"bestRating": "5",
"worstRating": "1"
},
"review": [
{
"@type": "Review",
"reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" },
"author": { "@type": "Person", "name": "[Reviewer Name]" },
"reviewBody": "[Review text — must match review visible on page]",
"datePublished": "2026-01-15"
}
]
}
AggregateRating schema for reviews collected on your own platform from genuine customers. You cannot aggregate or import ratings from Google Maps, Trustpilot, Yelp, Amazon, or similar third-party sources. Doing so is a structured data spam policy violation that can result in manual actions affecting rich result visibility site-wide. The rating value and review count in your schema must match the values visibly displayed on the page and must update automatically when new reviews are added.9. LocalBusiness Schema: Complete Implementation for Local SEO
If your business has a physical location or a defined service area, LocalBusiness schema should be on every page meant to drive local traffic — not just the homepage. It gives Google a structured, authoritative source for your NAP data (name, address, phone), business hours, and service categories. In 2026, the sameAs links in LocalBusiness schema also serve as entity-resolution signals — they help AI systems connect your business to verified records in external directories, which feeds into how confidently those systems can cite you.
{
"@context": "https://schema.org",
"@type": ["LocalBusiness", "[Specific type: Restaurant | DentalClinic | LegalService | AutoRepair]"],
// Use both the generic LocalBusiness and the specific subtype for maximum relevance
"name": "[Business legal name — must match exactly on GBP, website, and all citations]",
"description": "[2–3 sentence business description. Include primary service and location.]",
"url": "https://yourbusiness.com",
"telephone": "+1-555-867-5309",
// E.164 format with country code
"address": {
"@type": "PostalAddress",
"streetAddress": "[Street number and name]",
"addressLocality": "[City]",
"addressRegion": "[State/Province code, e.g., CA]",
"postalCode": "[ZIP/Postal code]",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 37.7749,
"longitude": -122.4194
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "10:00",
"closes": "14:00"
}
],
"priceRange": "$$",
// $ = budget, $$ = mid-range, $$$ = premium, $$$$ = luxury
"sameAs": [
// Links to all official business profiles — entity-resolution signals for AI
"https://www.google.com/maps/place/your-business-id",
"https://www.facebook.com/yourbusiness",
"https://www.yelp.com/biz/your-business"
],
"areaServed": { "@type": "City", "name": "[Primary city served]" }
}
"@type": ["LocalBusiness", "Restaurant"] — gives stronger relevance signals than using either alone. Schema.org has hundreds of subtypes: DentalClinic, AutoRepair, LegalService, RealEstateAgent, Gym, and many more. For service-area businesses without a public address, use areaServed with city or region objects instead of a physical address.10. Additional Schema Types: Recipe, Event, VideoObject, and More
Recipe Schema
Marks up cooking recipes for recipe card rich results — one of the most visually prominent SERP formats. Shows image, cook time, calories, and star ratings. Consistently delivers +35–50% CTR for publishers who implement it correctly.
Required: name, image, author, datePublished, description, prepTime, cookTime, totalTime, recipeYield, recipeIngredient, recipeInstructionsEvent Schema
Marks up events — concerts, conferences, webinars — for listings showing date, time, location, and ticket availability in SERP. Supports virtual and hybrid events via eventAttendanceMode. Useful for time-specific queries like "events in [city] this weekend."
VideoObject Schema
Marks up video content for video carousel rich results — thumbnail, title, duration, and upload date. A Vidio/Google case study documented videos using VideoObject markup seeing a 3× increase in impressions and 2× increase in clicks within a year.
Required: name, description, thumbnailUrl, uploadDate, duration (ISO 8601)Course Schema
Marks up educational courses for Google's learning panel. Requires CourseInstance for scheduling details. Less commonly implemented than Product or Article, which means less competition for the learning panel placement for sites that do it correctly.
JobPosting Schema
Marks up job listings for Google Jobs. Complete implementations — with salary range, employment type, and benefits — consistently outperform minimal ones in the Jobs panel. Salary data in particular is correlated with higher click-through rates.
Required: title, description, hiringOrganization, jobLocation or applicantLocationRequirements (remote), datePosted, validThrough, employmentTypePerson Schema
Marks up individual people — authors, professionals, public figures — with credentials and external profile links. One of the clearest E-E-A-T signals available. AI systems specifically use Person schema to verify who wrote something before deciding whether to cite it.
WebSite + SearchAction
Marks up your domain homepage for the sitelinks search box — a search input field displayed beneath your homepage listing in branded SERP queries. Particularly valuable for large e-commerce sites, SaaS products, and publishers where users want to search within a specific site.
Required: url, potentialAction (SearchAction with target URL template including query-input parameter)Organization Schema
Marks up your company or publication entity. The sameAs property is key: linking to Wikipedia, LinkedIn, Wikidata, and Crunchbase lets AI systems confirm they're looking at a real, verifiable organisation. Every website's homepage should have this as a baseline.
11. The Complete Schema Validation and Testing Workflow
Validation is the step most people skip, and skipping it is how you end up with schema that looks fine on the page but silently earns nothing. A schema block that fails Google's parser — for a reason as minor as a trailing comma — provides zero SEO benefit. Validate every implementation before deployment, and re-validate whenever something on the page or in your CMS changes.
Before testing against Google's tools, validate your JSON for syntactic correctness using JSONLint.com or the built-in validator in VS Code. A single misplaced comma, unclosed bracket, or unescaped quote invalidates the entire JSON block. Resolve all syntax errors before proceeding to Step 2.
Go to search.google.com/test/rich-results. Paste either the page URL (for live pages) or your HTML code directly. The tool analyses the structured data, reports errors (which prevent rich results) and warnings (which may reduce eligibility), and shows which rich result types your schema qualifies for. All errors must be resolved before publishing. Warnings should be addressed where feasible.
Run your schema through validator.schema.org for a broader compliance check that goes beyond Google's rich result eligibility requirements. It catches spec violations that Google's tool may not flag — particularly useful for less common schema types like MedicalEntity, FinancialProduct, or SpecialAnnouncement.
Push the validated schema to your live page. In Google Search Console, use URL Inspection to request re-indexing. This prompts Google to re-crawl the page sooner than its regular crawl schedule — and can shave days or weeks off the time between implementation and your first rich result impressions.
In GSC, navigate to Enhancements to find type-specific rich result reports (Products, Events, Videos, etc.). Each report shows valid pages, pages with warnings, and pages with errors — including specific error descriptions and example URLs. Check these weekly for the first month after any major schema rollout.
After 4–8 weeks, compare CTR for your schema-implemented pages against their pre-implementation baseline in GSC's Performance report. Filter by those specific pages and compare 30-day periods before and after deployment. Rakuten documented a 2.7× increase in organic traffic and 1.5× longer session duration after implementing structured data across their product catalogue.
12. How Schema Markup Improves AI Overview and LLM Citation Rates
Structured data used to have one audience: Google's traditional search index. That's still true, but there's a second audience now — the AI systems constructing generated responses — and they use schema markup differently enough that it's worth understanding on its own terms.
Semrush's analysis of over 10 million keywords from January to November 2025 found AI Overviews peaked at nearly 25% of queries in July 2025 before settling at around 16% of desktop searches by November. For informational queries specifically — where schema-rich content competes most directly — AI Overviews appear on 88% of results.
A development worth watching closely: BrightEdge research published in February 2026 found the overlap between top-10 organic rankings and AI Overview citations dropped from around 76% in mid-2025 to as low as 17–38% by early 2026. Strong organic rankings no longer automatically translate to AI Overview visibility — structured data, content authority, and semantic clarity have become independent citation factors.
The AI Overview citation gap is real and measurable. Across the 47 site launches I have tracked since May 2024, the sites that invested in complete Article + Person schema — with full author credentials, knowsAbout arrays, and sameAs entity links — consistently appeared in AI Overview citations faster and for broader topic coverage than sites relying on content quality alone.
Equally important: AI systems appear to weight dateModified freshness signals heavily. Sites that updated their schema's dateModified field consistently on every meaningful content revision saw their AI Overview appearances correlate with content freshness in ways that made the signal very visible in tracking data. — Rohit Kunal
| Schema Type | AI Citation Value | Why AI Systems Use It | Priority |
|---|---|---|---|
| FAQPage | Very High | Pre-formatted Q&A pairs directly extractable as answers to conversational queries — the exact format AI Overviews use | Immediate |
| Article + Author (Person) | Very High | Named author with credentials, datePublished, and publisher are the primary credibility signals AI systems use to determine citation worthiness | Immediate |
| HowTo | High | Structured step sequences used by AI systems when constructing how-to and instructional responses | Immediate for tutorial content |
| Organization + sameAs | High | sameAs links to Wikipedia, Wikidata, and Crunchbase allow AI systems to resolve your organisation to a known entity — increasing citation confidence | Immediate for homepage |
| Product + AggregateRating | High | AI shopping and comparison responses draw structured product data, pricing, and review aggregates directly from Product schema | Immediate for e-commerce |
| Dataset | Very High | Original research data marked up as Dataset schema is a high-value AI citation target — explicitly signals original data with citable source | High for data journalism |
| Speakable | Medium | Marks specific sections as suitable for audio and voice responses — used by some AI voice systems when constructing spoken answers | Secondary priority |
| BreadcrumbList | Low | Provides site structure context but minimal direct value for AI content citability | Include as baseline |
13. How to Audit Your Existing Schema Implementation
Most sites I audit have some schema already — but "some schema" and "schema that works" are different things. You'll usually find a mix of errors, missing properties, and outdated implementations from before current best practices. The audit's job is to find which pages have no schema at all, which have errors, and which have valid-but-weak implementations worth upgrading.
In GSC, go to Enhancements. Each rich result type Google has detected on your site gets its own report showing valid pages, warnings, and errors — with specific error descriptions and example URLs. This is where most audits should start. It shows exactly where Google is finding problems and what those problems are.
In Screaming Frog, use Configuration → Custom → Extraction to pull all <script type="application/ld+json"> blocks from a full site crawl. Export and review to identify: pages with no schema, pages with multiple JSON-LD blocks (potential duplicate schema issues), and the distribution of schema types across the site. The GSC report tells you about errors; this tells you about gaps.
For your 20–30 highest-traffic pages (find them in GSC Performance data), run each URL through Google's Rich Results Test manually. This surfaces errors on individual high-value pages that may not stand out in the aggregate GSC report. Focus on pages that already have schema present but carry errors — fixing one or two missing properties is typically a fast path to eligibility.
In every schema audit I run on sites with 100+ pages, I find the same three categories: (1) Article schema blocks missing dateModified — stale dates that undermine freshness signals; (2) BreadcrumbList schema absent from 60–80% of interior pages despite being present on the homepage; and (3) at least one instance of AggregateRating referencing third-party review scores.
The third category is the one I address immediately with the client, because it carries real manual-action risk. The first two are high-value wins that require only template-level fixes to deploy at scale. — Rohit Kunal
🔍 Schema audit priority checklist
- GSC Enhancements report reviewed — all schema types detected, error and warning counts documented
- Screaming Frog crawl completed with JSON-LD custom extraction — all pages categorised (schema present / no schema / errors)
- Top 20 pages by organic impressions with no schema identified — these are the highest-priority implementation opportunities
- Pages with schema errors in GSC — fix errors on highest-traffic pages first
- Duplicate schema types checked (two FAQPage blocks on one page) — consolidate into single @graph
- Article schema on all blog posts includes author name, jobTitle, and datePublished
- BreadcrumbList implemented on all interior pages (not just homepage)
- All Product pages with AggregateRating verified — rating values match on-page displays exactly
- dateModified current and accurate on all Article schema
- FAQPage schema where FAQ answers are hidden behind JavaScript accordions — migrate to visible HTML immediately
- Any AggregateRating schema referencing third-party platform reviews — remove immediately to avoid manual action risk
14. The 10 Most Damaging Schema Markup Mistakes (and How to Fix Them)
These are the ten failures I encounter most often across audits. Some are technical slip-ups, some are policy issues that carry real penalty risk. The severity ratings reflect actual impact: CRITICAL items can wipe out all rich result eligibility or trigger manual actions site-wide; MEDIUM items quietly reduce performance without obvious symptoms.
| # | Mistake | Impact | Severity | Fix |
|---|---|---|---|---|
| 1 | Invalid JSON syntax Trailing commas, missing brackets, unescaped quotes |
Entire JSON-LD block ignored by Google. Zero rich result eligibility. | CRITICAL | Validate with JSONLint.com before deployment. Use a code editor with JSON syntax highlighting. Always validate with Rich Results Test on the live URL post-deployment. |
| 2 | Schema for content not visible on the page FAQ answers in accordions, prices not rendered, hidden text |
Google flags as inaccurate/misleading. No rich results. Risk of manual action for repeated violations. | CRITICAL | Every value in your schema must correspond to content visible as crawlable HTML text. FAQ answers must appear in the page HTML without requiring a click to expand. |
| 3 | Aggregating third-party review scores in AggregateRating Importing from Google Maps, Trustpilot, Yelp, Amazon |
Structured data spam policy violation. Risk of manual action and loss of rich result eligibility site-wide. | CRITICAL | Only include AggregateRating for reviews collected on your own platform. Remove any schema aggregating scores from third-party sources immediately. |
| 4 | Missing required properties for schema type Schema may be valid JSON but not rich-result eligible |
Schema technically valid but not eligible for rich results. GSC reports errors with no obvious cause. | HIGH | Cross-reference your schema against Google's developer documentation for each type. Every required property must be present and populated. |
| 5 | FAQPage schema on forum or community Q&A pages Using FAQPage where Q&APage is the correct type |
Incorrect schema type. No FAQPage rich results. These pages qualify for Q&APage schema instead. | HIGH | Use FAQPage only for publisher-written, single-answer Q&A. For forum content or pages with multiple user-submitted answers, use Q&APage schema with suggestedAnswer objects. |
| 6 | Not updating dateModified on content revisions Stale modified dates across Article schema |
Stale dateModified tells AI systems and crawlers the content has not been updated — reducing freshness signals for both rankings and AI citations. | MEDIUM | Update dateModified in Article schema every time you make meaningful content changes. Automate in your CMS where possible — most WordPress SEO plugins handle this automatically. |
| 7 | Using Microdata instead of JSON-LD Higher maintenance cost, higher error risk, no advantage |
Schema breaks silently when HTML templates change. Higher ongoing maintenance burden with no functional benefit. | MEDIUM | Migrate Microdata to JSON-LD as part of your next schema audit or site rebuild. JSON-LD is easier to maintain, validate, and update at scale. |
| 8 | Same schema type in multiple separate script blocks Two FAQPage blocks, two Article blocks on one page |
Duplicate schema confuses Google's parser. Unpredictable which block is used for rich result assessment. | MEDIUM | Consolidate all schema for a page into a single JSON-LD @graph block. One script tag, all schema types in the @graph array. |
| 9 | Outdated schema type names or deprecated properties Schema.org evolves; deprecated types still parsed but may not qualify |
Deprecated types parsed but may not qualify for rich results. Missing recommended properties reduces rich result quality. | MEDIUM | Review your schema against current Google developer documentation annually. Schema.org version updates are logged at schema.org/docs/releases.html. |
| 10 | Never re-validating after site migrations or CMS updates Platform updates silently break JSON-LD output |
Character encoding issues, template changes, or plugin conflicts corrupt schema without any visible page changes. | MEDIUM | After every major CMS update or site migration, re-run Rich Results Test spot-checks on 10–20 key pages. Set a quarterly calendar reminder to spot-check schema across all page types. |
15. Implementing Schema at Scale: CMS-Specific Strategies
When you're dealing with hundreds or thousands of pages, manually writing JSON-LD for each one isn't realistic. The answer is template-level schema — configured once at the CMS or framework level, then inherited automatically across page types. Schema App's case study of Marshfield Clinic Health System found an 80% increase in traffic after scaling structured data comprehensively across 50+ sites — that kind of result is what systematic, template-driven implementation makes possible.
WordPress
The primary schema implementation method is via SEO plugins: Yoast SEO, Rank Math, and SEOPress all generate Article, BreadcrumbList, and Organisation schema automatically. Rank Math has the most comprehensive built-in schema support, including Product, FAQPage, HowTo, Recipe, Event, and JobPosting as per-post/page additions. For complex or custom schema, use the custom JSON-LD field to inject bespoke schema alongside auto-generated blocks.
⚡ Recommended: Rank Math Pro for scaleShopify
Shopify auto-generates basic Product and BreadcrumbList schema. For AggregateRating and full rich result eligibility, supplement with apps like JSON-LD for SEO or SEO King — or inject custom schema directly into the product.liquid and article.liquid theme templates using Liquid's variable system to pull dynamic product data (price, name, description, inventory) into the JSON-LD block automatically.
⚡ Recommended: JSON-LD for SEO appWebflow
Webflow's native schema support is limited. The recommended approach is to use CMS Collection fields to store schema values (FAQ questions, HowTo steps, etc.) and inject them into a custom code component that outputs JSON-LD using Webflow's CMS variable syntax. This allows schema to scale across Collection pages without manual maintenance per page.
⚡ Recommended: Custom CMS embed approachNext.js / React
Use the next-seo library or the schema-dts TypeScript library to generate and inject JSON-LD. next-seo provides React components for all major schema types that accept data as props — making it easy to pass dynamic data from your API or CMS into schema components server-side for maximum crawlability and AI system accessibility.
Drupal
Drupal has strong native schema support via the Schema.org Blueprints module, which maps Drupal content types directly to Schema.org types and generates JSON-LD automatically based on field mappings. The Metatag module handles Article and breadcrumb schema. Enterprise Drupal implementations should configure Schema.org Blueprints as the primary schema layer for maintainability.
⚡ Recommended: Schema.org Blueprints moduleHeadless CMS
For headless architectures (Contentful, Sanity, Strapi), implement schema generation in your front-end rendering layer using data from the CMS. Create a schema-generation utility function that accepts structured content fields and outputs valid JSON-LD. Store schema-specific fields (FAQ pairs, HowTo steps, product data) as structured CMS fields — not free-text blocks — to enable programmatic schema generation at scale.
⚡ Recommended: Custom schema utility layerI've tested Rank Math Pro against Yoast Premium across multiple client sites specifically for schema output quality. Rank Math generates more complete JSON-LD for content-specific schema types like FAQPage, HowTo, and Recipe — fewer missing required properties out of the box. That said, both plugins need manual configuration per post for schema types beyond Article and BreadcrumbList.
For content-driven WordPress sites publishing more than 20 posts a month, it's worth setting up Rank Math's schema templates at the post-type level. Do it once properly and every new post inherits the right schema structure automatically — the per-post overhead drops to near zero. — Rohit Kunal
16. Frequently Asked Questions About Schema Markup
What is schema markup?
Schema markup is structured data code — written in JSON-LD format and added to a webpage's HTML — that uses the Schema.org vocabulary to describe your content to search engines in machine-readable terms. Instead of a crawler inferring that a page is about a product, or guessing which text is the price, schema states it explicitly: "this is a Product, it costs $49, it's in stock."
That explicitness is what enables rich results — the SERP enhancements like star ratings, FAQ accordions, and recipe cards that show up before anyone clicks your listing. Pages displayed as rich results achieve up to 82% higher CTR than standard listings, according to Google's documented case studies (Nestlé/Google).
Does schema markup directly improve search rankings?
No — Google has confirmed schema markup is not a direct ranking factor. But the indirect effects are real and measurable. Rich results increase CTR by 20–40% on average, which improves the engagement signals Google tracks. Schema also makes content eligible for featured snippets and AI Overview citations, and it sharpens Google's understanding of what your page is about. The ranking benefit comes through those channels — not from schema as a direct algorithmic input.
What is the difference between JSON-LD, Microdata, and RDFa?
All three are valid formats for implementing structured data, but JSON-LD is the only one worth using for SEO in 2026. JSON-LD lives in a separate <script> block — completely isolated from your page's visible HTML — so you can update schema without touching templates, and a template redesign won't silently break your markup.
Microdata and RDFa both embed attributes directly into HTML elements, tightly coupling your schema to your code. Any template change can break them, often without any visible error. Google has recommended JSON-LD for years, and in May 2025, Google, Microsoft, and ChatGPT each published guidance reinforcing its importance specifically for AI search.
Which schema types produce rich results in Google in 2026?
The types with active rich result support are: Product + AggregateRating (star ratings and pricing), Recipe (full recipe cards), Event (date, location, ticket info), JobPosting (Google Jobs), Course (learning panel), VideoObject (video carousels), Article/NewsArticle (Top Stories carousel), BreadcrumbList (breadcrumb path in the URL), and LocalBusiness (business info panel).
FAQ and HowTo rich results were deprecated for general web content in 2023 — but both schema types are still worth implementing for AI Overview citations. Eligibility also requires the page itself to meet Google's content quality standards — clean schema on a thin page won't earn a rich result.
How do I validate schema markup?
Start with Google's Rich Results Test at search.google.com/test/rich-results — paste in a URL or your raw HTML. It shows which rich result types your schema qualifies for, lists errors (which block eligibility) and warnings (which reduce it), and previews how rich results would look. For a broader spec compliance check, also run it through Schema.org's Validator at validator.schema.org — this catches issues Google's tool doesn't flag.
After deploying, keep an eye on Search Console's Enhancements reports, which track rich result eligibility across your whole site. Re-validate any time you do a CMS update or site migration — platform changes can silently corrupt JSON-LD output without any visible sign on the front end.
Can schema markup help with AI Overviews and LLM citations?
Yes, meaningfully. FAQPage schema hands AI systems a pre-formatted set of questions and answers they can pull from directly. Article schema with a named author, publication date, and publisher gives AI systems the credibility signals they check before deciding whether to cite a source. Organization schema with sameAs links to Wikipedia and Wikidata lets AI systems verify they're looking at a real, established entity.
Seer Interactive's September 2025 analysis of 3,119 queries found that brands cited in AI Overviews earn 35% more organic clicks and 91% more paid clicks than non-cited competitors. For informational content, FAQPage and Article + Author schema are the highest-impact implementation priorities right now.
How many schema types can I use on one page?
No limit — and most pages should have more than one. A blog post might carry Article, BreadcrumbList, and FAQPage together. A product page might have Product, AggregateRating, Offer, and BreadcrumbList. The recommended way to do this is a single JSON-LD block with all types inside a @graph array, rather than multiple separate script tags.
Multiple script blocks can confuse Google's parser and produce unpredictable results. The one firm rule: every schema type on the page must describe content that's actually there as visible, crawlable HTML.
What is the most common schema markup mistake?
Implementing schema for content that isn't visible on the page. This comes up constantly with FAQPage — someone marks up questions and answers in JSON-LD, but the actual answers on the page are hidden inside JavaScript accordions that require a click to expand. Google can't reliably crawl that content, so the schema describes text that, from Google's perspective, doesn't exist. The fix is making FAQ answers visible as rendered HTML (you can still have the visual accordion behaviour via CSS).
Beyond that, the other mistakes appearing repeatedly in audits: invalid JSON syntax from a stray comma or missing bracket, missing required properties that prevent rich result eligibility, and AggregateRating referencing scores from third-party platforms — which is a spam policy violation that can trigger a manual action. All of these are caught by running the Rich Results Test before every deployment.
What is the @graph pattern in JSON-LD schema?
The @graph pattern is the recommended way to include multiple schema types on a single page within one JSON-LD script block. Instead of having separate <script> tags for Article, BreadcrumbList, and FAQPage, you place a single @graph array containing all three as objects inside a single @context + @graph wrapper.
This avoids parser confusion from multiple script blocks, allows schema types to reference each other using @id properties, and produces cleaner, more maintainable structured data. Google's documentation recommends this approach for pages with multiple applicable schema types.
How long does it take to see rich results after implementing schema?
Typically 2–12 weeks from implementation to first rich result display, though this varies significantly. After you deploy and validate schema, use GSC's URL Inspection to request re-indexing — this prompts Google to re-crawl sooner than the natural crawl schedule.
Once crawled and validated, Google then decides on a query-by-query basis whether to show rich result formats. Most well-implemented schema on quality pages starts showing rich results within 4–8 weeks. Check GSC's Enhancements reports weekly during this period for validation errors that may be silently preventing eligibility.
Every rich result format schema markup can trigger — with the eligibility requirements, implementation priorities, and CTR data behind each one.
Read the full guide →The full GEO strategy for AI Overview and LLM citation rates — structured data is one piece; this guide covers the rest including content formatting and topical authority.
Read the full guide →Article and Person schema are direct E-E-A-T signals. This guide covers the full framework and how authorship and publisher markup feed into citation authority.
Read the full guide →Structured data is one layer of the technical SEO stack. This covers the rest — crawlability, indexing, Core Web Vitals, canonical strategy, and site architecture.
Read the full guide →The sameAs property connects your content to the Knowledge Graph. This guide covers entity optimisation strategy in full — the complement to schema implementation.
Includes exact prompts for generating JSON-LD schema for FAQPage, HowTo, Article, Product, and LocalBusiness in minutes — directly applicable to this guide's templates.
Read the full guide →📚 Sources & Research References
- Schema App — The Semantic Value of Schema Markup in 2025 (January 2025 Quarterly Business Reviews). schemaapp.com
- Schema App — Why Schema Markup Should Be in Your 2026 Digital Budget. Published December 2025.
- Search Pilot — Controlled test: adding Review schema to product pages increased organic traffic by 20%.
- Nestlé/Google Case Study — Pages showing as rich results saw 82% higher CTR vs. non-rich result pages. Google Search Central documentation.
- Rotten Tomatoes/Google Case Study — 25% higher CTR for pages with schema vs. without. Google Search Central documentation.
- Rakuten/Google Case Study — 2.7× organic traffic increase and 1.5× session duration after structured data implementation. Google Search Central documentation.
- Vidio/Google Case Study — VideoObject markup: 3× impressions and 2× clicks within a year. Google Search Central documentation.
- Seer Interactive — AI Overviews CTR Analysis: 3,119 informational queries, 42 organisations. September 2025.
- Semrush — AI Overviews Study: 10 million keywords, January–November 2025. Published December 16, 2025.
- BrightEdge — AI Overview citation top-10 overlap dropped to 17–38% by February 2026. Published February 12, 2026.
- Ahrefs — AI Overview citation analysis, July 2025 and February 2026 datasets.
- AI Mode Boost — Analysis of 15,847 AI Overview results: multimodal content + structured data shows 156% higher selection rates. 2025.
- Industry case studies (2025) — Product schema delivering up to 4.2× higher Google Shopping visibility. Multiple documented client accounts.
- Schema App — Marshfield Clinic Health System: 80% traffic increase after scaling schema markup across 50+ sites. 2025.
- Gary Illyes, Google — Confirmation that AI systems use the same fundamental evaluation signals as traditional search. Public statement.
- Rohit Kunal, IndexCraft — Internal tracking data from 47 site launches (May 2024 – June 2026) and 150+ schema audits. Bengaluru, India.