Seo schema
Skill naveedharri/benai-skills/plugins/seo/skills/seo-schema
npx -y skills add naveedharri/benai-skills --skill seo-schemaAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Detect, validate, and generate Schema.org structured data (JSON-LD preferred). Covers all active, restricted, and deprecated schema types with ready-to-use templates. Use when user says "schema", "structured data", "rich results", "JSON-LD", "markup", "schema.org", "add schema", or "generate JSON-LD".
SKILL.md
8.0 KB, as published. Nobody here has run it
Schema Markup Analysis & Generation
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.
Scripts & Reference Files
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 types
Find the plugin's location and read these files when needed during the workflow.
Phase 1: Gather Input
Ask the user:
-
Mode -- What do you need?
- Detect & Validate -- I have a page with existing schema; check what's there and if it's correct
- Generate -- I need new JSON-LD markup for a page
- Both -- Detect what's there, fix issues, and fill gaps with new markup
-
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?"
- Yes, go ahead
- Adjust scope
Phase 2: Detection & Validation
Step 1: Fetch & Parse
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:
Detection
- Scan for JSON-LD
<script type="application/ld+json">blocks - Check for Microdata (
itemscope,itemprop) - Check for RDFa (
typeof,property) - Always recommend JSON-LD as primary format (Google's stated preference)
Validation
For each schema block found, validate:
- 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
- Missing
- Flag deprecated types (see Schema Type Status 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)
Phase 3: Present Validation Results
Present the validation results in a structured table:
Schema Found
| # | Schema Type | Format | Status | Issues |
|---|---|---|---|---|
| 1 | ... | JSON-LD / Microdata / RDFa | valid / warning / error | ... |
Missing Opportunities
List schema types that would be appropriate for the page but are not present. Explain why each is relevant based on the page content.
Deprecated or Restricted Markup
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?"
- Generate fixes for the issues found
- Generate new schema for the missing opportunities
- Both -- fix issues and fill gaps
- Export the report as-is
Phase 4: Generation & Recommendations
Generating Schema
When generating schema for a page:
- Identify page type from content analysis
- Select appropriate schema type(s) -- check
references/schema-types.mdto confirm the type is ACTIVE - Reference
schema/templates.jsonfor specialized types and ready-to-use structures - Generate valid JSON-LD with all required + recommended properties
- Include only truthful, verifiable data -- use placeholders clearly marked
[PLACEHOLDER]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]"
}
}
}
Present Generated Code
For each schema type generated, present:
- The complete JSON-LD snippet ready to paste into
<head> - Where to place it in the HTML
- A note on any
[PLACEHOLDER]values that need filling
Recommendations Summary
- Validation fixes needed (with corrected code)
- Missing schema opportunities (with generated code)
- Implementation priority (which schema types have the highest rich result potential)
Output Files
SCHEMA-REPORT.md-- Detection and validation resultsgenerated-schema.json-- Ready-to-use JSON-LD snippets