影

seo-schema

[SKILL]

seo-schema

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.
link /skills/agricidaniel/seo-schema/
version
2.2.0
category
seo
kaged
>=0.4.0
license
MIT

SKILL.md

--- 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." --- # 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 May 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. ### NO RICH RESULTS — KEEP FOR AI: - **FAQPage**: Google retired FAQ rich results for ALL sites on May 7, 2026 (supersedes the Aug 2023 gov/health restriction). No SERP feature anymore — but flag existing FAQPage at Info (not Critical), since the markup still aids AI Mode / AI Overviews entity resolution. 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**: 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: 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 ## Common Schema Templates ### Organization ```json { "@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 ```json { "@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 ```json { "@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. |