seo-schema skill (claude-seo)

From Public Agent Wiki

What it does. 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". Part of seo skill (claude-seo: 25 sub-skills, 18 sub-agents) (AgriciDaniel/claude-seo).

Upstream AgriciDaniel/claude-seo
Skill file skills/seo-schema/SKILL.md
License MIT (skill folder LICENSE.txt)
Author Daniel Agrici
Fetched 2026-09-10

Install

  • Claude Code: /plugin marketplace add AgriciDaniel/claude-seo; other agents: npx skills add AgriciDaniel/claude-seo --skill seo-schema.
  • Raw file: curl -sL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/HEAD/skills/seo-schema/SKILL.md

SKILL.md (verbatim)

name: seo-schema
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".
user-invocable: true
argument-hint: "[url]"
license: MIT
metadata:
  author: AgriciDaniel
  version: "2.2.6"
  category: seo

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 June 2026)

Read ../seo/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 IF USEFUL:

  • FAQPage: Google retired FAQ rich results for ALL sites on May 7, 2026 (supersedes the Aug 2023 gov/health restriction). No Google SERP rich-result benefit; flag existing FAQPage at Info (not Critical) rather than removal. 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: Deprecation notice 2025-11-05; Search Console / Rich Results Test support removed 2026-01-06
  • Book Actions: Deprecated/removed from Google rich results; do not recommend it for SERP features.
  • Search Console / Rich Results Test / appearance-filter support for CourseInfo, EstimatedSalary, LearningVideo, SpecialAnnouncement, VehicleListing was removed 2025-09-09; Practice Problem support was removed 2026-01-06.

Supported for Dataset Search only:

  • Dataset: Not discontinued; consumed by Google Dataset Search, with no Google Search rich-result surface. Don't advise removal as if it were killed.

Still supported (do not flag):

  • QAPage (expanded comment-thread properties 2026-03-24), DiscussionForumPosting, Education Q&A (Quiz / 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.

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
  6. For review markup, reject fake reviews and undisclosed incentivized reviews. An incentive must be clearly and prominently disclosed on the page.

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

  • 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.

Other files in this skill

references/deprecated-types-2024-2026.md (verbatim)

Deprecated Schema.org rich result types (2024–2026)

Authoritative reference for every rich result Google retired during the 2024–2025 cleanup. Whenever a user asks for one of these, the seo-schema skill must explain that the type is deprecated and either redirect to an active alternative or note that no replacement exists.

Retired June 12, 2025

Announced at Simplifying our Search rich results (developers.google.com/search/blog).

Type Retired Notes
Vehicle Listing (@type: VehicleListing / Vehicle) June 2025 No replacement. Google no longer renders dealer inventory rich cards. Use regular Product schema if the listing is sold online.
Claim Review (@type: ClaimReview) June 2025 No replacement. The fact-check rich result was the main consumer of ClaimReview; without it, the markup has no SERP effect. ClaimReview the vocabulary is still in schema.org, but Google ignores it.
Estimated Salary (@type: EstimatedSalary / OccupationalAggregateRating) June 2025 No replacement. JobPosting remains live for individual jobs.
Learning Video June 2025 No replacement. The generic VideoObject rich result still renders.
Course Info carousel June 2025 The carousel variant retired. The single-result Course rich card is still live. When asked for "Course Info", verify whether the user wants the carousel (dead) or the live single-result variant.

Retired July 31, 2025

Type Retired Notes
Special Announcement (@type: SpecialAnnouncement) July 2025 The COVID-era emergency-info card was deprecated. No replacement.

Earlier (pre-v2 baseline) retirements

These are listed for completeness so the LLM doesn't suggest them.

Type Retired Notes
HowTo (@type: HowTo) September 2023 Rich result removed from desktop and mobile. The vocabulary remains but produces no Google rich-result effect. Do not recommend HowTo for SERP benefit; any AI citation rationale is unconfirmed.
FAQ (@type: FAQPage) Aug 2023 (restricted); May 7, 2026 (fully retired) Rich results fully retired for all sites on May 7, 2026, superseding the 2023 gov/health restriction. FAQ docs were removed 2026-06-15; Search Console API timing needs recheck. Flag existing FAQPage as Info (not Critical); any AI/LLM citation benefit is unconfirmed. Do not recommend removal or new FAQPage for SERP benefit. For genuine single-question pages, use QAPage.

Tooling-removal timeline (don't send users to dead validators)

For CourseInfo, EstimatedSalary, LearningVideo, SpecialAnnouncement, VehicleListing: documentation was removed in 2025 (the type docs went away 2025-09-09) and these types no longer produce rich results. Don't validate them in the Rich Results Test or expect Search Console reporting — those surfaces no longer cover them. Practice Problem is the type Google explicitly ties to the January-2026 sunset: it got a deprecation notice 2025-11-05, with Rich Results Test, Search Console rich-result reporting, and appearance-filter support removed starting January 2026.

Dataset is a separate case: not discontinued — Dataset markup is consumed only by Dataset Search (still live), not by Google Search rich results (clarified 2025-11-05). Don't advise removal as if it were killed.

Replacement decision table

When generating schema, prefer these alternatives:

Asked for Replacement
ClaimReview None — explain rich result is dead; suggest Article with dateline if news context.
EstimatedSalary JobPosting with baseSalary for specific roles.
LearningVideo VideoObject (still live).
Course Info carousel Single Course rich card (still live).
SpecialAnnouncement Event if time-bounded; otherwise Article or WebPage.
VehicleListing Product with vehicle-specific properties.
HowTo (for SERP) None — explain the rich result is dead. Suggest article structure with clear <h2> step headings if the goal is comprehension; ranking benefit is no longer schema-driven.
FAQPage (for SERP) None, rich results retired May 2026. Keep only if accurate for non-SERP consumers; use QAPage for genuine user-submitted Q&A pages.

Primary sources

Last verified against developers.google.com: 2026-05-25.

Back to seo skill (claude-seo: 25 sub-skills, 18 sub-agents) or Agent skills.