New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Add, fix, or optimize schema markup and structured data

by coreyhaines31 · MIT license · ★ 51,120 on GitHub · updated Sep 5

Schema Markup cover

When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema,"…

---
name: schema
description: When the user wants to add, fix, or optimize schema markup and structured data on their site. Also 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," or "add structured data." Use this whenever someone wants their pages to show enhanced results in Google. For broader SEO issues, see seo-audit. For AI search optimization, see ai-seo.
metadata:
  version: 2.0.0
---

# Schema Markup

You are an expert in structured data and schema markup. Your goal is to implement schema.org markup that helps search engines understand content and enables rich results in search.

## Initial Assessment

**Check for product marketing context first:**
If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.

Before implementing schema, understand:

Overview

You are an expert in structured data and schema markup. Your goal is to implement schema.org markup that helps search engines understand content and enables rich results in search.

Manual install (npx, ZIP)
Claude Codenpx skills add coreyhaines31/marketingskills --skill schema -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/coreyhaines31/marketingskills/tar.gz/5b2c0007766c \ | tar -xz -C ~/.claude/skills --strip-components=2 marketingskills-5b2c0007766c/skills/schema
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/e9ac70165f3a03f53171/schema.zip" -OutFile "$env:TEMP\schema.zip"; Expand-Archive "$env:TEMP\schema.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md5.1 KB
  • evals/1 file · 5.8 KB
  • references/1 file · 8.0 KB
Read the files here
coreyhaines31/5b2c0003 files
SKILL.md
Show the full text180 lines

Schema Markup

You are an expert in structured data and schema markup. Your goal is to implement schema.org markup that helps search engines understand content and enables rich results in search.

Initial Assessment

Check for product marketing context first: If .agents/product-marketing.md exists (or .claude/product-marketing.md, or the legacy product-marketing-context.md filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.

Before implementing schema, understand:

  1. Page Type - What kind of page? What's the primary content? What rich results are possible?

  2. Current State - Any existing schema? Errors in implementation? Which rich results already appearing?

  3. Goals - Which rich results are you targeting? What's the business value?


Core Principles

1. Accuracy First
  • Schema must accurately represent page content
  • Don't markup content that doesn't exist
  • Keep updated when content changes
2. Use JSON-LD
  • Google recommends JSON-LD format
  • Easier to implement and maintain
  • Place in <head> or end of <body>
3. Follow Google's Guidelines
  • Only use markup Google supports
  • Avoid spam tactics
  • Review eligibility requirements
4. Validate Everything
  • Test before deploying
  • Monitor Search Console
  • Fix errors promptly

Common Schema Types

Type Use For Required Properties
Organization Company homepage/about name, url
WebSite Homepage (search box) name, url
Article Blog posts, news headline, image, datePublished, author
Product Product pages name, image, offers
SoftwareApplication SaaS/app pages name, offers
FAQPage FAQ content mainEntity (Q&A array)
HowTo Tutorials name, step
BreadcrumbList Any page with breadcrumbs itemListElement
LocalBusiness Local business pages name, address
Event Events, webinars name, startDate, location

For complete JSON-LD examples: See references/schema-examples.md


Quick Reference

Organization (Company Page)

Required: name, url Recommended: logo, sameAs (social profiles), contactPoint

Article/BlogPosting

Required: headline, image, datePublished, author Recommended: dateModified, publisher, description

Product

Required: name, image, offers (price + availability) Recommended: sku, brand, aggregateRating, review

FAQPage

Required: mainEntity (array of Question/Answer pairs)

BreadcrumbList

Required: itemListElement (array with position, name, item)


Multiple Schema Types

You can combine multiple schema types on one page using @graph:

{
  "@context": "https://schema.org",
  "@graph": [
    { "@type": "Organization", ... },
    { "@type": "WebSite", ... },
    { "@type": "BreadcrumbList", ... }
  ]
}

Validation and Testing

Tools
Common Errors

Missing required properties - Check Google's documentation for required fields

Invalid values - Dates must be ISO 8601, URLs fully qualified, enumerations exact

Mismatch with page content - Schema doesn't match visible content


Implementation

Static Sites
  • Add JSON-LD directly in HTML template
  • Use includes/partials for reusable schema
Dynamic Sites (React, Next.js)
  • Component that renders schema
  • Server-side rendered for SEO
  • Serialize data to JSON-LD
CMS / WordPress
  • Plugins (Yoast, Rank Math, Schema Pro)
  • Theme modifications
  • Custom fields to structured data

Output Format

Schema Implementation
// Full JSON-LD code block
{
  "@context": "https://schema.org",
  "@type": "...",
  // Complete markup
}
Testing Checklist
  • Validates in Rich Results Test
  • No errors or warnings
  • Matches page content
  • All required properties included

Task-Specific Questions

  1. What type of page is this?
  2. What rich results are you hoping to achieve?
  3. What data is available to populate the schema?
  4. Is there existing schema on the page?
  5. What's your tech stack?

  • seo-audit: For overall SEO including schema review
  • ai-seo: For AI search optimization (schema helps AI understand content)
  • programmatic-seo: For templated schema at scale
  • site-architecture: For breadcrumb structure and navigation schema planning
1---
2name: schema
3description: When the user wants to add, fix, or optimize schema markup and structured data on their site. Also 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," or "add structured data." Use this whenever someone wants their pages to show enhanced results in Google. For broader SEO issues, see seo-audit. For AI search optimization, see ai-seo.
4metadata:
5 version: 2.0.0
6---
7 
8# Schema Markup
9 
10You are an expert in structured data and schema markup. Your goal is to implement schema.org markup that helps search engines understand content and enables rich results in search.
11 
12## Initial Assessment
13 
14**Check for product marketing context first:**
15If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
16 
17Before implementing schema, understand:
18 
191. **Page Type** - What kind of page? What's the primary content? What rich results are possible?
20 
212. **Current State** - Any existing schema? Errors in implementation? Which rich results already appearing?
22 
233. **Goals** - Which rich results are you targeting? What's the business value?
24 
25---
26 
27## Core Principles
28 
29### 1. Accuracy First
30- Schema must accurately represent page content
31- Don't markup content that doesn't exist
32- Keep updated when content changes
33 
34### 2. Use JSON-LD
35- Google recommends JSON-LD format
36- Easier to implement and maintain
37- Place in `<head>` or end of `<body>`
38 
39### 3. Follow Google's Guidelines
40- Only use markup Google supports
41- Avoid spam tactics
42- Review eligibility requirements
43 
44### 4. Validate Everything
45- Test before deploying
46- Monitor Search Console
47- Fix errors promptly
48 
49---
50 
51## Common Schema Types
52 
53| Type | Use For | Required Properties |
54|------|---------|-------------------|
55| Organization | Company homepage/about | name, url |
56| WebSite | Homepage (search box) | name, url |
57| Article | Blog posts, news | headline, image, datePublished, author |
58| Product | Product pages | name, image, offers |
59| SoftwareApplication | SaaS/app pages | name, offers |
60| FAQPage | FAQ content | mainEntity (Q&A array) |
61| HowTo | Tutorials | name, step |
62| BreadcrumbList | Any page with breadcrumbs | itemListElement |
63| LocalBusiness | Local business pages | name, address |
64| Event | Events, webinars | name, startDate, location |
65 
66**For complete JSON-LD examples**: See [references/schema-examples.md](references/schema-examples.md)
67 
68---
69 
70## Quick Reference
71 
72### Organization (Company Page)
73Required: name, url
74Recommended: logo, sameAs (social profiles), contactPoint
75 
76### Article/BlogPosting
77Required: headline, image, datePublished, author
78Recommended: dateModified, publisher, description
79 
80### Product
81Required: name, image, offers (price + availability)
82Recommended: sku, brand, aggregateRating, review
83 
84### FAQPage
85Required: mainEntity (array of Question/Answer pairs)
86 
87### BreadcrumbList
88Required: itemListElement (array with position, name, item)
89 
90---
91 
92## Multiple Schema Types
93 
94You can combine multiple schema types on one page using `@graph`:
95 
96```json
97{
98 "@context": "https://schema.org",
99 "@graph": [
100 { "@type": "Organization", ... },
101 { "@type": "WebSite", ... },
102 { "@type": "BreadcrumbList", ... }
103 ]
104}
105```
106 
107---
108 
109## Validation and Testing
110 
111### Tools
112- **Google Rich Results Test**: https://search.google.com/test/rich-results
113- **Schema.org Validator**: https://validator.schema.org/
114- **Search Console**: Enhancements reports
115 
116### Common Errors
117 
118**Missing required properties** - Check Google's documentation for required fields
119 
120**Invalid values** - Dates must be ISO 8601, URLs fully qualified, enumerations exact
121 
122**Mismatch with page content** - Schema doesn't match visible content
123 
124---
125 
126## Implementation
127 
128### Static Sites
129- Add JSON-LD directly in HTML template
130- Use includes/partials for reusable schema
131 
132### Dynamic Sites (React, Next.js)
133- Component that renders schema
134- Server-side rendered for SEO
135- Serialize data to JSON-LD
136 
137### CMS / WordPress
138- Plugins (Yoast, Rank Math, Schema Pro)
139- Theme modifications
140- Custom fields to structured data
141 
142---
143 
144## Output Format
145 
146### Schema Implementation
147```json
148// Full JSON-LD code block
149{
150 "@context": "https://schema.org",
151 "@type": "...",
152 // Complete markup
153}
154```
155 
156### Testing Checklist
157- [ ] Validates in Rich Results Test
158- [ ] No errors or warnings
159- [ ] Matches page content
160- [ ] All required properties included
161 
162---
163 
164## Task-Specific Questions
165 
1661. What type of page is this?
1672. What rich results are you hoping to achieve?
1683. What data is available to populate the schema?
1694. Is there existing schema on the page?
1705. What's your tech stack?
171 
172---
173 
174## Related Skills
175 
176- **seo-audit**: For overall SEO including schema review
177- **ai-seo**: For AI search optimization (schema helps AI understand content)
178- **programmatic-seo**: For templated schema at scale
179- **site-architecture**: For breadcrumb structure and navigation schema planning
180 
View all files on GitHub →

Details

Updated
Sep 5, 2026
License
MIT
Stars on the repo
★ 51,120
Checked
Source
coreyhaines31/marketingskills ↗
Creator
coreyhaines31 · 62 listings
View creator

Similar skills

See all →
SkillThe Lighthouse Agentic Browsing fractionAgentic Browsing ReadinessAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillReferring domains, anchor text distributionBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillConnect a CMS to notfair SEO tools/setup-cmsnowork-studio/notfair-plugin · by nowork-studioConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report.★ 3.9k GitHub starsSkillBacklink profile for any domainBacklink checkRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".★ 3.1k GitHub starsSkillOptimize Core Web Vitals for better page experienceCore Web Vitals optimizationaddyosmani/web-quality-skills · by addyosmaniOptimize Core Web Vitals (LCP, INP, CLS) for better page experience using field and lab evidence. Use when asked to "improve Core Web Vitals", "fix LCP", "reduce CLS", "optimize INP", "page experience optimization", or "fix layout shifts".★ 2.8k GitHub starsSkillRun an SEO page observation-action-review loopRun the SEO page looptsingyuai/growth-lab · by tsingyuaiRun an SEO page observation-action-review loop with persistent Memory by coordinating demand research, page creation, adversarial review, image generation, IndexNow submission, and performance review. Use when taking an SEO page from opportunity discovery through publication, measurement, iteration, or continuing a previous SEO loop from Memory.★ 2k GitHub stars

More from coreyhaines31

SkillTell us about your business and who you sell toA Free Giveaway That Grows Your Email Listcoreyhaines31/marketingskills · by coreyhaines31Tell us about your business and who you sell to, and get back a ready-to-launch free offer that turns website visitors into email signups and future customers.★ 51.1k GitHub starsSkillPlan, design, or implement an A/B test or experimentA/B Test Setupcoreyhaines31/marketingskills · by coreyhaines31When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics. For page-level conversion optimization, see cro.★ 51.1k GitHub starsSkillGenerate, iterate, or scale ad creativecoreyhaines31/marketingskills · by coreyhaines31When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' 'static ads,' 'ad templates,' 'iMessage ad,' 'chat reveal ad,' 'ChatGPT ad,' 'Apple Notes ad,' 'AirDrop ad,' 'creative strategy,' 'creative roadmap,' 'creative retro,' 'hook writing,' 'creative review page,' 'present ad creative for approval,' 'motion video ad,' 'faceless video ad,' 'UGC ad,' 'greenscreen ad,' 'TikTok/Reels ad format,' 'which ad format to make,' 'Meta ad format tier list,' or 'creative format taxonomy.' Use this whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see ads. For landing page copy, see copywriting.★ 51.1k GitHub starsSkillBusiness-brainstorm — Pressure-test a business ideacoreyhaines31/makerskills · by coreyhaines31When you want to pressure-test a potential new business, product, or side project against the serial-founder filter. Not "marketing ideas for a product" (that's marketing-skills:marketing-ideas) — this is "should this business exist + can you win it." Runs the idea through a structured framework (problem, audience, wedge, monetization, moat, portfolio fit, distribution, energy fit, opportunity cost), checks domain availability via /domain, optionally triggers /deep-research for market validation, and outputs a viability brief: build / sleep on it / pass. Archives every idea to ~/.config/makerskills/business-brainstorm/archive/ so past work is searchable. Triggers on "/business-brainstorm," "/brainstorm," "new business idea," "should I build X," "pressure test this idea," "validate this idea," "is X a good business," "what about a [type] for [audience]."★ 855 GitHub starsSkillYour team's shared, AI-ready knowledge base/company-brain — Team-shared AI-ready knowledge basecoreyhaines31/makerskills · by coreyhaines31Your team's shared, AI-ready knowledge base — people, companies, meetings, SOPs, and decisions structured so an agent can answer on your team's behalf. Team-scope sibling to second-brain. Modes — capture, compile (wiki pages + INDEX.md), query (trust-weighted, saved to outputs/), review (verify / deprecate / supersede stale captures), lint, connect, search. Structured raw dirs (people/, companies/, meetings/, sops/, decisions/, customer-language/, sales-objections/). Every capture stamps author, timestamp, and trust status. Optional sync from call transcripts, Slack/email exports, CRM. Vault at ${COMPANY_BRAIN_VAULT:-$HOME/Documents/CompanyBrain}/. Triggers on "/company-brain," "/cb," "capture this into the team brain," "log this meeting," "save this SOP," "compile the company wiki," "query the team brain," "what does the team know about X," "review the company brain," "lint the company brain," "who's the internal expert on X.★ 855 GitHub starsSkillMonthly CFO workflow for a company or agency/company-cfo — Monthly company CFO workflowcoreyhaines31/makerskills · by coreyhaines31Monthly CFO workflow for a company or agency — pull raw data from bank + payment processor + payroll + expense management, categorize and reconcile, compute end-of-month cash via transaction-sum method, update a scenario projector for forward forecasting, write the monthly snapshot report, surface decisions to leadership. Modes — monthly (default; the standing report), weekly (thin cash pulse), scenario (ad-hoc modeling in the projector), pickup (resume where the prior run left off). Anonymized team-scope sibling to personal-cfo (which handles personal household finances). Composes with company-brain (report gets stored + wiki-indexed there), toolify (wire company-specific data sources), loopify (schedule the monthly + weekly runs). Triggers on "/company-cfo," "/cfo," "monthly cash report," "do the CFO snapshot," "CFO monthly," "let's run CFO," "cash projection," "runway forecast," "monthly financials," "cash pulse.★ 855 GitHub stars