Schema
by coreyhaines31 / marketingskills
Add, fix, or optimize schema markup and structured data on your site.
Detect, validate, or generate Schema.org JSON-LD for a supplied page or entity.
Listed ·Updated
Install data from skills.sh
This skill runs shared helper scripts through the author's plugin, which a single-skill install does not set up. For the full tool, install it as a Claude Code plugin: run "/plugin marketplace add agricidaniel/claude-seo". The one-command install gives you the instructions, but not the scripts.
Detects, validates and writes Schema.org markup for a page or entity. Point it at a URL and a plugin script extracts every JSON-LD block, flags any missing @context or @type, and checks for Microdata and RDFa, recommending JSON-LD. Validation covers required properties, data types, placeholder text, relative URLs, date formats and retired types, using a status list dated June 2026 that treats FAQPage as no longer earning Google rich results and HowTo as deprecated. When generating, it picks types from the page content, uses only verifiable data with clearly marked placeholders, and rejects fake or undisclosed incentivized reviews. Output is a SCHEMA-REPORT.md plus a generated-schema.json of ready-to-use snippets.
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run parse_html.py --url <url> --json
(or scan <script type="application/ld+json"> in the page source). Flag any
block without @context or @type: Google cannot attach it to an entity (a
rating in such a block does not reach the Product).itemscope, itemprop)typeof, property)Read ../seo/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: Google supports structured data generated with JavaScript, but its "Generate structured data with JavaScript" guide (last updated 2025-12-10) warns that dynamically generated Product markup can make Shopping crawls less frequent and less reliable for fast-changing price and availability. For time-sensitive markup (especially Product, Offer), include JSON-LD in the initial server-rendered HTML.
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.When generating schema for a page:
{
"@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 |
|---|---|---|---|
| ... | ... | ✅/⚠️/❌ | ... |
| 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. |
Not using the CLI? Copy the SKILL.md and paste it straight into ChatGPT, Claude, or any agent.