Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate structured-data (Schema.org / JSON-LD) markup to win rich results in search. Use when asked about schema markup, structured data, rich snippets, JSON-LD, or making a page eligible for stars/FAQ/breadcrumb results. Produces valid JSON-LD for the right schema type, the rich-result it targets, required vs. recommended fields, and validation/guideline notes.
.claude/skills/mohitagw15856-schema-markup/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 45% | 0% |
| case-20 | ✓→✗ | ▼ Worse | 156% | 0% |
| case-22 | ✓→✗ | ▼ Worse | 143% | 0% |
| case-01 | ✓→✓ | = Same ✓ | -17% | 0% |
Structured data tells search engines exactly what a page is — a product, a recipe, an FAQ, an event — making it eligible for rich results (star ratings, FAQ drop-downs, breadcrumbs) that win clicks. This skill produces valid JSON-LD for the right Schema.org type, with the fields Google actually requires, and flags the guideline traps that get markup ignored or penalised.
Ask for these only if they aren't already provided:
Target rich result — which Google rich result this enables, and the eligibility note (e.g. review snippets need real, visible reviews).
Schema type — the correct Schema.org type (and any nesting, e.g. Product → AggregateRating + Offer).
JSON-LD — ready to paste in a <script type="application/ld+json"> block:
json{ "@context": "https://schema.org", "@type": "...", "...": "..." }
Use the real provided values; mark any placeholders clearly.
Required vs. recommended fields — what Google requires for the rich result vs. nice-to-have, so nothing essential is missing.
Validation & guidelines — test in Google's Rich Results Test + Schema validator; the key rules: markup must reflect visible page content, no fake/marked-up-but-hidden data, no review spam (no self-serving aggregate ratings without real reviews). Note anything that would disqualify it.
Schema.org structured data + Google's structured-data guidelines for rich results (JSON-LD, required fields, content-match rules).
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 23,791 | 17,456 | -27% | 1 | 1 | 0% | 3,913 | 3,266 | -17% | 0 | 0 | — |
case-02 | pass→pass | 25,962 | 18,719 | -28% | 1 | 1 | 0% | 3,625 | 3,198 | -12% | 0 | 0 | — |
case-03 | pass→pass | 25,321 | 21,573 | -15% | 1 | 1 | 0% | 4,006 | 3,914 | -2% | 0 | 0 | — |
case-04 | fail→fail | 17,941 | 16,962 | -5% | 1 | 1 | 0% | 2,732 | 3,060 | +12% | 0 | 0 | — |
case-05 | fail→pass | 27,681 | 24,505 | -11% | 1 | 1 | 0% | 4,148 | 3,760 | -9% | 0 | 0 | — |
case-06 | pass→pass | 20,179 | 17,911 | -11% | 1 | 1 | 0% | 2,410 | 3,169 | +31% | 0 | 0 | — |
case-07 | pass→pass | 19,001 | 19,819 | +4% | 1 | 1 | 0% | 2,861 | 3,471 | +21% | 0 | 0 | — |
case-08 | pass→pass | 16,350 | 16,572 | +1% | 1 | 1 | 0% | 2,030 | 2,499 | +23% | 0 | 0 | — |
case-09 | pass→pass | 20,614 | 19,522 | -5% | 1 | 1 | 0% | 2,100 | 2,752 | +31% | 0 | 0 | — |
case-10 | pass→pass | 17,635 | 16,793 | -5% | 1 | 1 | 0% | 2,003 | 2,431 | +21% | 0 | 0 | — |
case-11 | fail→pass | 15,686 | 21,560 | +37% | 1 | 1 | 0% | 2,116 | 3,075 | +45% | 0 | 0 | — |
case-12 | pass→pass | 16,601 | 14,489 | -13% | 1 | 1 | 0% | 2,061 | 2,498 | +21% | 0 | 0 | — |
case-13 | pass→pass | 19,471 | 19,378 | -0% | 1 | 1 | 0% | 2,962 | 3,386 | +14% | 0 | 0 | — |
case-14 | fail→fail | 11,515 | 18,983 | +65% | 1 | 1 | 0% | 1,871 | 2,819 | +51% | 0 | 0 | — |
case-15 | pass→pass | 18,711 | 19,737 | +5% | 1 | 1 | 0% | 2,414 | 2,962 | +23% | 0 | 0 | — |
case-16 | pass→pass | 17,987 | 15,041 | -16% | 1 | 1 | 0% | 1,931 | 2,645 | +37% | 0 | 0 | — |
case-17 | pass→pass | 20,402 | 20,238 | -1% | 1 | 1 | 0% | 3,324 | 3,866 | +16% | 0 | 0 | — |
case-18 | fail→fail | 14,274 | 19,862 | +39% | 1 | 1 | 0% | 2,953 | 3,537 | +20% | 0 | 0 | — |
case-19 | pass→pass | 20,337 | 15,828 | -22% | 1 | 1 | 0% | 2,926 | 3,387 | +16% | 0 | 0 | — |
case-20 | pass→fail | 7,344 | 13,311 | +81% | 1 | 1 | 0% | 1,256 | 3,214 | +156% | 0 | 0 | — |
case-21 | pass→pass | 9,541 | 11,933 | +25% | 1 | 1 | 0% | 755 | 1,866 | +147% | 0 | 0 | — |
case-22 | pass→fail | 10,731 | 13,411 | +25% | 1 | 1 | 0% | 938 | 2,277 | +143% | 0 | 0 | — |
case-23 | pass→pass | 9,883 | 16,300 | +65% | 1 | 1 | 0% | 901 | 2,568 | +185% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of 0 percentage points is the difference between those two pass rates over the 23 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.