schema-markup
A Claude Code skill that implements schema.org structured data — FAQ, Product, Article, HowTo, Review, Breadcrumb, Organization — to enable rich results in Google and improve AI extractability.
Add structured data that earns rich results
Trigger phrases
Phrases that activate this skill when typed to Claude Code:
schema markupstructured dataJSON-LDrich snippetsFAQ schema
What it does
schema-markup is a Claude Code skill from Corey Haines’s marketing-skills repo. It turns Claude into a structured-data implementer who picks the right schema type per page (FAQ, Product, Article, HowTo, Review, Breadcrumb, Organization, ItemList for comparisons) and produces JSON-LD that validates against Google’s Rich Results Test. The skill activates when you mention “schema markup”, “structured data”, “JSON-LD”, “rich snippets”, or “FAQ schema”.
The output of a session is a JSON-LD block per page type: validated against schema.org and Rich Results, with required and recommended properties populated, ready to drop into the page head or layout component.
When to use it
Reach for it when:
- You have FAQs, products, or articles and aren’t getting rich results
- You’re optimizing for AI Overviews and ChatGPT — schema is a lever there too
- You inherited schema that was wrong or out-of-date
When not to reach for it:
- The page itself isn’t ranking — schema amplifies, doesn’t create rank
- Your CMS injects schema automatically; check before duplicating
Install
The skill is distributed via Corey Haines’s marketing-skills repo. Install via the repo’s recommended path — copy the schema-markup SKILL.md into your project’s .claude/skills/schema-markup/ directory, or use the repo’s plugin install if you’ve set it up.
Once installed, the skill activates on the trigger phrases above. The first time it runs, it will check for .agents/product-marketing-context.md (or .claude/product-marketing-context.md) — populating that file with your product context first dramatically improves output quality across all of Haines’s marketing skills.
What a session looks like
A typical session has three phases:
- Schema-type selection. Per page type, the right schema(s). Comparison pages get ItemList, FAQs get FAQPage, products get Product + AggregateRating, blog gets Article + author Person.
- JSON-LD generation. Required and recommended properties populated, no fabricated reviews, no spammy AggregateRating without real data — schema spam is penalized.
- Validation step. A copy-pastable URL to Google’s Rich Results Test, plus the warnings and recommendations from validation.
The discipline that makes it work: schema you can defend. Fake reviews and inflated AggregateRating values eventually trigger manual actions; the skill writes only what you can substantiate.
Receipts
Honest reporting on what schema-markup produces and where it has limits:
Where it works well:
- The schema-per-page-type matrix saves the “which schema for this page?” decision fatigue
- Validation step catches errors before they ship
- AI extraction (ChatGPT, Perplexity citations) benefits noticeably from clean schema
Where it backfires:
- Schema is necessary but not sufficient — bad content with great schema still won’t rank
- Some CMS platforms inject conflicting schema; manual audit needed before deploy
Pattern that works: start with FAQ and Article schema on existing top-traffic pages. They’re the easiest to implement and produce visible rich-result wins fastest.
Source and attribution
Originally written by Corey Haines. The canonical SKILL.md and any supporting files live in the schema-markup folder of his marketing-skills repository.
License: MIT. You can install, adapt, and redistribute the skill, with attribution preserved.
This page documents the skill from a practitioner’s perspective. For the formal spec and any updates, defer to the source repo.