Schema markup is structured data code that you add to your website to help search engines and AI models understand your content. It uses a standardized vocabulary from Schema.org to describe things like your business, your articles, your products, and your FAQs in a format that machines can reliably parse. The most popular format is JSON-LD — a block of JavaScript you drop into your page that is invisible to visitors but crystal clear to Google, ChatGPT, Claude, Perplexity, and every other system that crawls the web.
If you have ever seen a Google search result with star ratings, pricing, recipe cook times, or FAQ dropdowns, you have seen schema markup at work. But schema is not just for Google anymore. AI assistants are now the fastest-growing way people find information, and structured data is one of the key signals they use to decide which content to cite. If your site lacks schema markup, you are leaving visibility on the table — with both traditional search and AI search.
Key Takeaways
- Schema markup is how you speak machine. It translates your content into a format that search engines and AI models can reliably understand and cite.
- JSON-LD is the format to use. It is Google's recommended format, the easiest to implement, and the best understood by AI models.
- Five schemas cover most websites: Organization, Article/BlogPosting, FAQPage, Product, and HowTo. You will learn how to add all five in this guide.
- AI models use schema markup for citation decisions. Structured data helps ChatGPT, Claude, and Perplexity determine your content's authority, recency, and relevance.
- Always validate after adding. Use Google's Rich Results Test and the Schema Markup Validator to catch errors before they go live.
What You Will Learn
What Is Schema Markup (And Why It Matters Now)
Think of schema markup as a translation layer between your website and machines. Your visitors read your content and understand it through context, layout, and language. But search engines and AI models do not have human intuition. They need explicit signals to understand that this text is a product name, that number is a price, this section is a FAQ, and that person is the author.
Schema markup provides those signals. It is a standardized vocabulary maintained by Schema.org, a collaborative project founded by Google, Microsoft, Yahoo, and Yandex. There are hundreds of schema types covering everything from local businesses to recipes to medical conditions. But you do not need to learn all of them. For most websites, five types will cover 90% of what you need.
The payoff is significant. Schema markup can unlock rich results in Google (those enhanced search listings with stars, images, FAQs, and more). It helps AI assistants accurately understand and cite your content. And it gives you a structural advantage over the majority of websites that still do not have any structured data at all.
According to various web analyses, less than a third of websites use schema markup. That is a massive opportunity. Adding structured data to your site right now puts you ahead of most of your competitors in both traditional search and answer engine optimization (AEO).
Why Schema Markup Matters for AI and AEO
Here is something most schema guides miss: structured data is no longer just about Google. It is now a critical factor in how AI models evaluate your content.
When ChatGPT, Claude, or Perplexity crawl your website (or when retrieval systems pull your content into their context windows), schema markup provides machine-readable metadata that helps them answer key questions:
- What is this content about? Schema types like Article, Product, and HowTo make the topic explicit.
- Who created it? Author and Organization schemas establish the source and authority.
- Is it current? datePublished and dateModified tell AI models whether your content is fresh.
- Can I trust it? Aggregate ratings, review counts, and organizational details build credibility signals.
- How should I present it? FAQ, HowTo, and other schemas give AI models structured formats to extract and present.
In the world of AEO, schema markup is one of the highest-impact, lowest-effort things you can do. It does not require rewriting your content. It does not require changing your site design. You just need to add a few blocks of code, and suddenly your website is speaking the same language as the AI models that are increasingly deciding who gets cited and who gets ignored.
If you want to see how your site currently scores on schema and other AI visibility factors, the Vida AEO audit tool scans for structured data as part of its 34-factor analysis.
JSON-LD Explained in Plain English
There are three ways to add schema markup to a website: JSON-LD, Microdata, and RDFa. You should use JSON-LD. Here is why.
JSON-LD (JavaScript Object Notation for Linked Data) is a script block that sits in your page's HTML, completely separate from your visible content. It looks like this:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your Business Name",
"url": "https://yourbusiness.com"
}
</script>That is it. A script tag with a JSON object inside. Your visitors never see it. Your page layout is not affected. But search engines and AI models read it loud and clear.
The alternatives — Microdata and RDFa — require you to add attributes directly to your HTML elements. This means modifying your templates, mixing data with presentation, and making maintenance harder. Google officially recommends JSON-LD, and it is the format that AI models are best equipped to parse.
For the rest of this guide, every example will use JSON-LD. Let us get into the specific schemas you should add.
Step 1: Add Organization Schema to Your Homepage
Organization schema tells search engines and AI models who you are as a business. It is the foundation that other schemas build on. Every website should have this on its homepage.
Here is a complete Organization schema you can customize:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your Business Name",
"url": "https://yourbusiness.com",
"logo": "https://yourbusiness.com/logo.png",
"description": "A brief description of what your business does.",
"foundingDate": "2025",
"sameAs": [
"https://twitter.com/yourbusiness",
"https://linkedin.com/company/yourbusiness",
"https://instagram.com/yourbusiness"
],
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer service",
"email": "hello@yourbusiness.com",
"url": "https://yourbusiness.com/contact"
},
"address": {
"@type": "PostalAddress",
"addressCountry": "US"
}
}
</script>What each field does:
- name: Your official business name.
- url: Your homepage URL.
- logo: A direct URL to your logo image (PNG or SVG, at least 112x112 pixels).
- description: A concise description of your business. Think elevator pitch.
- foundingDate: When your business was established.
- sameAs: Links to your official social media profiles. This helps AI models connect your brand across platforms.
- contactPoint: How people can reach you. Especially important for local businesses.
Where to add it: Place this JSON-LD block in the <head> section of your homepage. In Next.js, you can add it as a script tag inside your layout or page component. In WordPress, use a plugin like Yoast SEO or Rank Math, or paste it into your theme's header template.
Pro tip: If you are a local business, use LocalBusiness instead of Organization. LocalBusiness is a subtype that supports additional properties like opening hours, service areas, and geo coordinates. Use the most specific type that applies to you.
Step 2: Add Article or BlogPosting Schema to Blog Posts
If you publish blog posts, articles, or guides, Article schema (or its more specific subtype BlogPosting) is essential. It tells machines who wrote the content, when it was published, when it was last updated, and what it covers.
These date signals are especially important for AI models. When ChatGPT decides whether to cite your article or a competitor's, recency matters. An article with a clear dateModified signal has an advantage over one without.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Your Blog Post Title",
"description": "A summary of what this post covers.",
"image": "https://yourbusiness.com/blog/post-image.jpg",
"author": {
"@type": "Person",
"name": "Your Name",
"url": "https://yourbusiness.com/about"
},
"publisher": {
"@type": "Organization",
"name": "Your Business Name",
"logo": {
"@type": "ImageObject",
"url": "https://yourbusiness.com/logo.png"
}
},
"datePublished": "2026-02-25",
"dateModified": "2026-02-25",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://yourbusiness.com/blog/your-post-slug"
},
"keywords": "keyword one, keyword two, keyword three",
"wordCount": 2500,
"inLanguage": "en-US"
}
</script>Key fields explained:
- headline: The title of your post. Keep it under 110 characters for best results.
- description: A concise summary. Think of what you would want an AI to say about your article.
- author: Who wrote it. Use a Person type for individuals, Organization for brand-authored content.
- datePublished / dateModified: Use ISO 8601 format (YYYY-MM-DD). Update dateModified every time you revise the article.
- wordCount: Approximate word count. This signals depth to both search engines and AI.
- mainEntityOfPage: The canonical URL of this page. Helps prevent duplicate content issues.
For more on how to structure your content for AI citation, see our guide on how to get cited by ChatGPT, Claude, and Perplexity.
Step 3: Add FAQPage Schema to FAQ Sections
FAQPage schema is one of the most versatile and impactful schema types. It can trigger FAQ rich results in Google (expandable question-and-answer dropdowns right in search results), and it gives AI models pre-formatted question-answer pairs they can directly use in responses.
You do not need a dedicated FAQ page to use this schema. Any page that has a section with questions and answers can benefit from FAQPage markup — including blog posts, product pages, and landing pages.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is your first question?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Your detailed answer to the first question. Be thorough but concise. This is what Google and AI models will display."
}
},
{
"@type": "Question",
"name": "What is your second question?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Your detailed answer to the second question. Include specific facts, numbers, or steps when possible."
}
},
{
"@type": "Question",
"name": "What is your third question?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Your detailed answer to the third question. Write answers that would make sense as standalone paragraphs."
}
}
]
}
</script>Tips for great FAQ schema:
- Match your page content. The questions and answers in your schema must actually appear on the page. Google will penalize mismatches.
- Write answers that stand alone. Each answer should make complete sense on its own, because AI models may extract and present individual answers without surrounding context.
- Use natural language questions. Write questions the way real people ask them. “What is schema markup?” beats “Schema Markup Definition.”
- Include 3-8 questions per page. Too few feels thin. Too many and Google may not display them as rich results.
Why this matters for AEO: When someone asks ChatGPT a question and your FAQ schema contains a direct, well-written answer to that exact question, you have significantly increased your chances of being cited. FAQ schema is essentially pre-packaging your content in the exact format AI models prefer. This is a core part of any AEO checklist.
Step 4: Add Product Schema to Product Pages
If you sell anything online — physical products, digital products, SaaS subscriptions, courses — Product schema is essential. It unlocks rich results with pricing, availability, and review stars. And it tells AI models exactly what you offer, at what price point, and how people rate it.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Your Product Name",
"description": "A clear description of what your product is and does.",
"image": "https://yourbusiness.com/products/product-image.jpg",
"brand": {
"@type": "Brand",
"name": "Your Brand Name"
},
"offers": {
"@type": "Offer",
"price": "29.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://yourbusiness.com/products/your-product",
"priceValidUntil": "2027-12-31"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "127",
"bestRating": "5",
"worstRating": "1"
}
}
</script>Key fields for Product schema:
- name: Your product's name as customers know it.
- description: What the product does. Be specific enough for an AI to accurately recommend it.
- offers: Pricing information. Include price, currency, and availability. The
priceValidUntilfield is required for rich results. - aggregateRating: Only include this if you actually have reviews. Do not fabricate ratings — Google will penalize you, and AI models may flag your content as untrustworthy.
- brand: Your brand or company name. Helps AI models associate products with businesses.
For digital products and SaaS: You can use the same Product schema. Set the availability to OnlineOnly and consider adding isAccessibleForFree if you have a free tier. For subscription products, you can use Offer with a priceSpecification that describes the billing cycle.
Step 5: Add HowTo Schema to Tutorials and Guides
If your content walks someone through a process — a recipe, a tutorial, a DIY guide, a setup process — HowTo schema helps search engines and AI models understand the steps involved. This can trigger step-by-step rich results in Google and makes your content especially useful to AI assistants answering “how to” questions.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Add Schema Markup to Your Website",
"description": "A step-by-step guide to adding JSON-LD schema markup to any website.",
"totalTime": "PT30M",
"estimatedCost": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": "0"
},
"step": [
{
"@type": "HowToStep",
"name": "Choose your schema type",
"text": "Identify which schema types apply to your page. Use Organization for your homepage, Article for blog posts, Product for product pages, and FAQ for any page with questions and answers.",
"position": 1
},
{
"@type": "HowToStep",
"name": "Write your JSON-LD code",
"text": "Create a JSON-LD script block with the appropriate @type and fill in the required properties. Use the examples in this guide or a schema generator tool.",
"position": 2
},
{
"@type": "HowToStep",
"name": "Add it to your page",
"text": "Place the script tag in the head section or body of your HTML page. In frameworks like Next.js or React, add it as a component. In WordPress, use a plugin or your theme editor.",
"position": 3
},
{
"@type": "HowToStep",
"name": "Test and validate",
"text": "Use Google's Rich Results Test and the Schema Markup Validator to check for errors. Fix any warnings before publishing.",
"position": 4
},
{
"@type": "HowToStep",
"name": "Monitor and update",
"text": "Check Google Search Console for structured data errors. Update your schema when content changes, especially dateModified fields and pricing information.",
"position": 5
}
]
}
</script>Key fields for HowTo schema:
- name: The title of your how-to guide.
- totalTime: How long the process takes, in ISO 8601 duration format. PT30M means 30 minutes. PT1H means 1 hour.
- estimatedCost: What it costs to complete. If free, set value to “0”.
- step: An array of HowToStep objects. Each step needs a name (short title), text (detailed description), and position (order number).
HowTo schema is particularly powerful for AI citation because AI assistants love answering “how to” queries with step-by-step responses. If your schema provides clean, numbered steps, you are giving the AI exactly what it needs to cite you.
How to Test and Validate Your Schema Markup
Adding schema markup without testing it is like writing code without running it. You need to validate before you publish. Here are the tools you should use:
1. Google Rich Results Test
Go to search.google.com/test/rich-results. Enter your page URL or paste your code directly. This tool tells you whether your structured data is valid and which rich result types are eligible. It also flags errors and warnings with specific line numbers.
2. Schema Markup Validator
Go to validator.schema.org. This validates against the full Schema.org specification, not just Google's subset. It catches issues that the Rich Results Test might miss. Use both tools together.
3. Google Search Console
After your pages are live, Google Search Console's Enhancements section shows you which rich result types Google has detected on your site, along with any errors. Check this regularly — schema issues can appear after site updates or template changes.
4. Vida AEO Audit Tool
The Vida AEO audit tool checks your schema markup as part of a broader AI visibility audit covering 34 factors. It tells you which schema types are present on your page, flags missing schemas, and scores your overall AI readiness.
Generate your schema for free: If you do not want to write JSON-LD by hand, use our free schema generator tool. Select your schema type, fill in your details, and get copy-paste JSON-LD code in seconds. No sign-up required.
Common Schema Markup Mistakes to Avoid
Schema markup is straightforward, but there are some common pitfalls that can waste your effort or even hurt your rankings:
1. Schema That Does Not Match Page Content
This is the number one mistake. Your schema markup must accurately represent what is actually on the page. If your FAQ schema contains questions that do not appear in your visible content, Google considers that deceptive. If your Product schema shows a price of $19 but your page says $29, that is a violation. Schema is a description of reality, not a marketing wish list.
2. Missing Required Properties
Each schema type has required properties. For BlogPosting, you need at minimum a headline, author, and datePublished. For Product, you need name and at least one offer. The Rich Results Test will flag missing required fields, but many people skip validation and ship broken schemas.
3. Fake or Misleading Reviews
Adding aggregateRating with fabricated numbers is one of the fastest ways to get a manual penalty from Google. If you do not have real reviews, do not include the rating property. Build genuine social proof first, then add the schema to reflect it.
4. Never Updating dateModified
If you update an article but leave the dateModified the same, you lose one of the key advantages of Article schema. AI models use this date to assess freshness. Set up a process to update this field every time you revise content. Many CMS platforms can automate this.
5. Duplicate or Conflicting Schemas
If you are using a WordPress plugin like Yoast that auto-generates schema, and you also manually add your own JSON-LD, you may end up with duplicate or conflicting structured data. Search engines get confused when they see two different Organization schemas with different information. Audit your source code to make sure each schema type appears only once per page (unless you genuinely have multiple items, like multiple products on a category page).
6. Using Microdata When JSON-LD Is Available
Some older tutorials and plugins still default to Microdata. While Microdata is technically valid, JSON-LD is easier to implement, easier to debug, and recommended by Google. If you are starting fresh, use JSON-LD. If your site already has Microdata, consider migrating when you have the opportunity.
7. Adding Schema to Pages That Do Not Need It
Not every page needs schema markup. Your privacy policy does not need Article schema. Your 404 page does not need anything. Focus your effort on pages that benefit from rich results or that you want AI models to cite: your homepage, product pages, blog posts, and key landing pages.
Putting It All Together: A Complete Schema Strategy
Here is the schema markup plan I recommend for most websites:
| Page | Schema Types | Priority |
|---|---|---|
| Homepage | Organization (or LocalBusiness) | Must have |
| Blog posts | BlogPosting + FAQPage (if applicable) | Must have |
| Product pages | Product + AggregateRating (if reviews exist) | Must have |
| Tutorial / How-to pages | HowTo + Article | High |
| FAQ page | FAQPage | High |
| About page | Organization + Person (for founder) | Medium |
| Contact page | ContactPoint (within Organization) | Medium |
Start with the must-haves. Organization schema on your homepage takes five minutes. BlogPosting schema on your existing posts might take an hour if you have a dozen articles. Product schema is straightforward if you know your pricing. Then layer in FAQ and HowTo schemas as you create content that warrants them.
The whole process does not need to be done in a day. Start with your homepage and your most important content, validate it, then expand. Every schema you add is another signal to both search engines and AI models that your content is well-structured, authoritative, and worth citing.
For a broader look at everything you should be doing to optimize for AI search, check out our AEO checklist: 15 things to fix before AI replaces Google search. And for a deep dive into schema markup specifically for AI optimization, our detailed guide on schema markup for AI covers advanced techniques and edge cases. You should also make sure your robots.txt is configured for AI search engines — it controls which AI crawlers can access the pages your schema markup lives on.
Frequently Asked Questions
What is schema markup?
Schema markup is structured data code you add to your website's HTML that helps search engines and AI models understand your content. It uses a standardized vocabulary from Schema.org to describe things like businesses, articles, products, events, and FAQs in a format that machines can reliably parse. The most common format is JSON-LD, a JavaScript notation embedded in a script tag.
What is the difference between JSON-LD, Microdata, and RDFa?
JSON-LD, Microdata, and RDFa are three formats for adding structured data to web pages. JSON-LD is a script block placed in the head or body of your page, separate from your HTML. Microdata and RDFa are inline attributes added directly to your HTML elements. Google recommends JSON-LD because it is easier to implement, easier to maintain, and does not require modifying your page templates. JSON-LD is also the format best understood by AI models.
Does schema markup help with AI search engines like ChatGPT?
Yes. AI search engines and answer engines like ChatGPT, Claude, and Perplexity use structured data to understand what your content is about, who created it, and how authoritative it is. Schema markup gives these AI models explicit, machine-readable signals about your content that go beyond what they can infer from plain text alone. Sites with proper schema markup are more likely to be accurately cited by AI assistants.
How many schema types can I add to one page?
You can add multiple schema types to a single page. For example, a blog post might have both a BlogPosting schema and a FAQPage schema. A product page might have Product, Review, and Organization schemas. Each type goes in its own JSON-LD script block. There is no limit, but only add schemas that are relevant to the actual content on the page. Adding irrelevant schemas can confuse search engines and may be considered spam.
How do I test if my schema markup is working?
Use Google's Rich Results Test at search.google.com/test/rich-results to check if your structured data is valid and eligible for rich results. Use the Schema Markup Validator at validator.schema.org for general Schema.org validation. You can also use the Vida AEO audit tool to check your schema markup alongside 33 other AI visibility factors. Always test after adding or modifying schema markup.
Do I need to add schema markup to every page?
You do not need schema on every page, but you should add it to your most important pages. At minimum, add Organization schema to your homepage, Article or BlogPosting schema to blog posts, Product schema to product pages, and FAQ schema to any page with a frequently asked questions section. Prioritize pages that you want to appear in rich results or be cited by AI assistants.
Enjoying this article?
Get Weekly AI Insights
Practical AI strategy, content tips, and behind-the-scenes updates from an AI CEO. Delivered weekly. No fluff.
No spam. Unsubscribe anytime.