Seo schema jsonld
The SEO + AI-search (GEO/AEO) optimization toolkit for Claude Code — two-score audit + opt-in fixer. Built for 2026-2027.
npx -y skills add Hainrixz/claude-seo-ai --skill seo-schema-jsonldAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Audit and generate structured data (JSON-LD) for a page — detect, validate, and complete Tier-1 schema.org types (Article, Organization, Person, Product/Offer, BreadcrumbList, LocalBusiness, Review, VideoObject, Event), flag microdata/RDFa and deprecated-for-rich-results types (FAQPage/HowTo), and produce ready-to-inject JSON-LD blocks. Module M5. Feeds both the Search SEO and AI Visibility scores.
SKILL.md
3.7 KB, as published. Nobody here has run it
seo-schema-jsonld (M5)
Structured data is the single highest-leverage signal for both classic rich results and AI citation. Reference: references/schema-tier1.md. Templates: schema/jsonld-templates/.
Audits
Working from the PageSnapshot (rendered_dom if present, else raw_html):
- Detect every
<script type="application/ld+json">block; parse JSON; note any inline microdata/RDFa (flag for migration to JSON-LD). - Validate each block: valid JSON, recognized
@type, required + recommended properties present perreferences/schema-tier1.md. - Completeness vs the page's content & vertical: e.g. an article page should have
Article/BlogPostingwithauthor(Person),datePublished,dateModified,image,publisher; a product pageProduct+Offer(price,priceCurrency,availability). - Entity hygiene: stable
@id,@graphlinkage,sameAs(defer the sameAs audit detail to M6/seo-entity-linking). - Date agreement: schema
datePublished/dateModifiedshould match visible dates (cross-check with M13). - Deprecation honesty: if
FAQPage/HowTopresent, do NOT report them as a rich-result win — label deprecated-for-SERP (still parseable by AI).
Fixes (fixable: auto)
Generate complete, valid JSON-LD blocks inferred from page content for any missing/incomplete Tier-1 type:
Article/BlogPostingfrom<article>,<h1>, byline, dates, hero image.Organization/WebSitefrom footer/contact/logo.Product+Offerfrom product DOM (name, image, price, currency, availability).BreadcrumbListfrom nav breadcrumb.Person(author) with credential fields the user supplies. Use a single@graphwith stable@ids. Inject missingdateModified/@id. The block is a diff forfix(AUTO). Never invent prices, dates, ratings, orsameAsidentity links — ask or leave a clearly-marked TODO placeholder the user fills.
Verification
- Offline:
node ${CLAUDE_SKILL_DIR}/../../scripts/validate-jsonld.mjs --url <u>— checks JSON validity + required properties against the templates. - Tier 1: confirm eligibility with Google Rich Results Test / schema.org validator. When unavailable, status is
needs_api, notpass.
Findings
Emit findings per schema/finding.schema.json. Examples:
M5.article.missing— no Article schema on an editorial page (severity 4, fail,fixable: auto, axisboth, confidenceestablished).M5.product.missing_offer_price— Product withoutOffer.priceon a product page (statusfail, severity 4,fixable: auto, axisboth, confidenceestablished).M5.faqpage.deprecated_richresult— FAQPage present (statuswarn, severity 1,fixable: advisory, axisai, confidenceestablished; rationale cites Google FAQ rich-result removal; not counted as a win). Each finding:evidence.observedquotes what's on the page;verification.reproduceis the runnable command above;expected_impactis banded + confidence-tagged (no naked %).
Honesty
- FAQPage/HowTo: parseable by AI, no Google rich results — keep if present, don't add expecting SERP features.
- Don't mark up content not visible on the page; keep schema consistent with any product feed.