Skip to main content
AC
SEO & AEO4.3 KBMIT licensed

claude-seo-schema

Rewritten from patterns in AgriciDaniel/claude-seo (MIT)

Detect, validate, and generate Schema.org structured data as JSON-LD. Use when the user says "schema", "structured data", "rich results", "JSON-LD", or "markup". Not for full technical audits: use claude-seo-technical. Not for site-wide SEO scoring or orchestration: use claude-seo.

  • claude
  • seo
  • schema

SKILL.md

Schema Markup: Detect, Validate, Generate

Schema only counts if it is valid JSON-LD, uses a type search engines still reward, and states facts the page can back up. Everything else is noise or a penalty risk.

Workflow

  1. Detect. Fetch the page source. Find JSON-LD (<script type="application/ld+json">), Microdata (itemscope/itemprop), and RDFa (typeof/property). Recommend JSON-LD as the target format, it is Google's stated preference.
  2. Check type status. Read references/schema-status.md before recommending or flagging any type. Some types earn rich results, some help AI answer engines only, some are dead. Never recommend HowTo. Never pitch FAQPage for SERP benefit, flag existing FAQPage at Info severity, not Critical, because it still aids AI answer engines.
  3. Validate. For each block found, check:
  4. @context present and correct
  5. @type valid and not deprecated
  6. Required properties for the type present
  7. Absolute URLs, not relative
  8. ISO 8601 dates
  9. No placeholder or fabricated values
  10. Generate. Identify the page type from content, pick the matching schema type, fill required plus recommended properties. Templates live in references/schema-status.md. Only include claims the page visibly supports. Mark anything you cannot verify as <FILL_ME> for the user.
  11. Placement. Tell the user to ship JSON-LD in the initial server-rendered HTML. JS-injected structured data can face delayed processing, which matters most for Product and Offer markup.
  12. Report. Output a validation table (schema, type, status, issues) plus generated snippets and missing-schema opportunities.

Verification

Run the generated block through a parser: python3 -c "import json,sys; json.load(sys.stdin)" < generated-schema.json. Expect silent success. If it errors, fix the reported syntax issue (trailing comma, unquoted key, missing bracket) and re-run before presenting anything to the user.

Then confirm every URL value starts with https:// and every @type appears in the ACTIVE list in references/schema-status.md. If a type is not listed, verify it against schema.org before recommending.

Good vs Bad

Bad: Page has no reviews. You generate AggregateRating with "ratingValue": "4.8" as a placeholder. The user ships it. That is fabricated markup and a manual-action risk.

Good: Page has no reviews. You skip rating markup, note "add AggregateRating only after real reviews exist on-page", and generate Organization plus Article markup the page actually supports.

Error handling

ScenarioAction
URL unreachableReport status code. Suggest checking auth walls or DNS.
No markup foundSay so, then recommend types based on page content.
Invalid JSON-LDReport the exact syntax error and provide corrected output.
Deprecated type foundFlag it, name the replacement, or advise removal if none exists.

Footguns

  • JS-injected JSON-LD. Markup added client-side can be processed late or inconsistently. Fix: move it into server-rendered HTML, especially Product and Offer.
  • Relative URLs. "url": "/about" fails validation silently in some tools. Fix: always absolute URLs.
  • Recommending retired types. HowTo and several others no longer earn rich results. Fix: check references/schema-status.md every time, do not rely on memory.
  • Markup contradicting the page. Schema claiming data not visible on-page invites penalties. Fix: only encode what a human can see on the rendered page.

Completion checklist

  • [ ] Every existing block validated with specific issues listed
  • [ ] Generated JSON-LD parses clean and uses only active types
  • [ ] No fabricated values, unknowns marked <FILL_ME>
  • [ ] Placement guidance (server-rendered HTML) stated
  • [ ] Validation table and recommendations delivered

Any box unchecked: not done. Fix or say so.

Reference files

More in SEO & AEO

All skills