Audits and generates Schema.org structured data (JSON-LD) optimized for AI discoverability — detects existing markup, validates against Schema.org specs, identifies gaps, and produces ready-to-paste JSON-LD. Use when the user wants to audit, add, or fix schema markup, mentions structured data, JSON-LD, rich snippets, or entity recognition for AI search.
Structured data is the primary machine-readable signal that tells AI systems what an entity IS and how it connects to other entities. A complete entity graph in JSON-LD dramatically increases citation probability across all AI search platforms.
Look for <script type="application/ld+json"> blocks. Parse each as JSON. A page may have multiple blocks — collect all.
Look for itemscope, itemtype, itemprop attributes. If Microdata is the only format, flag migration to JSON-LD.
Look for typeof, property, vocab attributes. Recommend migration to JSON-LD.
JSON-LD is strongly recommended for GEO. Google, Bing, and AI platforms all process it most reliably. If the site uses only Microdata or RDFa, flag as high-priority migration.
For each detected schema block, validate:
Choose schemas based on the site's business type. For full property requirements, see references/schema-types.md.
| Business Type | Required Schemas | Additional Recommended |
|---|---|---|
| Any business site | Organization, WebSite+SearchAction | BreadcrumbList on inner pages |
| Local business | Organization, LocalBusiness, WebSite+SearchAction | FAQPage, BreadcrumbList |
| Publisher / Blog | Organization, Article+Author, WebSite+SearchAction | speakable, FAQPage, Person, BreadcrumbList |
| E-commerce | Organization, Product, WebSite+SearchAction | FAQPage, BreadcrumbList |
| SaaS | Organization, SoftwareApplication, WebSite+SearchAction | FAQPage, BreadcrumbList |
| Personal brand | Person, WebSite+SearchAction | Article+Author, speakable, BreadcrumbList |
| Schema | Status | Note |
|---|---|---|
| HowTo | Rich results deprecated Aug 2023 | Still useful for AI parsing; do not promise rich results |
| FAQPage | Restricted to govt/health Aug 2023 | Still useful for AI parsing |
| SpecialAnnouncement | Deprecated 2023 | Was for COVID; remove if still present |
| CourseInfo | Replaced by Course updates 2024 | Use updated Course schema properties |
VideoObject contentUrl | Changed behavior 2024 | Must point to actual video file, not page URL |
| Review snippet | Stricter enforcement 2024 | Self-serving reviews on product pages may not display |
Flag any deprecated schemas found and recommend replacements.
The sameAs property is the single most important structured data property for GEO. It tells AI systems: "This entity on my website is the SAME entity as these profiles elsewhere."
https://www.wikidata.org/wiki/Q12345)Based on detected business type, generate ready-to-paste JSON-LD. Always generate:
@graph pattern for multiple schemas in one JSON-LD block@id properties for cross-referencing between schemasspeakable on Article schemas with CSS selectors pointing to key content<head> — NOT injected via JavaScript{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Company Name",
"url": "https://example.com",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png",
"width": 600,
"height": 60
},
"description": "Concise description of what the company does.",
"foundingDate": "2020-01-15",
"founder": {
"@type": "Person",
"name": "Founder Name",
"sameAs": "https://www.linkedin.com/in/founder"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "City",
"addressRegion": "State",
"postalCode": "12345",
"addressCountry": "US"
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-555-555-5555",
"contactType": "customer service",
"email": "[email protected]"
},
"sameAs": [
"https://en.wikipedia.org/wiki/Company_Name",
"https://www.wikidata.org/wiki/Q12345",
"https://www.linkedin.com/company/company-name",
"https://www.youtube.com/@companyname",
"https://twitter.com/companyname",
"https://github.com/companyname",
"https://www.crunchbase.com/organization/company-name"
],
"knowsAbout": [
"Topic 1",
"Topic 2",
"Topic 3"
]
}
| Criterion | Points | How to Score |
|---|---|---|
| Organization/Person schema present and complete | 15 | 15 if full, 10 if basic, 0 if none |
| sameAs links (5+ platforms) | 15 | 3 per valid sameAs link, max 15 |
| Article schema with author details | 10 | 10 if full author schema, 5 if name only, 0 if none |
| Business-type-specific schema present | 10 | 10 if complete, 5 if partial, 0 if missing |
| WebSite + SearchAction | 5 | 5 if present, 0 if not |
| BreadcrumbList on inner pages | 5 | 5 if present, 0 if not |
| JSON-LD format (not Microdata/RDFa) | 5 | 5 if JSON-LD, 3 if mixed, 0 if only Microdata/RDFa |
| Server-rendered (not JS-injected) | 10 | 10 if in HTML source, 5 if JS but in head, 0 if dynamic JS |
| speakable property on articles | 5 | 5 if present, 0 if not |
| Valid JSON + valid Schema.org types | 10 | 10 if no errors, 5 if minor issues, 0 if major errors |
| knowsAbout on Organization/Person | 5 | 5 if present with 3+ topics, 0 if missing |
| No deprecated schemas present | 5 | 5 if clean, 0 if deprecated schemas found |
Generate GEO-SCHEMA-REPORT.md with:
# GEO Schema & Structured Data Report — [Domain]
Date: [Date]
## Schema Score: XX/100
## Detected Schemas
| Page | Schema Type | Format | Status | Issues |
|---|---|---|---|---|
| / | Organization | JSON-LD | Valid | Missing sameAs |
| /blog/post-1 | Article | JSON-LD | Valid | No author schema |
## Validation Results
[List each schema with pass/fail per property]
## Missing Recommended Schemas
[List schemas that should be present based on business type but are not]
## sameAs Audit
| Platform | URL | Status |
|---|---|---|
| Wikipedia | [URL or "Not found"] | Present/Missing |
| LinkedIn | [URL or "Not found"] | Present/Missing |
[Continue for all recommended platforms]
## Generated JSON-LD Code
[Ready-to-paste JSON-LD blocks for each missing or incomplete schema]
## Implementation Notes
- Where to place each JSON-LD block
- Server-rendering requirements
- Testing with Google Rich Results Test and Schema.org Validator