Schema Markup Analysis & Generation
When to Use
- Use when detecting, validating, or generating Schema.org structured data.
- Use when the user asks about JSON-LD, rich results, or markup opportunities.
- Use when schema validation is the main task, rather than a broader SEO audit.
Detection
- 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)
Validation
- 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)
Schema Type Status (as of Feb 2026)
Read references/schema-types.md for the full list. Key rules:
ACTIVE (recommend freely):
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
VIDEO & SPECIALIZED (recommend freely):
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.
RESTRICTED (only for specific sites):
- FAQ: ONLY for government and healthcare authority sites (restricted Aug 2023)
DEPRECATED (never recommend):
- 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)
Generation
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
Common Schema Templates
Organization
{
"@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]"
]
}
LocalBusiness
{
"@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]"
}
}
Article/BlogPosting
{
"@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]"
}
}
}
Output
SCHEMA-REPORT.md: detection and validation results
generated-schema.json: ready-to-use JSON-LD snippets
Validation Results
| Schema |
Type |
Status |
Issues |
| ... |
... |
✅/⚠️/❌ |
... |
Recommendations
- Missing schema opportunities
- Validation fixes needed
- Generated code for implementation
Error Handling
| Scenario |
Action |
| URL unreachable |
Report connection error with status code. Suggest verifying URL and checking if the page requires authentication. |
| No schema markup found |
Report that no JSON-LD, Microdata, or RDFa was detected. Recommend appropriate schema types based on page content analysis. |
| Invalid JSON-LD syntax |
Parse and report specific syntax errors (missing brackets, trailing commas, unquoted keys). Provide corrected JSON-LD output. |
| Deprecated schema type detected |
Flag the deprecated type with its retirement date. Recommend the current replacement type or advise removal if no replacement exists. |
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
1---2name: seo-schema3description: 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".4license: MIT5---67# Schema Markup Analysis & Generation89## When to Use10- Use when detecting, validating, or generating Schema.org structured data.11- Use when the user asks about JSON-LD, rich results, or markup opportunities.12- Use when schema validation is the main task, rather than a broader SEO audit.1314## Detection15161. Scan page source for JSON-LD `<script type="application/ld+json">`172. Check for Microdata (`itemscope`, `itemprop`)183. Check for RDFa (`typeof`, `property`)194. Always recommend JSON-LD as primary format (Google's stated preference)2021## Validation2223- Check required properties per schema type24- Validate against Google's supported rich result types25- Test for common errors:26 - Missing @context27 - Invalid @type28 - Wrong data types29 - Placeholder text30 - Relative URLs (should be absolute)31 - Invalid date formats32- Flag deprecated types (see below)3334## Schema Type Status (as of Feb 2026)3536Read `references/schema-types.md` for the full list. Key rules:3738### ACTIVE (recommend freely):39Organization, 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, DiscussionForumPosting4041### VIDEO & SPECIALIZED (recommend freely):42BroadcastEvent, Clip, SeekToAction, SoftwareSourceCode4344See `schema/templates.json` for ready-to-use JSON-LD templates for these types.4546> **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.4748### RESTRICTED (only for specific sites):49- **FAQ**: ONLY for government and healthcare authority sites (restricted Aug 2023)5051### DEPRECATED (never recommend):52- **HowTo**: Rich results removed September 202353- **SpecialAnnouncement**: Deprecated July 31, 202554- **CourseInfo, EstimatedSalary, LearningVideo**: Retired June 202555- **ClaimReview**: Retired from rich results June 202556- **VehicleListing**: Retired from rich results June 202557- **Practice Problem**: Retired from rich results late 202558- **Dataset**: Retired from rich results late 202559- **Book Actions**: Deprecated then reversed, still functional as of Feb 2026 (historical note)6061## Generation6263When generating schema for a page:641. Identify page type from content analysis652. Select appropriate schema type(s)663. Generate valid JSON-LD with all required + recommended properties674. Include only truthful, verifiable data. Use placeholders clearly marked for user to fill685. Validate output before presenting6970## Common Schema Templates7172### Organization73```json74{75 "@context": "https://schema.org",76 "@type": "Organization",77 "name": "[Company Name]",78 "url": "[Website URL]",79 "logo": "[Logo URL]",80 "contactPoint": {81 "@type": "ContactPoint",82 "telephone": "[Phone]",83 "contactType": "customer service"84 },85 "sameAs": [86 "[Facebook URL]",87 "[LinkedIn URL]",88 "[Twitter URL]"89 ]90}91```9293### LocalBusiness94```json95{96 "@context": "https://schema.org",97 "@type": "LocalBusiness",98 "name": "[Business Name]",99 "address": {100 "@type": "PostalAddress",101 "streetAddress": "[Street]",102 "addressLocality": "[City]",103 "addressRegion": "[State]",104 "postalCode": "[ZIP]",105 "addressCountry": "US"106 },107 "telephone": "[Phone]",108 "openingHours": "Mo-Fr 09:00-17:00",109 "geo": {110 "@type": "GeoCoordinates",111 "latitude": "[Lat]",112 "longitude": "[Long]"113 }114}115```116117### Article/BlogPosting118```json119{120 "@context": "https://schema.org",121 "@type": "Article",122 "headline": "[Title]",123 "author": {124 "@type": "Person",125 "name": "[Author Name]"126 },127 "datePublished": "[YYYY-MM-DD]",128 "dateModified": "[YYYY-MM-DD]",129 "image": "[Image URL]",130 "publisher": {131 "@type": "Organization",132 "name": "[Publisher]",133 "logo": {134 "@type": "ImageObject",135 "url": "[Logo URL]"136 }137 }138}139```140141## Output142143- `SCHEMA-REPORT.md`: detection and validation results144- `generated-schema.json`: ready-to-use JSON-LD snippets145146### Validation Results147| Schema | Type | Status | Issues |148|--------|------|--------|--------|149| ... | ... | ✅/⚠️/❌ | ... |150151### Recommendations152- Missing schema opportunities153- Validation fixes needed154- Generated code for implementation155156## Error Handling157158| Scenario | Action |159|----------|--------|160| URL unreachable | Report connection error with status code. Suggest verifying URL and checking if the page requires authentication. |161| No schema markup found | Report that no JSON-LD, Microdata, or RDFa was detected. Recommend appropriate schema types based on page content analysis. |162| Invalid JSON-LD syntax | Parse and report specific syntax errors (missing brackets, trailing commas, unquoted keys). Provide corrected JSON-LD output. |163| Deprecated schema type detected | Flag the deprecated type with its retirement date. Recommend the current replacement type or advise removal if no replacement exists. |164165## Limitations166- Use this skill only when the task clearly matches the scope described above.167- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.168- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.