# Seo Schema Jsonld

> 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 score…

- **Type:** Skill
- **Install:** `agentstack add skill-hainrixz-claude-seo-ai-seo-schema-jsonld`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Hainrixz](https://agentstack.voostack.com/s/hainrixz)
- **Installs:** 0
- **Category:** [Search](https://agentstack.voostack.com/c/search)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Hainrixz](https://github.com/Hainrixz)
- **Source:** https://github.com/Hainrixz/claude-seo-ai/tree/main/skills/seo-schema-jsonld
- **Website:** https://tododeia.com

## Install

```sh
agentstack add skill-hainrixz-claude-seo-ai-seo-schema-jsonld
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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`):
1. **Detect** every `` block; parse JSON; note any inline microdata/RDFa (flag for migration to JSON-LD).
2. **Validate** each block: valid JSON, recognized `@type`, required + recommended properties present per `references/schema-tier1.md`.
3. **Completeness** vs the page's content & vertical: e.g. an article page should have `Article`/`BlogPosting` with `author` (Person), `datePublished`, `dateModified`, `image`, `publisher`; a product page `Product` + `Offer` (`price`, `priceCurrency`, `availability`).
4. **Entity hygiene**: stable `@id`, `@graph` linkage, `sameAs` (defer the sameAs audit detail to M6/seo-entity-linking).
5. **Date agreement**: schema `datePublished`/`dateModified` should match visible dates (cross-check with M13).
6. **Deprecation honesty**: if `FAQPage`/`HowTo` present, 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`/`BlogPosting` from ``, ``, byline, dates, hero image.
- `Organization`/`WebSite` from footer/contact/logo.
- `Product`+`Offer` from product DOM (name, image, price, currency, availability).
- `BreadcrumbList` from nav breadcrumb.
- `Person` (author) with credential fields **the user supplies**.
Use a single `@graph` with stable `@id`s. Inject missing `dateModified`/`@id`. The block is a diff for `fix` (AUTO). **Never invent** prices, dates, ratings, or `sameAs` identity links — ask or leave a clearly-marked TODO placeholder the user fills.

## Verification
- Offline: `node ${CLAUDE_SKILL_DIR}/../../scripts/validate-jsonld.mjs --url ` — 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`, not `pass`.

## Findings
Emit findings per `schema/finding.schema.json`. Examples:
- `M5.article.missing` — no Article schema on an editorial page (severity 4, fail, `fixable: auto`, axis `both`, confidence `established`).
- `M5.product.missing_offer_price` — Product without `Offer.price` on a product page (status `fail`, severity 4, `fixable: auto`, axis `both`, confidence `established`).
- `M5.faqpage.deprecated_richresult` — FAQPage present (status `warn`, severity 1, `fixable: advisory`, axis `ai`, confidence `established`; rationale cites Google FAQ rich-result removal; **not** counted as a win).
Each finding: `evidence.observed` quotes what's on the page; `verification.reproduce` is the runnable command above; `expected_impact` is 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.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Hainrixz](https://github.com/Hainrixz)
- **Source:** [Hainrixz/claude-seo-ai](https://github.com/Hainrixz/claude-seo-ai)
- **License:** MIT
- **Homepage:** https://tododeia.com

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-hainrixz-claude-seo-ai-seo-schema-jsonld
- Seller: https://agentstack.voostack.com/s/hainrixz
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
