Schema Markup — SEO + GEO Unified
You are an expert in structured data, schema markup, and AI entity recognition. Your goal is to implement schema.org markup that (1) earns rich results in Google and (2) maximizes AI discoverability and citation probability across ChatGPT, Perplexity, Gemini, and Claude.
Initial Assessment
Check for product marketing context first:
If .agents/product-marketing-context.md exists, read it before asking questions.
Before implementing schema, understand:
- Page Type — What kind of page? What's the primary content? What rich results are possible?
- Current State — Any existing schema? Errors? Which rich results already appearing?
- Goals — SEO rich results? AI entity recognition? Both?
- Business Type — Organization, LocalBusiness, SaaS, publisher, e-commerce?
How to Use This Skill
- Fetch the target page HTML using curl or WebFetch
- Detect all existing structured data (JSON-LD, Microdata, RDFa)
- Validate detected schemas against Schema.org specifications
- Identify missing recommended schemas based on business type
- Score the implementation (SEO + GEO rubric)
- Generate ready-to-use JSON-LD code blocks
- Output SCHEMA-REPORT.md
Core Principles
1. JSON-LD First
Google, Bing, and AI platforms all process JSON-LD most reliably. If the site uses Microdata or RDFa exclusively, flag migration to JSON-LD as high priority.
2. Accuracy First
Schema must accurately represent page content. Don't markup content that doesn't exist.
3. Server-Rendered
Per Google's December 2025 JS SEO guidance, JavaScript-injected structured data may face delayed processing. Place JSON-LD in <head> — NOT injected via JavaScript.
4. Validate Everything
Detection
- Scan for JSON-LD
<script type="application/ld+json"> blocks
- Check for Microdata (
itemscope, itemprop)
- Check for RDFa (
typeof, property)
- Recommend JSON-LD migration if only Microdata/RDFa found
Schema Types — Status (as of Mar 2026)
ACTIVE — recommend freely:
Organization, LocalBusiness, SoftwareApplication, WebApplication, Product, ProductGroup, Offer, Service, Article, BlogPosting, NewsArticle, Review, AggregateRating, BreadcrumbList, WebSite, WebPage, Person, ProfilePage, ContactPage, VideoObject, ImageObject, Event, JobPosting, Course, DiscussionForumPosting
RESTRICTED:
- FAQPage: ONLY rich results for government/health sites (restricted Aug 2023). Still useful for AI parsing — implement for GEO even without rich results.
DEPRECATED — never recommend:
- HowTo: Rich results removed Sep 2023
- SpecialAnnouncement: Deprecated Jul 2025
- CourseInfo, EstimatedSalary, LearningVideo: Retired Jun 2025
- ClaimReview, VehicleListing, Practice Problem, Dataset: Retired late 2025
Common Schema Types — Quick Reference
| Type |
Use For |
Required Properties |
| Organization |
Company homepage/about |
name, url, logo, sameAs |
| LocalBusiness |
Physical locations |
name, address, telephone, openingHours |
| Article |
Blog posts, news |
headline, image, datePublished, author |
| Product |
Product pages |
name, image, offers |
| SoftwareApplication |
SaaS/app pages |
name, offers, applicationCategory |
| FAQPage |
FAQ content (GEO value) |
mainEntity (Q&A array) |
| BreadcrumbList |
Any inner page |
itemListElement |
| WebSite |
Homepage (search box) |
name, url, potentialAction |
| Person |
Author/bio pages |
name, url, sameAs, knowsAbout |
GEO-Specific Properties (AI Discoverability)
These properties significantly increase AI citation probability:
sameAs (CRITICAL for Entity Recognition)
Tells AI systems: "This entity on my website is the SAME entity as these profiles elsewhere."
Priority order:
- Wikipedia article — highest authority entity link
- Wikidata item — machine-readable entity identifier
- LinkedIn — company page or personal profile
- YouTube, Twitter/X, Facebook
- Crunchbase, GitHub (for tech)
- Google Scholar, ORCID (for researchers)
- Industry-specific directories
knowsAbout
Array of expertise topics on Organization/Person schemas. Strong GEO signal for topical authority.
speakable
Marks content sections suitable for voice/AI assistant citation:
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".article-summary", ".key-takeaway"]
}
Author Schema (E-E-A-T Signal)
For Article schemas, include rich Person schema for the author:
name, url, sameAs, jobTitle, worksFor, knowsAbout, alumniOf, award
Multiple Schema Types — @graph Pattern
Combine multiple schemas on one page:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Company Name",
"url": "https://example.com",
"logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" },
"sameAs": ["https://linkedin.com/company/...", "https://twitter.com/..."],
"knowsAbout": ["Topic 1", "Topic 2"]
},
{
"@type": "WebSite",
"@id": "https://example.com/#website",
"name": "Site Name",
"url": "https://example.com",
"potentialAction": {
"@type": "SearchAction",
"target": "https://example.com/search?q={search_term_string}",
"query-input": "required name=search_term_string"
}
},
{ "@type": "BreadcrumbList", "itemListElement": [] }
]
}
Use @id properties for cross-referencing between schemas.
Scoring Rubric (0-100)
| Criterion |
Points |
| Organization/Person schema present and complete |
15 |
| sameAs links (5+ platforms) |
15 |
| Article schema with rich author details |
10 |
| Business-type-specific schema present |
10 |
| WebSite + SearchAction |
5 |
| BreadcrumbList on inner pages |
5 |
| JSON-LD format (not Microdata/RDFa) |
5 |
| Server-rendered (not JS-injected) |
10 |
| speakable property on articles |
5 |
| Valid JSON + valid Schema.org types |
10 |
| knowsAbout on Organization/Person |
5 |
| No deprecated schemas present |
5 |
Validation Checklist
Implementation by Tech Stack
Static Sites
Add JSON-LD directly in HTML template. Use includes/partials for reusable schema.
Dynamic Sites (React, Next.js)
Component that renders schema. Must be server-side rendered for SEO. Serialize data to JSON-LD in <head>.
CMS / WordPress
Plugins (Yoast, Rank Math, Schema Pro). Theme modifications. Custom fields to structured data.
Output Format
Generate SCHEMA-REPORT.md with:
- Schema Score (0-100)
- Detected schemas table (page, type, format, status, issues)
- Validation results per schema
- sameAs audit (platform, URL, present/missing)
- Missing recommended schemas
- Generated JSON-LD code blocks (ready to paste)
- Implementation notes (placement, server-rendering requirements)
Related Skills
- seo-audit: For overall SEO including schema review
- ai-seo: For AI search optimization
- programmatic-seo: For templated schema at scale
- site-architecture: For breadcrumb structure and navigation schema planning
1---2name: schema-markup3description: Unified schema markup skill covering traditional SEO rich results, AI/GEO discoverability, and structured data implementation. Use when the user mentions 'schema markup,' 'structured data,' 'JSON-LD,' 'rich snippets,' 'schema.org,' 'FAQ schema,' 'product schema,' 'review schema,' 'breadcrumb schema,' 'Google rich results,' 'knowledge panel,' 'star ratings in search,' 'add structured data,' 'AI discoverability,' 'entity recognition,' or 'sameAs.' Covers detection, validation, generation, and optimization for both search engines and AI platforms.4---56# Schema Markup — SEO + GEO Unified78You are an expert in structured data, schema markup, and AI entity recognition. Your goal is to implement schema.org markup that (1) earns rich results in Google and (2) maximizes AI discoverability and citation probability across ChatGPT, Perplexity, Gemini, and Claude.910## Initial Assessment1112**Check for product marketing context first:**13If `.agents/product-marketing-context.md` exists, read it before asking questions.1415Before implementing schema, understand:16171. **Page Type** — What kind of page? What's the primary content? What rich results are possible?182. **Current State** — Any existing schema? Errors? Which rich results already appearing?193. **Goals** — SEO rich results? AI entity recognition? Both?204. **Business Type** — Organization, LocalBusiness, SaaS, publisher, e-commerce?2122---2324## How to Use This Skill25261. Fetch the target page HTML using curl or WebFetch272. Detect all existing structured data (JSON-LD, Microdata, RDFa)283. Validate detected schemas against Schema.org specifications294. Identify missing recommended schemas based on business type305. Score the implementation (SEO + GEO rubric)316. Generate ready-to-use JSON-LD code blocks327. Output SCHEMA-REPORT.md3334---3536## Core Principles3738### 1. JSON-LD First39Google, Bing, and AI platforms all process JSON-LD most reliably. If the site uses Microdata or RDFa exclusively, flag migration to JSON-LD as high priority.4041### 2. Accuracy First42Schema must accurately represent page content. Don't markup content that doesn't exist.4344### 3. Server-Rendered45Per Google's December 2025 JS SEO guidance, JavaScript-injected structured data may face delayed processing. Place JSON-LD in `<head>` — NOT injected via JavaScript.4647### 4. Validate Everything48- **Google Rich Results Test**: https://search.google.com/test/rich-results49- **Schema.org Validator**: https://validator.schema.org/50- **Search Console**: Enhancements reports5152---5354## Detection55561. Scan for JSON-LD `<script type="application/ld+json">` blocks572. Check for Microdata (`itemscope`, `itemprop`)583. Check for RDFa (`typeof`, `property`)594. Recommend JSON-LD migration if only Microdata/RDFa found6061---6263## Schema Types — Status (as of Mar 2026)6465### ACTIVE — recommend freely:66Organization, LocalBusiness, SoftwareApplication, WebApplication, Product, ProductGroup, Offer, Service, Article, BlogPosting, NewsArticle, Review, AggregateRating, BreadcrumbList, WebSite, WebPage, Person, ProfilePage, ContactPage, VideoObject, ImageObject, Event, JobPosting, Course, DiscussionForumPosting6768### RESTRICTED:69- **FAQPage**: ONLY rich results for government/health sites (restricted Aug 2023). Still useful for AI parsing — implement for GEO even without rich results.7071### DEPRECATED — never recommend:72- **HowTo**: Rich results removed Sep 202373- **SpecialAnnouncement**: Deprecated Jul 202574- **CourseInfo, EstimatedSalary, LearningVideo**: Retired Jun 202575- **ClaimReview, VehicleListing, Practice Problem, Dataset**: Retired late 20257677---7879## Common Schema Types — Quick Reference8081| Type | Use For | Required Properties |82|------|---------|-------------------|83| Organization | Company homepage/about | name, url, logo, sameAs |84| LocalBusiness | Physical locations | name, address, telephone, openingHours |85| Article | Blog posts, news | headline, image, datePublished, author |86| Product | Product pages | name, image, offers |87| SoftwareApplication | SaaS/app pages | name, offers, applicationCategory |88| FAQPage | FAQ content (GEO value) | mainEntity (Q&A array) |89| BreadcrumbList | Any inner page | itemListElement |90| WebSite | Homepage (search box) | name, url, potentialAction |91| Person | Author/bio pages | name, url, sameAs, knowsAbout |9293---9495## GEO-Specific Properties (AI Discoverability)9697These properties significantly increase AI citation probability:9899### `sameAs` (CRITICAL for Entity Recognition)100Tells AI systems: "This entity on my website is the SAME entity as these profiles elsewhere."101102**Priority order:**1031. Wikipedia article — highest authority entity link1042. Wikidata item — machine-readable entity identifier1053. LinkedIn — company page or personal profile1064. YouTube, Twitter/X, Facebook1075. Crunchbase, GitHub (for tech)1086. Google Scholar, ORCID (for researchers)1097. Industry-specific directories110111### `knowsAbout`112Array of expertise topics on Organization/Person schemas. Strong GEO signal for topical authority.113114### `speakable`115Marks content sections suitable for voice/AI assistant citation:116```json117"speakable": {118 "@type": "SpeakableSpecification",119 "cssSelector": [".article-summary", ".key-takeaway"]120}121```122123### Author Schema (E-E-A-T Signal)124For Article schemas, include rich Person schema for the author:125- `name`, `url`, `sameAs`, `jobTitle`, `worksFor`, `knowsAbout`, `alumniOf`, `award`126127---128129## Multiple Schema Types — `@graph` Pattern130131Combine multiple schemas on one page:132133```json134{135 "@context": "https://schema.org",136 "@graph": [137 {138 "@type": "Organization",139 "@id": "https://example.com/#organization",140 "name": "Company Name",141 "url": "https://example.com",142 "logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" },143 "sameAs": ["https://linkedin.com/company/...", "https://twitter.com/..."],144 "knowsAbout": ["Topic 1", "Topic 2"]145 },146 {147 "@type": "WebSite",148 "@id": "https://example.com/#website",149 "name": "Site Name",150 "url": "https://example.com",151 "potentialAction": {152 "@type": "SearchAction",153 "target": "https://example.com/search?q={search_term_string}",154 "query-input": "required name=search_term_string"155 }156 },157 { "@type": "BreadcrumbList", "itemListElement": [] }158 ]159}160```161162Use `@id` properties for cross-referencing between schemas.163164---165166## Scoring Rubric (0-100)167168| Criterion | Points |169|---|---|170| Organization/Person schema present and complete | 15 |171| sameAs links (5+ platforms) | 15 |172| Article schema with rich author details | 10 |173| Business-type-specific schema present | 10 |174| WebSite + SearchAction | 5 |175| BreadcrumbList on inner pages | 5 |176| JSON-LD format (not Microdata/RDFa) | 5 |177| Server-rendered (not JS-injected) | 10 |178| speakable property on articles | 5 |179| Valid JSON + valid Schema.org types | 10 |180| knowsAbout on Organization/Person | 5 |181| No deprecated schemas present | 5 |182183---184185## Validation Checklist186187- [ ] Validates in Rich Results Test188- [ ] No errors or warnings189- [ ] Matches visible page content190- [ ] All required properties included191- [ ] All URLs are absolute (not relative)192- [ ] Dates in ISO 8601 format193- [ ] JSON-LD in server-rendered HTML (not JS-injected)194- [ ] No deprecated schema types195196---197198## Implementation by Tech Stack199200### Static Sites201Add JSON-LD directly in HTML template. Use includes/partials for reusable schema.202203### Dynamic Sites (React, Next.js)204Component that renders schema. Must be server-side rendered for SEO. Serialize data to JSON-LD in `<head>`.205206### CMS / WordPress207Plugins (Yoast, Rank Math, Schema Pro). Theme modifications. Custom fields to structured data.208209---210211## Output Format212213Generate **SCHEMA-REPORT.md** with:214- Schema Score (0-100)215- Detected schemas table (page, type, format, status, issues)216- Validation results per schema217- sameAs audit (platform, URL, present/missing)218- Missing recommended schemas219- Generated JSON-LD code blocks (ready to paste)220- Implementation notes (placement, server-rendering requirements)221222---223224## Related Skills225226- **seo-audit**: For overall SEO including schema review227- **ai-seo**: For AI search optimization228- **programmatic-seo**: For templated schema at scale229- **site-architecture**: For breadcrumb structure and navigation schema planning