seo-schema
Installation
SKILL.md
Example output: examples/seo-schema-budgetbytes-slow-cooker-chicken-noodle-soup-20260514/SCHEMA.md
Schema Markup
Detect, validate, and generate Schema.org JSON-LD for a page. Output is paste-ready <script> blocks the user can drop into their CMS or page template, plus a validation report on what's currently present and what's broken.
Prerequisites
- Required for detect/validate paths:
mcp__firecrawl-mcp__firecrawl_scrape(raw HTML access). WebFetch returns markdown only — every<script type="application/ld+json">block is stripped before the skill ever sees it. Without Firecrawl, the skill can still generate new schema from intent detection (steps 4–6) but cannot detect or validate what's already on the page (steps 2–3, 7). - Optional: SE Ranking MCP server (used in step 7 for benchmarking competitor schema).
- User provides: a target URL. Optionally a hint about page intent ("this is a product page", "this is a how-to") if the URL pattern doesn't make it obvious.
Process
- Fetch HTML
mcp__firecrawl-mcp__firecrawl_scrape(preferred) or degrade- Cost note. Firecrawl: 1 credit for the target URL, +10 credits if step 7 (competitor benchmark) runs (1 per top-10 SERP result). User may pass
--no-firecrawlto force the degraded path (generate-only mode) for credit conservation. - If Firecrawl available: scrape the target URL. For SPAs, pass
waitFor: 2000(or a CSS selector for the main content) so the JS-rendered DOM is captured. Use the response'shtmlfor JSON-LD parsing in step 2 andmetadatafor canonical/robots cross-reference. - If Firecrawl unavailable: skip steps 2, 3, and 7 entirely (they all need raw HTML). Steps 4–6 still run — the skill becomes "generate-only", producing recommended JSON-LD blocks from intent detection without comparing to what's on the page. Surface clearly in
SCHEMA.md:Existing-schema detection: skipped — Firecrawl required (WebFetch returns markdown only). Install via extensions/firecrawl/install.sh. - Even with Firecrawl: if JSON-LD blocks appear only after JS render, flag in the output: "JS-rendered schema may not be detected by all crawlers — server-side render JSON-LD where possible."
- Cost note. Firecrawl: 1 credit for the target URL, +10 credits if step 7 (competitor benchmark) runs (1 per top-10 SERP result). User may pass