Claude-seo-skills seo-schema

install
source · Clone the upstream repo
git clone https://github.com/lionkiii/claude-seo-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/lionkiii/claude-seo-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/seo-schema" ~/.claude/skills/lionkiii-claude-seo-skills-seo-schema && rm -rf "$T"
manifest: skills/seo-schema/SKILL.md
source content

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

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

{
  "@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

SchemaTypeStatusIssues
......✅/⚠️/❌...

Recommendations

  • Missing schema opportunities
  • Validation fixes needed
  • Generated code for implementation

Live Data Insights (MCP Overlay)

@skills/seo/references/mcp-degradation.md

Ahrefs Traffic Prioritization

If Ahrefs available: Use ToolSearch with query "+ahrefs" to check availability.

  • If Ahrefs MCP tools are returned: fetch
    site-explorer-top-pages
    for the domain to identify highest-traffic pages.
  • Add
    ### Schema Priority by Traffic
    section showing which pages receive the most organic traffic and their current schema status — prioritize schema implementation on these pages first.
  • Pages with high traffic but missing schema are the highest-impact opportunities.
  • If Ahrefs MCP is not available: proceed with static schema analysis only, noting that traffic-based prioritization is unavailable.

Schema Priority by Traffic (when Ahrefs available)

PageMonthly VisitsSchema StatusPriority
[top page 1][visits][present/missing][High/Medium/Low]
[top page 2][visits][present/missing][High/Medium/Low]

Prioritization logic: pages with >1,000 monthly visits and missing schema are Critical priority. Pages with >500 visits and incomplete schema are High priority.

Data Sources

SourceStatusData Provided
Static HTML AnalysisAlways availableSchema detection, validation, type checking
Ahrefs MCP (
+ahrefs
)
If connectedTop-pages traffic data for schema prioritization