New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Detect, validate, and generate Schema.org structured data

Schema Markup Analysis & Generation

by AgriciDaniel · MIT license · ★ 17,394 on GitHub · updated Sep 11

Schema Markup Analysis & Generation cover

Detect, validate, and generate Schema.org structured data. JSON-LD format preferred.

---
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".
user-invocable: true
argument-hint: "[url]"
license: MIT
metadata:
  author: AgriciDaniel
  version: "2.3.1"
  category: seo
---

# Schema Markup Analysis & Generation

## Detection

Overview

Read ../seo/references/schema-types.md for the full list. Key rules:

What you get

  • SCHEMA-REPORT.md: detection and validation results
  • generated-schema.json: ready-to-use JSON-LD snippets

The SKILL.md below is the copy AgentAlley read and checked. The repo has changed it since; the other files are from commit e77e783.

Manual install (npx, ZIP)
Claude Codenpx skills add AgriciDaniel/claude-seo --skill seo-schema -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/AgriciDaniel/claude-seo/tar.gz/e77e783e38ee \ | tar -xz -C ~/.claude/skills --strip-components=2 claude-seo-e77e783e38ee/skills/seo-schema
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/a4eb3de93b746a58ea00/seo-schema.zip" -OutFile "$env:TEMP\seo-schema.zip"; Expand-Archive "$env:TEMP\seo-schema.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md6.7 KB
  • LICENSE.txt143 B
  • references/1 file · 5.0 KB
Read the files here
AgriciDaniel/e77e7833 files
Shared references1SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text176 lines

Schema Markup Analysis & Generation

Detection

  1. Scan page source for JSON-LD <script type="application/ld+json">
  2. Check for Microdata (itemscope, itemprop)
  3. Check for RDFa (typeof, property)
  4. 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 June 2026)

Read ../seo/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.

NO RICH RESULTS, KEEP IF USEFUL:
  • FAQPage: Google retired FAQ rich results for ALL sites on May 7, 2026 (supersedes the Aug 2023 gov/health restriction). No Google SERP rich-result benefit; flag existing FAQPage at Info (not Critical) rather than removal. For genuine user Q&A pages, use QAPage.
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: Deprecation notice 2025-11-05; Search Console / Rich Results Test support removed 2026-01-06
  • Book Actions: Deprecated/removed from Google rich results; do not recommend it for SERP features.
  • Search Console / Rich Results Test / appearance-filter support for CourseInfo, EstimatedSalary, LearningVideo, SpecialAnnouncement, VehicleListing was removed 2025-09-09; Practice Problem support was removed 2026-01-06.
Supported for Dataset Search only:
  • Dataset: Not discontinued; consumed by Google Dataset Search, with no Google Search rich-result surface. Don't advise removal as if it were killed.
Still supported (do not flag):
  • QAPage (expanded comment-thread properties 2026-03-24), DiscussionForumPosting, Education Q&A (Quiz / eduQuestionType=Flashcard). For e-commerce, hasAdultConsideration (added 2026-05-20; value https://schema.org/SexualContentConsideration) is required for adult products. Product.category accepts Text, CategoryCode, or arrays mixing both.

Generation

When generating schema for a page:

  1. Identify page type from content analysis
  2. Select appropriate schema type(s)
  3. Generate valid JSON-LD with all required + recommended properties
  4. Include only truthful, verifiable data. Use placeholders clearly marked for user to fill
  5. Validate output before presenting
  6. For review markup, reject fake reviews and undisclosed incentivized reviews. An incentive must be clearly and prominently disclosed on the page.

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.
1---
2name: seo-schema
3description: >
4 Detect, validate, and generate Schema.org structured data. JSON-LD format
5 preferred. Use when user says "schema", "structured data", "rich results",
6 "JSON-LD", or "markup".
7user-invocable: true
8argument-hint: "[url]"
9license: MIT
10metadata:
11 author: AgriciDaniel
12 version: "2.3.1"
13 category: seo
14---
15 
16# Schema Markup Analysis & Generation
17 
18## Detection
19 
201. Scan page source for JSON-LD `<script type="application/ld+json">`
212. Check for Microdata (`itemscope`, `itemprop`)
223. Check for RDFa (`typeof`, `property`)
234. Always recommend JSON-LD as primary format (Google's stated preference)
24 
25## Validation
26 
27- Check required properties per schema type
28- Validate against Google's supported rich result types
29- Test for common errors:
30 - Missing @context
31 - Invalid @type
32 - Wrong data types
33 - Placeholder text
34 - Relative URLs (should be absolute)
35 - Invalid date formats
36- Flag deprecated types (see below)
37 
38## Schema Type Status (as of June 2026)
39 
40Read `../seo/references/schema-types.md` for the full list. Key rules:
41 
42### ACTIVE (recommend freely):
43Organization, 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
44 
45### VIDEO & SPECIALIZED (recommend freely):
46BroadcastEvent, Clip, SeekToAction, SoftwareSourceCode
47 
48See `schema/templates.json` for ready-to-use JSON-LD templates for these types.
49 
50> **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.
51 
52### NO RICH RESULTS, KEEP IF USEFUL:
53- **FAQPage**: Google retired FAQ rich results for ALL sites on May 7, 2026 (supersedes the Aug 2023 gov/health restriction). No Google SERP rich-result benefit; flag existing FAQPage at Info (not Critical) rather than removal. For genuine user Q&A pages, use **QAPage**.
54 
55### DEPRECATED (never recommend):
56- **HowTo**: Rich results removed September 2023
57- **SpecialAnnouncement**: Deprecated July 31, 2025
58- **CourseInfo, EstimatedSalary, LearningVideo**: Retired June 2025
59- **ClaimReview**: Retired from rich results June 2025
60- **VehicleListing**: Retired from rich results June 2025
61- **Practice Problem**: Deprecation notice 2025-11-05; Search Console / Rich Results Test support removed 2026-01-06
62- **Book Actions**: Deprecated/removed from Google rich results; do not recommend it for SERP features.
63- Search Console / Rich Results Test / appearance-filter support for CourseInfo, EstimatedSalary, LearningVideo, SpecialAnnouncement, VehicleListing was removed 2025-09-09; Practice Problem support was removed 2026-01-06.
64 
65### Supported for Dataset Search only:
66- **Dataset**: Not discontinued; consumed by Google Dataset Search, with no Google Search rich-result surface. Don't advise removal as if it were killed.
67 
68### Still supported (do not flag):
69- QAPage (expanded comment-thread properties 2026-03-24), DiscussionForumPosting, Education Q&A (Quiz / `eduQuestionType=Flashcard`). For e-commerce, **hasAdultConsideration** (added 2026-05-20; value `https://schema.org/SexualContentConsideration`) is required for adult products. `Product.category` accepts `Text`, `CategoryCode`, or arrays mixing both.
70 
71## Generation
72 
73When generating schema for a page:
741. Identify page type from content analysis
752. Select appropriate schema type(s)
763. Generate valid JSON-LD with all required + recommended properties
774. Include only truthful, verifiable data. Use placeholders clearly marked for user to fill
785. Validate output before presenting
796. For review markup, reject fake reviews and undisclosed incentivized reviews.
80 An incentive must be clearly and prominently disclosed on the page.
81 
82## Common Schema Templates
83 
84### Organization
85```json
86{
87 "@context": "https://schema.org",
88 "@type": "Organization",
89 "name": "[Company Name]",
90 "url": "[Website URL]",
91 "logo": "[Logo URL]",
92 "contactPoint": {
93 "@type": "ContactPoint",
94 "telephone": "[Phone]",
95 "contactType": "customer service"
96 },
97 "sameAs": [
98 "[Facebook URL]",
99 "[LinkedIn URL]",
100 "[Twitter URL]"
101 ]
102}
103```
104 
105### LocalBusiness
106```json
107{
108 "@context": "https://schema.org",
109 "@type": "LocalBusiness",
110 "name": "[Business Name]",
111 "address": {
112 "@type": "PostalAddress",
113 "streetAddress": "[Street]",
114 "addressLocality": "[City]",
115 "addressRegion": "[State]",
116 "postalCode": "[ZIP]",
117 "addressCountry": "US"
118 },
119 "telephone": "[Phone]",
120 "openingHours": "Mo-Fr 09:00-17:00",
121 "geo": {
122 "@type": "GeoCoordinates",
123 "latitude": "[Lat]",
124 "longitude": "[Long]"
125 }
126}
127```
128 
129### Article/BlogPosting
130```json
131{
132 "@context": "https://schema.org",
133 "@type": "Article",
134 "headline": "[Title]",
135 "author": {
136 "@type": "Person",
137 "name": "[Author Name]"
138 },
139 "datePublished": "[YYYY-MM-DD]",
140 "dateModified": "[YYYY-MM-DD]",
141 "image": "[Image URL]",
142 "publisher": {
143 "@type": "Organization",
144 "name": "[Publisher]",
145 "logo": {
146 "@type": "ImageObject",
147 "url": "[Logo URL]"
148 }
149 }
150}
151```
152 
153## Output
154 
155- `SCHEMA-REPORT.md`: detection and validation results
156- `generated-schema.json`: ready-to-use JSON-LD snippets
157 
158### Validation Results
159| Schema | Type | Status | Issues |
160|--------|------|--------|--------|
161| ... | ... | ✅/⚠️/❌ | ... |
162 
163### Recommendations
164- Missing schema opportunities
165- Validation fixes needed
166- Generated code for implementation
167 
168## Error Handling
169 
170| Scenario | Action |
171|----------|--------|
172| URL unreachable | Report connection error with status code. Suggest verifying URL and checking if the page requires authentication. |
173| No schema markup found | Report that no JSON-LD, Microdata, or RDFa was detected. Recommend appropriate schema types based on page content analysis. |
174| Invalid JSON-LD syntax | Parse and report specific syntax errors (missing brackets, trailing commas, unquoted keys). Provide corrected JSON-LD output. |
175| Deprecated schema type detected | Flag the deprecated type with its retirement date. Recommend the current replacement type or advise removal if no replacement exists. |
176 
View all files on GitHub →

Details

Updated
Sep 11, 2026
License
MIT
Stars on the repo
★ 17,394
Checked
Source
AgriciDaniel/claude-seo ↗
Creator
AgriciDaniel · 130 listings
View creator

Made with seo-schema

Schema Markup Analysis & Generation — Claude SEO /seo command demo in Claude Code terminal (from the AgriciDaniel/claude-seo README)
Schema Markup Analysis & Generation — Claude SEO /seo command demo in Claude Code terminal (from the AgriciDaniel/claude-seo README)

by AgriciDaniel

Schema Markup Analysis & Generation — Claude SEO /seo audit demo: parallel subagents producing a prioritized action plan (from the AgriciDaniel/claude-seo README)
Schema Markup Analysis & Generation — Claude SEO /seo audit demo: parallel subagents producing a prioritized action plan (from the AgriciDaniel/claude-seo README)

by AgriciDaniel

Similar skills

See all →
SkillThe Lighthouse Agentic Browsing fractionAgentic Browsing ReadinessAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillReferring domains, anchor text distributionBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillConnect a CMS to notfair SEO tools/setup-cmsnowork-studio/notfair-plugin · by nowork-studioConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report.★ 3.9k GitHub starsSkillBacklink profile for any domainBacklink checkRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".★ 3.1k GitHub starsSkillOptimize Core Web Vitals for better page experienceCore Web Vitals optimizationaddyosmani/web-quality-skills · by addyosmaniOptimize Core Web Vitals (LCP, INP, CLS) for better page experience using field and lab evidence. Use when asked to "improve Core Web Vitals", "fix LCP", "reduce CLS", "optimize INP", "page experience optimization", or "fix layout shifts".★ 2.8k GitHub starsSkillRun an SEO page observation-action-review loopRun the SEO page looptsingyuai/growth-lab · by tsingyuaiRun an SEO page observation-action-review loop with persistent Memory by coordinating demand research, page creation, adversarial review, image generation, IndexNow submission, and performance review. Use when taking an SEO page from opportunity discovery through publication, measurement, iteration, or continuing a previous SEO loop from Memory.★ 2k GitHub stars

More from AgriciDaniel

SkillThe Lighthouse Agentic Browsing fractionAgentic Browsing ReadinessAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillOptimize content for AI Overviews , ChatGPT web searchAI Search / GEO Optimization (May 2026)AgriciDaniel/claude-seo · by AgriciDanielOptimize content for AI Overviews (formerly SGE), ChatGPT web search, Perplexity, and other AI-powered search experiences. Generative Engine Optimization (GEO) analysis including brand mention signals, AI crawler accessibility, llms.txt compliance, passage-level citability scoring, and platform-specific optimization. Use when user says "AI Overviews", "SGE", GEO", "AI search", "LLM optimization", "Perplexity", "AI citations", ChatGPT search", or "AI visibility".★ 17.4k GitHub starsSkillReferring domains, anchor text distributionBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillYou share your Amazon advertising numbers and goals; you getAmazon Ads AuditAgriciDaniel/claude-ads · by AgriciDanielYou share your Amazon advertising numbers and goals; you get back a plain-language review of what's draining your budget and what to change first.★ 9.5k GitHub starsSkillPaste what you're spending on Apple Search AdsApple Ads AuditAgriciDaniel/claude-ads · by AgriciDanielPaste what you're spending on Apple Search Ads and your recent numbers; get back a plain review of what's wasting money and what to fix first.★ 9.5k GitHub starsSkillPaste the sales and spend numbers each ad platform claimsAttribution AuditAgriciDaniel/claude-ads · by AgriciDanielPaste the sales and spend numbers each ad platform claims, and get back a plain explanation of why they disagree and which figure to trust.★ 9.5k GitHub stars