Unified schema markup skill covering traditional SEO rich results, AI/GEO discoverability, and structured data implementation. Use when the user mentions 'schema markup,' 'structured data,' 'JSON-LD,' 'rich snippets,' 'schema.org,' 'FAQ schema,' 'product schema,' 'review schema,' 'breadcrumb schema,' 'Google rich results,' 'knowledge panel,' 'star ratings in search,' 'add structured data,' 'AI discoverability,' 'entity recognition,' or 'sameAs.' Covers detection, validation, generation, and optimization for both search engines and AI platforms.
From muggle-ai-teamsnpx claudepluginhub multiplex-ai/muggle-ai-teams --plugin muggle-ai-teamsThis skill uses the workspace's default tool permissions.
evals/evals.jsonreferences/schema-examples.mdExecutes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Processes code review feedback technically: verify suggestions against codebase, clarify unclear items, push back if questionable, implement after evaluation—not blind agreement.
Dispatches code-reviewer subagent to evaluate code changes via git SHAs after tasks, major features, or before merging, with focused context on implementation and requirements.
You are an expert in structured data, schema markup, and AI entity recognition. Your goal is to implement schema.org markup that (1) earns rich results in Google and (2) maximizes AI discoverability and citation probability across ChatGPT, Perplexity, Gemini, and Claude.
Check for product marketing context first:
If .agents/product-marketing-context.md exists, read it before asking questions.
Before implementing schema, understand:
Google, Bing, and AI platforms all process JSON-LD most reliably. If the site uses Microdata or RDFa exclusively, flag migration to JSON-LD as high priority.
Schema must accurately represent page content. Don't markup content that doesn't exist.
Per Google's December 2025 JS SEO guidance, JavaScript-injected structured data may face delayed processing. Place JSON-LD in <head> — NOT injected via JavaScript.
<script type="application/ld+json"> blocksitemscope, itemprop)typeof, property)Organization, LocalBusiness, SoftwareApplication, WebApplication, Product, ProductGroup, Offer, Service, Article, BlogPosting, NewsArticle, Review, AggregateRating, BreadcrumbList, WebSite, WebPage, Person, ProfilePage, ContactPage, VideoObject, ImageObject, Event, JobPosting, Course, DiscussionForumPosting
| Type | Use For | Required Properties |
|---|---|---|
| Organization | Company homepage/about | name, url, logo, sameAs |
| LocalBusiness | Physical locations | name, address, telephone, openingHours |
| Article | Blog posts, news | headline, image, datePublished, author |
| Product | Product pages | name, image, offers |
| SoftwareApplication | SaaS/app pages | name, offers, applicationCategory |
| FAQPage | FAQ content (GEO value) | mainEntity (Q&A array) |
| BreadcrumbList | Any inner page | itemListElement |
| WebSite | Homepage (search box) | name, url, potentialAction |
| Person | Author/bio pages | name, url, sameAs, knowsAbout |
These properties significantly increase AI citation probability:
sameAs (CRITICAL for Entity Recognition)Tells AI systems: "This entity on my website is the SAME entity as these profiles elsewhere."
Priority order:
knowsAboutArray of expertise topics on Organization/Person schemas. Strong GEO signal for topical authority.
speakableMarks content sections suitable for voice/AI assistant citation:
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".article-summary", ".key-takeaway"]
}
For Article schemas, include rich Person schema for the author:
name, url, sameAs, jobTitle, worksFor, knowsAbout, alumniOf, award@graph PatternCombine multiple schemas on one page:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Company Name",
"url": "https://example.com",
"logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" },
"sameAs": ["https://linkedin.com/company/...", "https://twitter.com/..."],
"knowsAbout": ["Topic 1", "Topic 2"]
},
{
"@type": "WebSite",
"@id": "https://example.com/#website",
"name": "Site Name",
"url": "https://example.com",
"potentialAction": {
"@type": "SearchAction",
"target": "https://example.com/search?q={search_term_string}",
"query-input": "required name=search_term_string"
}
},
{ "@type": "BreadcrumbList", "itemListElement": [] }
]
}
Use @id properties for cross-referencing between schemas.
| Criterion | Points |
|---|---|
| Organization/Person schema present and complete | 15 |
| sameAs links (5+ platforms) | 15 |
| Article schema with rich author details | 10 |
| Business-type-specific schema present | 10 |
| WebSite + SearchAction | 5 |
| BreadcrumbList on inner pages | 5 |
| JSON-LD format (not Microdata/RDFa) | 5 |
| Server-rendered (not JS-injected) | 10 |
| speakable property on articles | 5 |
| Valid JSON + valid Schema.org types | 10 |
| knowsAbout on Organization/Person | 5 |
| No deprecated schemas present | 5 |
Add JSON-LD directly in HTML template. Use includes/partials for reusable schema.
Component that renders schema. Must be server-side rendered for SEO. Serialize data to JSON-LD in <head>.
Plugins (Yoast, Rank Math, Schema Pro). Theme modifications. Custom fields to structured data.
Generate SCHEMA-REPORT.md with: