Claude-seo-skills seo-schema
git clone https://github.com/lionkiii/claude-seo-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/lionkiii/claude-seo-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/seo-schema" ~/.claude/skills/lionkiii-claude-seo-skills-seo-schema && rm -rf "$T"
skills/seo-schema/SKILL.mdSchema Markup Analysis & Generation
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
— detection and validation resultsSCHEMA-REPORT.md
— ready-to-use JSON-LD snippetsgenerated-schema.json
Validation Results
| Schema | Type | Status | Issues |
|---|---|---|---|
| ... | ... | ✅/⚠️/❌ | ... |
Recommendations
- Missing schema opportunities
- Validation fixes needed
- Generated code for implementation
Live Data Insights (MCP Overlay)
@skills/seo/references/mcp-degradation.md
Ahrefs Traffic Prioritization
If Ahrefs available: Use ToolSearch with query "+ahrefs" to check availability.
- If Ahrefs MCP tools are returned: fetch
for the domain to identify highest-traffic pages.site-explorer-top-pages - Add
section showing which pages receive the most organic traffic and their current schema status — prioritize schema implementation on these pages first.### Schema Priority by Traffic - Pages with high traffic but missing schema are the highest-impact opportunities.
- If Ahrefs MCP is not available: proceed with static schema analysis only, noting that traffic-based prioritization is unavailable.
Schema Priority by Traffic (when Ahrefs available)
| Page | Monthly Visits | Schema Status | Priority |
|---|---|---|---|
| [top page 1] | [visits] | [present/missing] | [High/Medium/Low] |
| [top page 2] | [visits] | [present/missing] | [High/Medium/Low] |
Prioritization logic: pages with >1,000 monthly visits and missing schema are Critical priority. Pages with >500 visits and incomplete schema are High priority.
Data Sources
| Source | Status | Data Provided |
|---|---|---|
| Static HTML Analysis | Always available | Schema detection, validation, type checking |
Ahrefs MCP () | If connected | Top-pages traffic data for schema prioritization |