| name | seo-schema |
|---|---|
| description | Detect, validate, and generate Schema.org structured data. JSON-LD format preferred. Use when user says "schema", "structured data", "rich results", "JSON-LD", or "markup". |
- Scan page source for JSON-LD
<script type="application/ld+json"> - Check for Microdata (
itemscope,itemprop) - Check for RDFa (
typeof,property) - Always recommend JSON-LD as primary format (Google's stated preference)
- Check required properties per schema type
- Validate against Google's supported rich result types
- Test for common errors:
- Missing @context
- Invalid @type
- Wrong data types
- Placeholder text
- Relative URLs (should be absolute)
- Invalid date formats
- Flag deprecated types (see below)
Read references/schema-types.md for the full list. Key rules:
Organization, LocalBusiness, SoftwareApplication, WebApplication, Product (with Certification markup as of April 2025), ProductGroup, Offer, Service, Article, BlogPosting, NewsArticle, Review, AggregateRating, BreadcrumbList, WebSite, WebPage, Person, ProfilePage, ContactPage, VideoObject, ImageObject, Event, JobPosting, Course, DiscussionForumPosting
BroadcastEvent, Clip, SeekToAction, SoftwareSourceCode
See schema/templates.json for ready-to-use JSON-LD templates for these types.
JSON-LD and JavaScript rendering: Per Google's December 2025 JS SEO guidance, structured data injected via JavaScript may face delayed processing. For time-sensitive markup (especially Product, Offer), include JSON-LD in the initial server-rendered HTML.
- FAQ: ONLY for government and healthcare authority sites (restricted Aug 2023)
- HowTo: Rich results removed September 2023
- SpecialAnnouncement: Deprecated July 31, 2025
- CourseInfo, EstimatedSalary, LearningVideo: Retired June 2025
- ClaimReview: Retired from rich results June 2025
- VehicleListing: Retired from rich results June 2025
- Practice Problem: Retired from rich results late 2025
- Dataset: Retired from rich results late 2025
- Book Actions: Deprecated then reversed — still functional as of Feb 2026 (historical note)
When generating schema for a page:
- Identify page type from content analysis
- Select appropriate schema type(s)
- Generate valid JSON-LD with all required + recommended properties
- Include only truthful, verifiable data — use placeholders clearly marked for user to fill
- Validate output before presenting
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "[Company Name]",
"url": "[Website URL]",
"logo": "[Logo URL]",
"contactPoint": {
"@type": "ContactPoint",
"telephone": "[Phone]",
"contactType": "customer service"
},
"sameAs": [
"[Facebook URL]",
"[LinkedIn URL]",
"[Twitter URL]"
]
}{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "[Business Name]",
"address": {
"@type": "PostalAddress",
"streetAddress": "[Street]",
"addressLocality": "[City]",
"addressRegion": "[State]",
"postalCode": "[ZIP]",
"addressCountry": "US"
},
"telephone": "[Phone]",
"openingHours": "Mo-Fr 09:00-17:00",
"geo": {
"@type": "GeoCoordinates",
"latitude": "[Lat]",
"longitude": "[Long]"
}
}{
"@context": "https://schema.org",
"@type": "Article",
"headline": "[Title]",
"author": {
"@type": "Person",
"name": "[Author Name]"
},
"datePublished": "[YYYY-MM-DD]",
"dateModified": "[YYYY-MM-DD]",
"image": "[Image URL]",
"publisher": {
"@type": "Organization",
"name": "[Publisher]",
"logo": {
"@type": "ImageObject",
"url": "[Logo URL]"
}
}
}SCHEMA-REPORT.md— detection and validation resultsgenerated-schema.json— ready-to-use JSON-LD snippets
| Schema | Type | Status | Issues |
|---|---|---|---|
| ... | ... | ✅/ |
... |
- Missing schema opportunities
- Validation fixes needed
- Generated code for implementation
When invoked as an agent, execute these steps:
- Parse the page HTML to extract JSON-LD using
scripts/parse_html.py --fetch "$URL" --json, or fetch first withscripts/fetch_page.py "$URL" --output /tmp/page.htmland then runscripts/parse_html.py /tmp/page.html --url "$URL" --json. - Extract the
schemaarray from the output. - Validate each schema object against rules in
resources/references/schema-types.md. - If modifying local files, optionally run
scripts/validate_schema.py file.htmlas a pre-commit check. - Provide the user with the validation results and new JSON-LD snippets.