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 enprojectnment-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".4---56# Schema Markup Analysis & Generation78## When to Use9- Use when detecting, validating, or generating Schema.org structured data.10- Use when the user asks about JSON-LD, rich results, or markup opportunities.11- Use when schema validation is the main task, rather than a broader SEO audit.1213## Detection14151. Scan page source for JSON-LD `<script type="application/ld+json">`162. Check for Microdata (`itemscope`, `itemprop`)173. Check for RDFa (`typeof`, `property`)184. Always recommend JSON-LD as primary format (Google's stated preference)1920## Validation2122- Check required properties per schema type23- Validate against Google's supported rich result types24- Test for common errors:25 - Missing @context26 - Invalid @type27 - Wrong data types28 - Placeholder text29 - Relative URLs (should be absolute)30 - Invalid date formats31- Flag deprecated types (see below)3233## Schema Type Status (as of Feb 2026)3435Read `references/schema-types.md` for the full list. Key rules:3637### ACTIVE (recommend freely):38Organization, 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, DiscussionForumPosting3940### VIDEO & SPECIALIZED (recommend freely):41BroadcastEvent, Clip, SeekToAction, SoftwareSourceCode4243See `schema/templates.json` for ready-to-use JSON-LD templates for these types.4445> **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.4647### RESTRICTED (only for specific sites):48- **FAQ**: ONLY for government and healthcare authority sites (restricted Aug 2023)4950### DEPRECATED (never recommend):51- **HowTo**: Rich results removed September 202352- **SpecialAnnouncement**: Deprecated July 31, 202553- **CourseInfo, EstimatedSalary, LearningVideo**: Retired June 202554- **ClaimReview**: Retired from rich results June 202555- **VehicleListing**: Retired from rich results June 202556- **Practice Problem**: Retired from rich results late 202557- **Dataset**: Retired from rich results late 202558- **Book Actions**: Deprecated then reversed, still functional as of Feb 2026 (historical note)5960## Generation6162When generating schema for a page:631. Identify page type from content analysis642. Select appropriate schema type(s)653. Generate valid JSON-LD with all required + recommended properties664. Include only truthful, verifiable data. Use placeholders clearly marked for user to fill675. Validate output before presenting6869## Common Schema Templates7071### Organization72```json73{74 "@context": "https://schema.org",75 "@type": "Organization",76 "name": "[Company Name]",77 "url": "[Website URL]",78 "logo": "[Logo URL]",79 "contactPoint": {80 "@type": "ContactPoint",81 "telephone": "[Phone]",82 "contactType": "customer service"83 },84 "sameAs": [85 "[Facebook URL]",86 "[LinkedIn URL]",87 "[Twitter URL]"88 ]89}90```9192### LocalBusiness93```json94{95 "@context": "https://schema.org",96 "@type": "LocalBusiness",97 "name": "[Business Name]",98 "address": {99 "@type": "PostalAddress",100 "streetAddress": "[Street]",101 "addressLocality": "[City]",102 "addressRegion": "[State]",103 "postalCode": "[ZIP]",104 "addressCountry": "US"105 },106 "telephone": "[Phone]",107 "openingHours": "Mo-Fr 09:00-17:00",108 "geo": {109 "@type": "GeoCoordinates",110 "latitude": "[Lat]",111 "longitude": "[Long]"112 }113}114```115116### Article/BlogPosting117```json118{119 "@context": "https://schema.org",120 "@type": "Article",121 "headline": "[Title]",122 "author": {123 "@type": "Person",124 "name": "[Author Name]"125 },126 "datePublished": "[YYYY-MM-DD]",127 "dateModified": "[YYYY-MM-DD]",128 "image": "[Image URL]",129 "publisher": {130 "@type": "Organization",131 "name": "[Publisher]",132 "logo": {133 "@type": "ImageObject",134 "url": "[Logo URL]"135 }136 }137}138```139140## Output141142- `SCHEMA-REPORT.md`: detection and validation results143- `generated-schema.json`: ready-to-use JSON-LD snippets144145### Validation Results146| Schema | Type | Status | Issues |147|--------|------|--------|--------|148| ... | ... | ✅/⚠️/❌ | ... |149150### Recommendations151- Missing schema opportunities152- Validation fixes needed153- Generated code for implementation154155## Error Handling156157| Scenario | Action |158|----------|--------|159| URL unreachable | Report connection error with status code. Suggest verifying URL and checking if the page requires authentication. |160| No schema markup found | Report that no JSON-LD, Microdata, or RDFa was detected. Recommend appropriate schema types based on page content analysis. |161| Invalid JSON-LD syntax | Parse and report specific syntax errors (missing brackets, trailing commas, unquoted keys). Provide corrected JSON-LD output. |162| Deprecated schema type detected | Flag the deprecated type with its retirement date. Recommend the current replacement type or advise removal if no replacement exists. |163164## Limitations165- Use this skill only when the task clearly matches the scope described above.166- Do not treat the output as a substitute for enprojectnment-specific validation, testing, or expert review.167- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.