What You'll Learn
Schema markup states facts about a page in a machine-readable form: who wrote it, when, what organization publishes it, what a product costs. It earns rich results in Google and helps engines describe those facts accurately. Tests have not shown that it raises how often AI engines cite a page. This guide covers:
- What schema does and does not do
- Useful schema types
- Implementation with JSON-LD
- Testing and validation
- Advanced schema strategies
What Schema Markup Does and Does Not Do
What it does
Schema provides explicit declarations instead of leaving facts to be inferred:
- "This is an Article written by [Author], published on [Date]"
- "This organization is located at [Address]"
- "This product costs [Price]"
Search engines use these declarations for rich results (review stars, product prices, breadcrumbs), and engines can use them to state your facts correctly.
What it does not do
An Ahrefs difference-in-differences study (2026) found that adding JSON-LD had no significant effect on ChatGPT or Google AI Mode citations. AI answer engines quote the visible text of the pages they retrieve. If you want to be cited, the work that has evidence behind it is elsewhere: letting AI search crawlers reach the page, serving the main content without JavaScript, and answering the question directly with specific, sourced facts.
Treat schema as accuracy and rich-results work, and keep it consistent with the visible page.
Useful Schema Types
1. Organization Schema
Every site should have Organization schema on the homepage:
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your Company Name",
"url": "https://yoursite.com",
"logo": "https://yoursite.com/logo.png",
"description": "What your company does in 1-2 sentences.",
"foundingDate": "2020",
"founders": [{
"@type": "Person",
"name": "Founder Name"
}],
"contactPoint": {
"@type": "ContactPoint",
"email": "contact@yoursite.com",
"contactType": "customer service"
},
"sameAs": [
"https://twitter.com/yourhandle",
"https://linkedin.com/company/yourcompany",
"https://github.com/yourcompany"
]
}2. WebSite Schema
Implement site-wide with search functionality:
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Your Site Name",
"url": "https://yoursite.com",
"description": "Site description",
"potentialAction": {
"@type": "SearchAction",
"target": "https://yoursite.com/search?q={search_term_string}",
"query-input": "required name=search_term_string"
}
}3. Article Schema
For blog posts and articles:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Article Title - Keep Under 110 Characters",
"description": "Article description for search results",
"image": "https://yoursite.com/article-image.jpg",
"author": {
"@type": "Person",
"name": "Author Full Name",
"url": "https://yoursite.com/team/author",
"jobTitle": "Author's Title",
"sameAs": [
"https://twitter.com/author",
"https://linkedin.com/in/author"
]
},
"publisher": {
"@type": "Organization",
"name": "Your Company",
"logo": {
"@type": "ImageObject",
"url": "https://yoursite.com/logo.png"
}
},
"datePublished": "2025-01-01T08:00:00+00:00",
"dateModified": "2025-01-01T10:00:00+00:00",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://yoursite.com/blog/article-slug"
}
}4. FAQPage Schema
Use only where the questions and answers are visible on the page. Google shows FAQ rich results only for well-known government and health sites, and FAQ markup has not been shown to raise AI citations:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is GEO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "GEO (Generative Engine Optimization) is the practice of optimizing content for AI search engines like ChatGPT, Perplexity, and Google AI Overviews. It focuses on making content discoverable, understandable, and citation-worthy for AI systems."
}
},
{
"@type": "Question",
"name": "How is GEO different from SEO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "While SEO optimizes for ranking algorithms, GEO optimizes for AI understanding and citation. GEO emphasizes content structure, entity clarity, authority signals, and technical accessibility for AI crawlers."
}
}
]
}5. HowTo Schema
For instructional content. Google no longer shows HowTo rich results, so this type is optional:
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Optimize Content for AI Search",
"description": "Step-by-step guide to improving AI visibility",
"totalTime": "PT30M",
"step": [
{
"@type": "HowToStep",
"position": 1,
"name": "Allow AI Crawlers",
"text": "Update your robots.txt to allow OAI-SearchBot, Claude-SearchBot, and PerplexityBot access to your content.",
"url": "https://yoursite.com/guide#step-1"
},
{
"@type": "HowToStep",
"position": 2,
"name": "Add Author Attribution",
"text": "Include author names, bios, and credentials on all content pieces.",
"url": "https://yoursite.com/guide#step-2"
},
{
"@type": "HowToStep",
"position": 3,
"name": "Answer Directly",
"text": "Put a direct answer with specific facts in the first paragraph, under a heading that names the topic.",
"url": "https://yoursite.com/guide#step-3"
}
]
}6. Product/SoftwareApplication Schema
For product and pricing pages:
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Your Product Name",
"description": "What your product does",
"applicationCategory": "BusinessApplication",
"operatingSystem": "Web browser",
"offers": {
"@type": "AggregateOffer",
"lowPrice": "49",
"highPrice": "199",
"priceCurrency": "USD",
"offerCount": "4"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "150"
},
"featureList": [
"AI Visibility Scoring",
"Citation Tracking",
"Share of Voice Analysis",
"Optimization Recommendations"
]
}7. BreadcrumbList Schema
For navigation context:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://yoursite.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://yoursite.com/blog"
},
{
"@type": "ListItem",
"position": 3,
"name": "Article Title",
"item": "https://yoursite.com/blog/article-slug"
}
]
}Implementation Methods
JSON-LD (Recommended)
Add JSON-LD in a script tag, typically in the head or end of body:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
...
}
</script>Multiple Schema Types
You can include multiple schema types on one page:
<script type="application/ld+json">
[
{
"@context": "https://schema.org",
"@type": "Article",
...
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
...
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
...
}
]
</script>Testing and Validation
Google Rich Results Test
https://search.google.com/test/rich-results
- Validates schema syntax
- Shows eligible rich results
- Highlights errors and warnings
Schema.org Validator
https://validator.schema.org/
- Validates against Schema.org spec
- More comprehensive validation
- Good for debugging
Testing Process
- Implement schema on page
- Test with Google Rich Results Test
- Fix any errors
- Verify in Schema.org validator
- Deploy and monitor in Google Search Console
Common Schema Mistakes
Mistake 1: Incorrect Data Types
// Wrong
"datePublished": "January 1, 2025"
// Correct
"datePublished": "2025-01-01T08:00:00+00:00"Mistake 2: Missing Required Properties
Each schema type has required properties. Check Schema.org documentation.
Mistake 3: Markup Doesn't Match Visible Content
Schema should reflect what's actually on the page. Don't add schema for content that doesn't exist.
Mistake 4: Duplicate Schema
Avoid multiple instances of unique schema types (Organization, WebSite) unless intentional.
Advanced Schema Strategies
Nested Schema
Link related entities:
{
"@type": "Article",
"author": {
"@type": "Person",
"name": "Author Name",
"worksFor": {
"@type": "Organization",
"name": "Your Company"
}
}
}Speakable Schema
Mark content suitable for voice/audio:
{
"@type": "Article",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".article-summary", ".key-points"]
}
}DefinedTerm for Glossaries
{
"@context": "https://schema.org",
"@type": "DefinedTerm",
"name": "Generative Engine Optimization",
"description": "The practice of optimizing content for AI search engines.",
"inDefinedTermSet": {
"@type": "DefinedTermSet",
"name": "GEO Glossary"
}
}Next Steps
- Audit current schema implementation
- Implement Organization and WebSite schema
- Add Article schema to blog posts
- Add Product or SoftwareApplication schema with prices that match the page
- Test all implementations
- Monitor rich results in Search Console