Schema Markup for AI Search
Schema markup is structured data that tells AI systems what information means. It's one of the most important signals for AI visibility because it makes your content machine-readable.
What is schema markup
Schema markup is code you add to your website that describes your content in a way machines can understand.
Without schema markup:
<h1>Root Canal Procedure</h1>
<p>A root canal is a dental procedure...</p>
An AI system sees text but doesn't know what it means.
With schema markup:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": {
"@type": "Question",
"name": "What is a root canal?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A root canal is a dental procedure..."
}
}
}
</script>
Now an AI system understands that this is a FAQ page with a question and answer.
Why schema markup matters for AI
AI systems use schema markup to:
- Understand your content: What is this page about?
- Extract information: What are the key facts?
- Verify your identity: Are you a real business?
- Rank your content: Should this page be cited?
Pages with schema markup are more likely to be cited by AI systems because the AI can easily understand and extract information.
Essential schema types for local businesses
1. LocalBusiness schema
LocalBusiness schema tells AI systems about your business.
Where to use: Homepage, service pages, contact page.
What to include:
- Business name
- Address
- Phone number
- Website URL
- Service area
- Business hours
- Social media profiles
Example:
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "ABC Plumbing",
"image": "https://example.com/logo.png",
"description": "24/7 emergency plumbing services in Charlotte",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Charlotte",
"addressRegion": "NC",
"postalCode": "28202",
"addressCountry": "US"
},
"telephone": "(704) 555-1234",
"url": "https://example.com",
"areaServed": "Charlotte, NC",
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
"opens": "00:00",
"closes": "23:59"
},
"sameAs": [
"https://www.facebook.com/abcplumbing",
"https://www.yelp.com/biz/abc-plumbing"
]
}
2. FAQPage schema
FAQPage schema tells AI systems that your page contains Q&A content.
Where to use: Any page with FAQ content.
What to include:
- Questions
- Answers
Example:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How much does emergency plumbing cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Emergency calls start at $150. The final cost depends on the issue and repair needed."
}
},
{
"@type": "Question",
"name": "Do you work on weekends?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, we're available 24/7, including weekends and holidays."
}
}
]
}
3. Speakable schema
Speakable schema tells AI systems which content is suitable for voice/AI extraction.
Where to use: Key answers and important content.
What to include:
- CSS selectors or XPath to the content
Example:
{
"@context": "https://schema.org",
"@type": "WebPage",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".answer-1", ".answer-2", ".answer-3"]
}
}
4. BreadcrumbList schema
BreadcrumbList schema tells AI systems about your site structure.
Where to use: All pages except homepage.
What to include:
- Breadcrumb path
- URLs for each level
Example:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Services",
"item": "https://example.com/services"
},
{
"@type": "ListItem",
"position": 3,
"name": "Plumbing",
"item": "https://example.com/services/plumbing"
}
]
}
How to implement schema markup
Option 1: JSON-LD (recommended)
JSON-LD is the easiest and most recommended way to add schema markup.
- Add a
<script>tag in the<head>of your page. - Set
type="application/ld+json". - Add your schema as JSON.
<head>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "ABC Plumbing",
...
}
</script>
</head>
Option 2: Microdata
Microdata adds attributes to your HTML.
<div itemscope itemtype="https://schema.org/LocalBusiness">
<h1 itemprop="name">ABC Plumbing</h1>
<p itemprop="description">24/7 emergency plumbing services</p>
<p itemprop="telephone">(704) 555-1234</p>
</div>
Option 3: RDFa
RDFa adds attributes to your HTML (less common).
<div vocab="https://schema.org/" typeof="LocalBusiness">
<h1 property="name">ABC Plumbing</h1>
<p property="description">24/7 emergency plumbing services</p>
</div>
Recommendation: Use JSON-LD. It's easier to implement and doesn't require changing your HTML structure.
Testing your schema markup
After implementing schema markup, test it:
- Google Rich Results Test: https://search.google.com/test/rich-results
- Schema.org Validator: https://validator.schema.org/
- Bing Webmaster Tools: https://www.bing.com/webmasters/
These tools will show you if your schema is valid and how it will appear in search results.
Schema markup checklist
Homepage:
- LocalBusiness schema with name, address, phone, website
- BreadcrumbList schema
- Speakable schema for key content
Service pages:
- LocalBusiness schema with service area
- FAQPage schema if you have Q&A content
- Speakable schema for key answers
- BreadcrumbList schema
FAQ pages:
- FAQPage schema with all questions and answers
- Speakable schema for answers
- BreadcrumbList schema
Neighborhood pages:
- LocalBusiness schema with neighborhood service area
- FAQPage schema if you have Q&A content
- BreadcrumbList schema
Common schema mistakes
| Mistake | Problem | Solution |
|---|---|---|
| Invalid JSON | Schema won't work | Validate with Google Rich Results Test |
| Missing required fields | AI systems can't understand | Include name, address, phone for LocalBusiness |
| Duplicate schema | Confuses AI systems | Use one schema per page |
| Outdated information | AI systems cite wrong info | Keep schema in sync with your website |
| Wrong schema type | AI systems misunderstand | Use LocalBusiness for businesses, FAQPage for Q&A |
Start with LocalBusiness schema on your homepage and service pages. Add FAQPage schema to pages with Q&A content. These two schema types will have the biggest impact on your AI visibility.
See also
- ChatGPT Search Readiness, implement schema for ChatGPT
- Entity Signals and Authority, understand entity clarity
- AI Visibility Scorecard, measure schema implementation