Structured Data for SEO: How to Implement Schema Markup
Pages with rich results earn up to 82% higher click through rates. Here is how to implement the four schema types that matter most, with code you can actually use.
Structured data is the machine readable code that tells search engines and AI systems what your content is about. It is the difference between Google guessing that your page mentions a restaurant and Google knowing the restaurant's name, address, hours, and cuisine. This guide walks through implementing the four schema types with the highest payoff (Article, FAQ, LocalBusiness, and Organization), with production ready JSON-LD code you can paste into your site today.
What Structured Data Actually Is
Structured data is standardized code that translates the content on your web pages into a format machines can parse without guessing. The vocabulary comes from Schema.org, a collaboration that Google, Microsoft, Yahoo, and Yandex launched in 2011. Instead of forcing a search engine to figure out whether "Jaguar" on your page refers to the animal, the car brand, or the Jacksonville football team, schema tells it directly.
Three syntaxes exist for writing this code: JSON-LD, Microdata, and RDFa. Google's recommendation is unambiguous. They prefer JSON-LD because it is the easiest to implement and maintain at scale. JSON-LD sits inside a single <script type="application/ld+json"> block in your HTML, completely separate from your visible page content. You can place it in <head> or <body>; Google processes both, though placing it in the head is slightly safer for pre-render processing.
The practical result is that a search engine reading your page goes from "I found the word pizza on this page" to "This is a Restaurant entity named Mario's, located at 42 Oak Street, open Tuesday through Sunday, serving Italian cuisine, with a 4.6 star average rating." That level of clarity changes how your page appears in search results and whether it qualifies for enhanced display treatments called rich results.
Structured data is not visible to your visitors. It is a behind the scenes translation layer that turns your content into machine readable facts. JSON-LD is the format Google recommends, and it is the only format you should be using in 2026.
Why Schema Markup Matters for SEO in 2026
There is an important distinction to get out of the way early: schema markup is not a direct ranking factor. Google has said this multiple times. What schema does is make your pages eligible for rich results, which are the enhanced listings that appear with review stars, FAQ dropdowns, recipe cards, product prices, event dates, and other visual elements in search results. Rich results get more clicks. More clicks lead to better engagement metrics. Better engagement supports rankings over time.
The numbers back this up. A Google case study on Nestle found that pages appearing as rich results earned 82% higher click through rates than standard listings. Rotten Tomatoes saw a 25% CTR lift. Rakuten reported that recipe pages with schema drove 2.7 times more organic traffic, and users spent 1.5 times longer on those pages. Eventbrite doubled its traffic after implementing Event schema. These are documented results from Google's own case study library, not third party estimates.
On the adoption side, roughly 72.6% of pages sitting on Google's first page use structured data, according to a Backlinko analysis. But only about 30% of all websites use schema at all. That gap is the opportunity. Most businesses competing for the same keywords have not done this work, which means properly implemented SEO with schema gives you a structural advantage that compounds over time.
The other reason schema matters more now than even two years ago is AI search. Google AI Overviews now appear in roughly 13 to 15% of searches and that number is climbing. These AI generated summaries pull from Google's Knowledge Graph, and structured data is one of the primary inputs that feeds it. If your pages are not machine readable, you are invisible to the fastest growing search surface on the planet.
The Four Schema Types That Matter Most
Schema.org defines hundreds of types. Google supports about 35 for rich results. But four types handle 80% of the real world use cases for most businesses: Article, FAQPage, LocalBusiness, and Organization. Here is how each one works, when to use it, and the actual JSON-LD code to get it done.
Article Schema (BlogPosting / NewsArticle)
Article schema tells Google that a page contains editorial content and qualifies it for article rich results, Top Stories carousels, and Google Discover. For most blog posts, the BlogPosting subtype is the right choice. For time sensitive news coverage, use NewsArticle. If neither fits neatly, the generic Article type works as a fallback.
Google requires four properties at minimum: headline, image, datePublished, and author. Recommended properties that improve how your listing appears include dateModified, publisher (with a nested logo), description, and mainEntityOfPage. Keep headlines under 110 characters. Images should be at least 1200 pixels wide, and Google recommends providing them in three aspect ratios: 1:1, 4:3, and 16:9.
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Your Article Title Here",
"image": [
"https://example.com/photos/1x1/hero.jpg",
"https://example.com/photos/4x3/hero.jpg",
"https://example.com/photos/16x9/hero.jpg"
],
"datePublished": "2026-04-18T08:00:00+00:00",
"dateModified": "2026-04-18T10:30:00+00:00",
"author": {
"@type": "Person",
"name": "Jane Doe",
"url": "https://example.com/authors/jane-doe"
},
"publisher": {
"@type": "Organization",
"name": "Your Company",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"mainEntityOfPage": "https://example.com/blog/your-post"
}
Two things trip people up here. First, date fields must use ISO 8601 format. 2026-04-18T08:00:00+00:00 is correct. "April 18, 2026" is not. Second, avoid generic author names like "Admin" or "Staff Writer." Real human bylines strengthen the E-E-A-T signals that both Google and AI search systems evaluate when deciding what content to surface.
FAQ Schema (FAQPage)
FAQ schema used to be the easiest win in structured data. Add a few questions and answers, get an accordion dropdown right in your search listing that pushed competitors further down the page. Then Google changed the rules.
On August 8, 2023, Google announced that FAQ rich results would only appear for "well-known, authoritative government and health websites." For everyone else, the rich result is gone. HowTo schema was deprecated entirely in September 2023.
But here is what most people missed: Google also said the markup itself is not harmful. "Structured data that's not being used does not cause problems for Search." FAQ schema is still valid, still processed by Google for content understanding, and still actively parsed by AI systems. ChatGPT, Perplexity, Google AI Overviews, and Bing Copilot all extract Q&A pairs from FAQPage markup because the format is explicit and easy to parse. The rich result is dead. The SEO value is not.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Is structured data a ranking factor?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. Structured data is not a direct ranking factor,
but it helps pages qualify for rich results and improves
how search engines understand content."
}
},{
"@type": "Question",
"name": "Which format does Google recommend?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Google recommends JSON-LD over Microdata and RDFa
because it is easier to implement and maintain."
}
}]
}
The rule that matters: only mark up genuine FAQ content that is actually visible on the page. If your page has a "Frequently Asked Questions" section with real questions and real answers that users can read, mark it up. If you are trying to inject marketing copy disguised as FAQ, do not. Google classifies that as spammy markup and will issue manual actions. Also, if users submit their own answers to questions (like a forum), use QAPage with upvoteCount instead, which is still eligible for rich results.
Is Your Schema Markup Helping or Hurting?
Duplicate schema, missing properties, and invalid markup cost you rich results. We audit it and fix it.
LocalBusiness Schema
If you have a physical location where customers visit, LocalBusiness schema is non-negotiable. It powers knowledge panels, map pack results, and "near me" query inclusion. For local SEO, it is the single most impactful piece of structured data you can add.
Google requires three properties: @type, name, and address (as a nested PostalAddress with street, city, state, zip, and country). But the minimum gets you the minimum. The properties that make your listing competitive are telephone, openingHoursSpecification, geo coordinates, priceRange, image, and sameAs links to your social profiles.
Use the most specific subtype available. Restaurant, Dentist, AutoRepair, LegalService, RealEstateAgent are all better than generic LocalBusiness because they help Google categorize you correctly against competitors in your industry.
{
"@context": "https://schema.org",
"@type": "Restaurant",
"@id": "https://example.com/#restaurant",
"name": "Harvest & Hearth",
"image": "https://example.com/hero.jpg",
"url": "https://example.com",
"telephone": "+1-415-555-0180",
"priceRange": "$$",
"servesCuisine": "Mediterranean",
"address": {
"@type": "PostalAddress",
"streetAddress": "128 Market Street",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"postalCode": "94105",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 37.7936,
"longitude": -122.3965
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday",
"Thursday","Friday"],
"opens": "11:00",
"closes": "22:00"
}],
"sameAs": [
"https://www.facebook.com/harvestandhearth",
"https://www.instagram.com/harvestandhearth"
]
}
One thing that catches businesses off guard: since September 2019, Google will not display review rich results when a LocalBusiness or Organization reviews itself. Self-serving reviews trigger a policy violation. If you want star ratings in your listing, they need to come from third party review platforms, or you need to use a schema type where self-reviews are allowed (like Product or Course).
The other common failure point is NAP inconsistency. Your name, address, and phone number in schema must match your Google Business Profile exactly. A mismatch between "123 Main St" in schema and "123 Main Street" in GBP can confuse entity resolution and weaken your local ranking signals.
Organization Schema
Organization schema is the identity layer for your brand. It tells Google who you are, where to find your official profiles, and how to connect your other schema types (Article, LocalBusiness, Product) back to a single entity. Deploy it once on your homepage, then reference it from other pages using @id rather than redeclaring it everywhere.
Google requires logo (as a nested ImageObject, not a bare URL string) and url. The logo should be at least 112x112 pixels and legible on a white background. Recommended properties include name, alternateName, description, sameAs (social profiles and authoritative references like Wikidata), and contactPoint.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Example Corporation",
"alternateName": "Example Corp",
"url": "https://example.com",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png",
"width": 600,
"height": 60
},
"description": "Enterprise software for retail analytics.",
"sameAs": [
"https://www.linkedin.com/company/example-corp",
"https://twitter.com/examplecorp",
"https://www.wikidata.org/wiki/Q12345678"
],
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-800-555-0199",
"contactType": "customer service",
"availableLanguage": ["English","Spanish"]
}
}
The sameAs array does more work than people realize. It tells Google and LLMs which external profiles represent the same entity, which strengthens disambiguation in the Knowledge Graph. A company named "Apex" with sameAs links to its LinkedIn, Crunchbase, and Wikidata profiles is far less ambiguous than one without. Audit these URLs at least once a year. A sameAs link pointing to a deleted Facebook page or rebranded LinkedIn URL weakens entity resolution rather than helping it.
How to Implement Schema Markup: Step by Step
You have four options for deploying structured data, and the right one depends on your tech stack. Here is how each works in practice.
Manual JSON-LD
This is the cleanest approach for custom built sites or any CMS where you have direct access to template files. Write your JSON-LD code, paste it into a <script type="application/ld+json"> block, and place it in your page template. Either <head> or <body> works. Use server side rendering when possible. Googlebot's Web Rendering Service can process JavaScript injected JSON-LD, but server rendered markup gets crawled and indexed more reliably.
The manual approach gives you full control and zero plugin bloat. The downside is maintenance. If you have 200 blog posts and need to update your publisher logo URL, that is 200 template updates unless you have abstracted the schema into a reusable partial.
WordPress Plugins (Rank Math and Yoast)
For WordPress sites, two plugins handle structured data well enough that manual implementation rarely makes sense.
Rank Math ships over 20 schema types in its free version, including Article, Product, Recipe, FAQ, LocalBusiness, Event, Course, Job Posting, and Software Application. It auto-applies Article schema on posts and WebPage schema on pages. The Schema Generator UI lets you configure types per post or page. Rank Math Pro adds custom schema builders, reusable schema templates, and display condition rules. Across content marketing and technical SEO tasks, Rank Math handles both without needing extra plugins.
Yoast SEO pioneered full @graph schema implementation starting with version 11.0 back in 2019. It auto-generates Organization, WebSite, WebPage, Article, Breadcrumb, and Person schema with cross referenced @id values. The result is an architecturally connected graph where every entity references every other entity through stable identifiers. In March 2026, Yoast launched Schema Aggregation to consolidate structured data across pages for better AI agent consumption.
One mistake we see constantly: running two schema outputting plugins at the same time. Rank Math and Yoast both inject Organization schema, Article schema, and breadcrumbs. Running both creates duplicate entities that confuse Google's parser and produce validation errors. If you are switching from Yoast to Rank Math (or vice versa), disable schema output in the old plugin before activating the new one.
Google Tag Manager
GTM is the fallback when you need to add schema but do not have CMS access or developer time. Create a Custom HTML tag, paste your JSON-LD script, set the trigger to "All Pages" for site wide schema (like Organization) or use path conditions for page specific schema. Publish and validate.
GTM supports dynamic schema through Data Layer variables, which lets you pull headline, author, and publish date from the page DOM. That is powerful for scaling Article schema across thousands of posts without touching templates. The trade off: GTM injects schema client side, which adds slightly to time-to-interactive, and Google's John Mueller has publicly said he prefers server side output. GTM works. But treat it as plan B when server side is not available.
Whichever method you choose, five rules apply everywhere. Only mark up content that is visible to users. Use absolute URLs for all image, url, sameAs, and logo fields. Keep canonical URLs in @id values. Test every deployment before pushing live. Update schema when the underlying content changes.
Need Schema Built Into Your Site From Day One?
Our web development team builds sites with structured data baked into every template.
Testing and Validating Your Schema
Deploying schema without testing is guessing. Three tools handle validation, and each checks something different.
Google Rich Results Test (search.google.com/test/rich-results) tells you whether your markup qualifies for Google supported rich result types. Paste a URL or a code snippet and it returns detected types, errors that block rich results, and warnings for missing recommended properties. One limitation worth knowing: the tool only validates Google's subset of Schema.org. If you add valid markup for a type Google does not support for rich results (like MedicalCondition), the tool returns "no items detected." That does not mean your markup is broken.
Schema Markup Validator (validator.schema.org) is the community maintained successor to Google's deprecated Structured Data Testing Tool. It validates against the full Schema.org vocabulary, not just Google's subset. Use this when you are adding schema aimed at AI systems and LLMs rather than specifically at Google rich results. The two tools can legitimately disagree on the same markup because they check different rule sets.
Google Search Console gives you the operational picture. The Enhancements section generates a report for each detected schema type (Article, Breadcrumb, Product, Video, etc.), breaking down URLs into Valid, Warning, and Error status. There is also a dedicated Unparsable Structured Data report that catches syntax errors like trailing commas and unescaped quotes. After fixing issues, use the "Validate Fix" button to trigger a re-crawl.
For teams managing SEO across multiple sites, third party tools fill the gaps. Screaming Frog can crawl an entire domain and extract every JSON-LD block for audit. The Merkle Schema Markup Generator is a free tool that builds JSON-LD for about 13 common types. For enterprise deployments, Schema App and WordLift handle schema management, entity resolution, and knowledge graph construction at scale.
Structured Data and AI Search Visibility
This is where structured data gets interesting for 2026 and beyond. Two official confirmations changed the conversation in 2025.
In April 2025, Google's Search team stated publicly that structured data gives pages "an advantage in search results," and that includes AI Overviews. The same month, Microsoft's Fabrice Canel confirmed at SMX Munich that schema markup helps Bing's LLMs understand content for Copilot responses. These are the only two AI search surfaces where schema's role has been officially confirmed by the platform operators.
For ChatGPT, Perplexity, and Claude, the picture is less definitive. Early testing from tools like searchVIU found that LLMs sometimes strip schema markup during tokenization when they fetch a page directly. But the indirect path is more important: schema helps your content get into the Knowledge Graph, qualify for rich results, and build entity authority, all of which feed the retrieval augmented generation (RAG) systems these AI assistants use when generating answers.
The practical upshot for what the industry is calling Generative Engine Optimization (GEO): schema types that give LLMs clean, unambiguous facts carry the most weight. Organization schema with rich sameAs arrays builds entity authority. Person and Author schema reinforces E-E-A-T signals. FAQPage schema, despite no longer earning rich results, provides the cleanest Q&A extraction format for AI answers. Product schema with explicit ratings, offers, and brand fields produces the structured fact tables that shopping oriented AI assistants consume.
One thing worth being clear about: "AI Visibility Engine" is not a plugin or a SaaS product you can install. It is a consulting service launched in August 2025 by Kahn Media, a California marketing agency. The tools that actually track brand citations across AI platforms are Profound, Peec AI, Otterly.ai, AthenaHQ, and Evertune. They monitor how AI systems mention your brand but do not automate schema markup. Schema automation still belongs to Rank Math, Yoast, Schema App, WordLift, and similar tools.
Schema markup helps with AI search, but it is not a magic switch. The value comes from making your content machine legible, which feeds the knowledge graphs and retrieval systems AI assistants draw from. The sites winning AI citations in 2026 are the ones where every page has accurate, well-structured schema that matches what is actually on the page.
Common Schema Mistakes (and How to Avoid Them)
Google issues manual actions under the category "Spammy Structured Markup." The consequences range from losing rich result eligibility to full suppression in search. Here are the mistakes that trigger them.
Marking up invisible content. This is the number one cause of manual actions. Describing a product in JSON-LD that is not actually sold on the page, listing FAQs that do not appear in the HTML, or adding review data for items users cannot see all violate Google's guidelines. The rule is simple: every entity in your schema must correspond to content a user can find on the page.
Self-serving reviews. Since September 2019, Google does not display review rich results when an Organization or LocalBusiness reviews itself. Adding aggregateRating to your own business page triggers a policy violation. Reviews need to come from third party platforms or be applied to appropriate schema types like Product, Book, or Course.
Duplicate schema from stacked plugins. Running Rank Math and Yoast simultaneously, or adding a standalone schema plugin on top of either one, produces conflicting entity graphs. Google sees two Organization entities, two sets of breadcrumbs, and two Article declarations and does not know which to trust. Pick one source of schema truth and disable the rest.
Syntax errors. Trailing commas in JSON, unescaped quotes, relative URLs where absolute ones are required, and malformed date formats all show up in Search Console's Unparsable Structured Data report. These prevent Google from processing the markup at all. Run your code through the Schema Markup Validator before deploying.
Wrong schema type. Marking a blog post as Product to chase review stars, or marking a sales page as Article to get article rich results, is type manipulation. Google's algorithms detect mismatches between schema type and page content and will either ignore the markup or flag it for manual review.
Recovery from a manual action requires fixing every violation across the site, then submitting a Reconsideration Request through Search Console's Manual Actions panel. The instinct to strip all schema as a quick fix does not work. Removing markup will not lift the action. Fixing it will.
Frequently Asked Questions
References & Sources
- 1Intro to Structured Data Markup — Google Search Central
- 2Article Schema Markup Documentation — Google Search Central
- 3FAQPage Structured Data Documentation — Google Search Central
- 4LocalBusiness Structured Data — Google Search Central
- 5Organization Schema Markup — Google Search Central
- 6Changes to HowTo and FAQ Rich Results — Google Search Central Blog
- 7General Structured Data Guidelines — Google Search Central
- 8Schema Markup: Statistics, Facts & Things to Know — Sixth City Marketing
- 9How Schema Markup Fits Into AI Search — Search Engine Land
- 10Making Review Rich Results More Helpful — Google Search Central Blog
- 11Yoast SEO Schema Aggregation for the Agentic Web — Yoast
- 12How to Use Multiple Schema Markup Types — Rank Math
- 13Schema Markup Validator — Schema.org
- 14Schema Markup and AI: What LLMs Really See — searchVIU
Get SEO & AI Visibility Insights
Join marketing leaders who get actionable SEO strategies, AI search updates, and growth tactics delivered to their inbox.
Make Your Site Machine Readable
Schema markup is the foundation of modern SEO and AI visibility. Let us build it into your site properly so every page earns its place in search.
Get Your Free Strategy Proposal
No comment yet, add your voice below!