Schema Types Ranked by AEO Impact
Implement these in order. Each one compounds the value of the others.
| Schema Type |
AEO Impact |
What It Tells AI |
Use On |
Organization |
Critical |
Who you are, what you do, how to contact you |
Homepage |
FAQPage |
Critical |
Direct Q&A pairs ready to cite |
FAQ, service, product pages |
Article |
High |
Authored expertise with publish dates |
Blog posts, guides |
HowTo |
High |
Step-by-step processes to quote |
Tutorial, guide pages |
Product |
High |
Pricing, features, availability |
Product, service pages |
LocalBusiness |
High |
Location, hours, service area |
Homepage (local businesses) |
BreadcrumbList |
Medium |
Site hierarchy and navigation context |
Every page |
WebPage + Speakable |
Medium |
Which content is suitable for voice/AI answers |
Key landing pages |
Organization Critical
schema.org/Organization
The foundation of your entity identity. This tells AI engines who you are, what you know about, and how to contact you. Without it, AI engines treat your site as anonymous content.
AEO tip: Include knowsAbout to declare your expertise topics. Include founder with the person's knowsAbout for E-E-A-T.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://yoursite.com/#organization",
"name": "Your Company Name",
"url": "https://yoursite.com",
"logo": "https://yoursite.com/logo.png",
"description": "One clear sentence about what you do.",
"foundingDate": "2024",
"knowsAbout": [
"Your primary expertise",
"Your secondary expertise"
],
"founder": {
"@type": "Person",
"name": "Founder Name",
"jobTitle": "Founder & CEO"
},
"contactPoint": {
"@type": "ContactPoint",
"contactType": "Customer Service",
"email": "hello@yoursite.com"
}
}
</script>
FAQPage Critical
schema.org/FAQPage
The highest-conversion schema type for AI citations. When AI engines encounter FAQPage markup, they can directly extract Q&A pairs as citable answers. This is the closest thing to "feeding" AI engines your preferred responses.
AEO tip: Write answers in 40-60 words. Include your brand name naturally. Answer the question in the first sentence, then elaborate.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What does Your Company do?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Your Company provides [specific service]. Founded in [year], we specialize in [expertise] for [target audience]. Our approach uses [differentiator]."
}
},
{
"@type": "Question",
"name": "How much does [service] cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "[Service] starts at $X for [what's included]. We offer one-time pricing with no subscriptions or retainers."
}
}
]
}
</script>
Article High
schema.org/Article
Establishes content authority and freshness. AI engines use datePublished and dateModified to assess recency, and author to assess expertise.
AEO tip: Always use a Person author (not just Organization) to strengthen E-E-A-T. Include jobTitle and url pointing to their bio page.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Your Article Title",
"description": "A concise summary of the article.",
"author": {
"@type": "Person",
"name": "Author Name",
"jobTitle": "Their Role",
"url": "https://yoursite.com/about"
},
"publisher": {
"@type": "Organization",
"name": "Your Company",
"logo": {
"@type": "ImageObject",
"url": "https://yoursite.com/logo.png"
}
},
"datePublished": "2026-02-10",
"dateModified": "2026-02-10"
}
</script>
HowTo High
schema.org/HowTo
Structured step-by-step content that AI engines can cite as process instructions. When someone asks "How do I do X?", HowTo schema makes your steps the easiest to extract and quote.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to [Achieve Outcome]",
"description": "Step-by-step guide to [outcome].",
"totalTime": "P7D",
"step": [
{
"@type": "HowToStep",
"position": 1,
"name": "Step Name",
"text": "Detailed instruction for this step."
},
{
"@type": "HowToStep",
"position": 2,
"name": "Next Step",
"text": "Detailed instruction for this step."
}
]
}
</script>
Product / AggregateOffer High
schema.org/Product + schema.org/AggregateOffer
When AI engines answer "How much does X cost?" or "What's the best tool for Y?", Product schema with visible pricing gives them a citable, accurate answer. AggregateOffer groups multiple pricing tiers.
AEO tip: Transparent pricing in schema gives you an edge. Many competitors hide pricing behind "Contact Us" forms, which makes them uncitable for price queries.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Your Service Name",
"description": "What it does, who it's for.",
"offers": {
"@type": "AggregateOffer",
"lowPrice": 49,
"highPrice": 2499,
"priceCurrency": "USD",
"offerCount": 3
}
}
</script>
LocalBusiness High
schema.org/LocalBusiness
For businesses with a physical location. AI engines use this for "near me" and location-based queries. Include your full NAP (Name, Address, Phone) data.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Your Business Name",
"url": "https://yoursite.com",
"telephone": "+1-555-123-4567",
"email": "hello@yoursite.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "Your City",
"addressRegion": "ST",
"postalCode": "12345",
"addressCountry": "US"
},
"areaServed": {
"@type": "City",
"name": "Your City"
}
}
</script>
WebPage + Speakable Medium
schema.org/SpeakableSpecification
Tells AI engines and voice assistants which specific sections of your page are best suited for audio extraction and direct quotation. Use the cssSelector property to target the exact HTML elements containing your most citable content — hero descriptions, key fact paragraphs, FAQ answers, and step summaries.
AEO tip: Target elements that contain complete, standalone sentences — not headings or navigation. The CSS selectors you provide should point to elements that could be read aloud without losing meaning. Avoid selecting elements that contain boilerplate or navigation text.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "Your Page Title",
"description": "Your page description.",
"url": "https://yoursite.com/your-page",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [
".page-header p",
".key-facts p",
".step-card p",
".faq-item p"
]
}
}
</script>
XPath alternative: If your site uses dynamic class names (React, Next.js, etc.), use xpath instead of cssSelector to target content by position or element type rather than class name.
"speakable": {
"@type": "SpeakableSpecification",
"xpath": [
"/html/body/main/article/p[1]",
"/html/body/main/section[@id='summary']/p"
]
}
Complete Production-Ready Code Examples
Copy-paste ready JSON-LD schema implementations. Replace placeholder values with your actual data.
Complete Homepage Schema (Multiple Types)
This example combines Organization, WebSite, FAQPage, and BreadcrumbList in a single @graph block:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://yoursite.com/#organization",
"name": "Your Company Name",
"url": "https://yoursite.com",
"logo": {
"@type": "ImageObject",
"url": "https://yoursite.com/logo.png",
"width": 512,
"height": 512
},
"description": "One clear sentence about what you do and who you serve.",
"foundingDate": "2024",
"knowsAbout": [
"Your primary expertise area",
"Your secondary expertise area",
"Your tertiary expertise area"
],
"founder": {
"@type": "Person",
"name": "Founder Name",
"jobTitle": "Founder & CEO",
"url": "https://yoursite.com/about"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Your City",
"addressRegion": "ST",
"postalCode": "12345",
"addressCountry": "US"
},
"contactPoint": {
"@type": "ContactPoint",
"contactType": "Customer Service",
"telephone": "+1-555-123-4567",
"email": "hello@yoursite.com",
"availableLanguage": "English"
},
"sameAs": [
"https://twitter.com/yourcompany",
"https://linkedin.com/company/yourcompany",
"https://facebook.com/yourcompany"
]
},
{
"@type": "WebSite",
"@id": "https://yoursite.com/#website",
"url": "https://yoursite.com",
"name": "Your Company Name",
"publisher": {
"@id": "https://yoursite.com/#organization"
},
"potentialAction": {
"@type": "SearchAction",
"target": "https://yoursite.com/search?q={search_term_string}",
"query-input": "required name=search_term_string"
}
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What does Your Company do?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Your Company provides [specific service] for [target audience]. Founded in [year], we specialize in [expertise area] using [your approach/methodology]. Our clients achieve [specific outcome]."
}
},
{
"@type": "Question",
"name": "How much does [service] cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "[Service] pricing starts at $X for [basic tier] and ranges to $Y for [premium tier]. We offer [payment model: one-time/monthly/custom]. All plans include [what's included]."
}
},
{
"@type": "Question",
"name": "Where is Your Company located?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Your Company is headquartered in [City, State]. We serve clients [locally/nationally/globally] and offer [remote/in-person/hybrid] services."
}
}
]
},
{
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://yoursite.com/"
}
]
}
]
}
</script>
Complete Blog Post Schema (Article + Author Person)
Blog posts should always use Article schema with a Person author (not Organization) for maximum E-E-A-T:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Your Article Title (60 characters max)",
"description": "A concise 1-2 sentence summary of the article.",
"image": {
"@type": "ImageObject",
"url": "https://yoursite.com/article-image.jpg",
"width": 1200,
"height": 630
},
"author": {
"@type": "Person",
"name": "Author Full Name",
"jobTitle": "Their Professional Title",
"description": "Brief bio highlighting expertise relevant to this topic.",
"url": "https://yoursite.com/author/author-name",
"sameAs": [
"https://twitter.com/authorname",
"https://linkedin.com/in/authorname"
]
},
"publisher": {
"@type": "Organization",
"name": "Your Company Name",
"logo": {
"@type": "ImageObject",
"url": "https://yoursite.com/logo.png"
}
},
"datePublished": "2026-02-14T09:00:00Z",
"dateModified": "2026-02-14T15:30:00Z",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://yoursite.com/blog/your-article-slug"
},
"articleSection": "Category Name",
"keywords": ["keyword1", "keyword2", "keyword3"],
"wordCount": 1500,
"inLanguage": "en-US"
}
</script>
Service Page with Product + AggregateOffer
For service pages with multiple pricing tiers, use Product with AggregateOffer:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Your Service Name",
"description": "Detailed description of what this service includes and who it's for.",
"image": "https://yoursite.com/service-image.jpg",
"brand": {
"@type": "Organization",
"name": "Your Company Name"
},
"offers": {
"@type": "AggregateOffer",
"lowPrice": 49,
"highPrice": 2499,
"priceCurrency": "USD",
"offerCount": 3,
"offers": [
{
"@type": "Offer",
"name": "Starter Plan",
"price": 49,
"priceCurrency": "USD",
"description": "Perfect for individuals and small projects",
"availability": "https://schema.org/InStock",
"url": "https://yoursite.com/pricing#starter"
},
{
"@type": "Offer",
"name": "Professional Plan",
"price": 499,
"priceCurrency": "USD",
"description": "For growing businesses and teams",
"availability": "https://schema.org/InStock",
"url": "https://yoursite.com/pricing#professional"
},
{
"@type": "Offer",
"name": "Enterprise Plan",
"price": 2499,
"priceCurrency": "USD",
"description": "Custom solutions for large organizations",
"availability": "https://schema.org/InStock",
"url": "https://yoursite.com/pricing#enterprise"
}
]
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.8,
"reviewCount": 127,
"bestRating": 5,
"worstRating": 1
}
}
</script>
LocalBusiness (Complete NAP Data)
For local businesses, include complete NAP (Name, Address, Phone) data and operating hours:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Your Business Name",
"description": "What you do and what makes you different",
"url": "https://yoursite.com",
"telephone": "+1-555-123-4567",
"email": "hello@yoursite.com",
"priceRange": "$$",
"image": "https://yoursite.com/storefront.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Your City",
"addressRegion": "ST",
"postalCode": "12345",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 35.5951,
"longitude": -82.5515
},
"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"
}
],
"areaServed": [
{
"@type": "City",
"name": "Your City"
},
{
"@type": "State",
"name": "Your State"
}
],
"sameAs": [
"https://facebook.com/yourbusiness",
"https://instagram.com/yourbusiness"
]
}
</script>