Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Validates existing JSON-LD structured data and suggests relevant schemas based on auto-detected page type. Does NOT enforce all schema types — only checks what is applicable to the current page context. Use when auditing or generating structured data for search engine rich results.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-09 | ✓→✓ | = Same ✓ | -7% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 51% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 6% | 0% |
Validate existing JSON-LD and suggest only relevant schemas based on the detected page type.
> Important: Do NOT blindly check for all schema types. First detect what kind of page this is, then only validate/suggest schemas that are applicable.
Look for all <script type="application/ld+json"> elements:
@context → ❌ FAIL@type → ❌ FAILScan the HTML for signals to determine what type of page this is. A page may match zero, one, or multiple types:
| Page type | Detection signals | |---|---| | Article / Blog | <meta property="article:published_time">, <article> tag, blog-like URL patterns (/blog/, /post/, /news/) | | LocalBusiness | <address> tag, <a href="tel:...">, [itemprop="telephone"], [itemprop="address"], contact page patterns | | Product | <meta property="og:type" content="product">, price elements ([itemprop="price"]), add-to-cart buttons | | FAQ | Multiple <details>/<summary> or FAQ-patterned heading + paragraph pairs | | Organization | About page with company info, <meta property="og:type" content="website"> on homepage | | BreadcrumbList | <nav aria-label="breadcrumb">, .breadcrumb class, <ol> with breadcrumb-like links | | WebSite | Homepage with site-wide search form |
If no type is detected → only validate existing schemas, do not suggest new ones.
Check existing Article schema for:
| Field | Missing = | |---|---| | headline | ⚠️ WARN | | datePublished | ⚠️ WARN | | author | ⚠️ WARN | | image | ⚠️ WARN | | description | ⚠️ WARN |
If no Article schema exists, suggest generating one:
json{ "@context": "https://schema.org", "@type": "Article", "headline": "[from og:title, <title>, or <h1>]", "datePublished": "[from article:published_time or <time datetime>]", "author": { "@type": "Person", "name": "[from meta author]" }, "image": "[from og:image or first article img]", "description": "[from meta description]", "url": "[from canonical or og:url]" }
Check for:
| Field | Missing = | |---|---| | name | ❌ FAIL | | address | ⚠️ WARN | | telephone | ⚠️ WARN |
If no LocalBusiness schema exists, suggest generating one:
json{ "@context": "https://schema.org", "@type": "LocalBusiness", "name": "[from og:site_name or <title>]", "address": "[from <address> or itemprop=address]", "telephone": "[from itemprop=telephone or tel: link]", "url": "[from canonical or og:url]", "image": "[from og:image]" }
Check for:
| Field | Missing = | |---|---| | name | ❌ FAIL | | offers (with price and priceCurrency) | ⚠️ WARN | | image | ⚠️ WARN | | description | ⚠️ WARN |
Suggest FAQPage schema with Question/Answer pairs extracted from the page.
Suggest BreadcrumbList schema from the breadcrumb navigation structure.
DO: "This page looks like a blog post → checking for Article schema"
DON'T: "Missing LocalBusiness schema" on a blog post pageThe goal is relevance, not completeness. Only flag missing schemas that would actually benefit the detected page type.
@type can be an array (e.g. ["Article", "NewsArticle"])Other measured skills in the registry, with their headline benchmark lift.