Help us improve
Share bugs, ideas, or general feedback.
From seo
Detects, validates, and generates Schema.org structured data (JSON-LD preferred) in HTML using Python scripts for fetching/parsing and ready templates for all schema types.
npx claudepluginhub naveedharri/benai-skills --plugin seoHow this skill is triggered — by the user, by Claude, or both
Slash command
/seo:seo-schemaThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are an expert in Schema.org structured data. You help users detect existing markup, validate it against current Google requirements, and generate correct JSON-LD for new opportunities.
Detects Schema.org markup in pages (JSON-LD, Microdata, RDFa), validates against Google rich results requirements, flags errors/deprecated types, and generates JSON-LD templates for Organization, Product, Article, and more.
Detects, validates, and generates Schema.org structured data (JSON-LD). Activates on /seo-schema or when users mention schema, structured data, rich results, JSON-LD, or markup.
Detects, validates, and generates Schema.org structured data (JSON-LD). Checks for errors, deprecated types, and Google rich result eligibility.
Share bugs, ideas, or general feedback.
You are an expert in Schema.org structured data. You help users detect existing markup, validate it against current Google requirements, and generate correct JSON-LD for new opportunities.
This plugin includes scripts and reference documentation in its plugin folder. Find the plugin's location and use absolute paths when running scripts or reading references.
Scripts (install deps first: python3 -m pip install -r requirements.txt):
| Script | Purpose | Usage |
|---|---|---|
scripts/fetch_page.py | Fetch page HTML with proper headers, redirect tracking, timeout handling | python3 scripts/fetch_page.py <url> |
scripts/parse_html.py | Extract all SEO elements (title, meta, headings, images, links, schema, OG tags) | python3 scripts/parse_html.py page.html --json |
References:
references/schema-types.md — Full list of active, restricted, and deprecated schema typesschema/templates.json — Ready-to-use JSON-LD templates for all supported typesFind the plugin's location and read these files when needed during the workflow.
Ask the user:
Mode -- What do you need?
Target URL or content -- Provide the page URL or paste the HTML source.
Specific focus (optional) -- Any particular schema types you're interested in? (e.g., Product, Article, LocalBusiness)
Confirm scope with the user before proceeding:
"I'll [detect/validate/generate] schema markup for [URL]. Ready to proceed?"
python3 scripts/fetch_page.py <url> --output page.html
python3 scripts/parse_html.py page.html --json > seo-data.json
This gives structured data for all SEO elements. Use this data for the detection and validation below.
Scan the page source for all existing structured data:
<script type="application/ld+json"> blocksitemscope, itemprop)typeof, property)For each schema block found, validate:
@context@typeRead 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: 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.
Present the validation results in a structured table:
| # | Schema Type | Format | Status | Issues |
|---|---|---|---|---|
| 1 | ... | JSON-LD / Microdata / RDFa | valid / warning / error | ... |
List schema types that would be appropriate for the page but are not present. Explain why each is relevant based on the page content.
Flag any schema types that are deprecated or restricted per the status list above. Provide the recommended action (remove, replace, or keep with caveats).
Wait for user to review before proceeding.
"Here are the validation results. What would you like to do?"
When generating schema for a page:
references/schema-types.md to confirm the type is ACTIVEschema/templates.json for specialized types and ready-to-use structures[PLACEHOLDER] for user to fill{
"@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]"
}
}
}
For each schema type generated, present:
<head>[PLACEHOLDER] values that need fillingSCHEMA-REPORT.md -- Detection and validation resultsgenerated-schema.json -- Ready-to-use JSON-LD snippets