skills/schema-json-optimization/SKILL.md
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.
npx skillsauth add thisisahsaniqbal/nextjs-seo-audit schema-json-optimizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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:
{
"@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:
{
"@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 page
The 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"])testing
Audits sitemap references, robots.txt directives, canonical tags, crawlability, URL structure, redirect chains, and indexability. Use when checking technical SEO foundations or fixing crawl/index issues.
development
Audits stylesheet loading, inline CSS volume, image alt text, image formats, and Next.js Image component usage. Use when checking page speed related to HTML structure. For render-blocking scripts, image dimensions, lazy loading, and resource hints, see the core-web-vitals skill.
development
Validates HTML5 semantic elements, ARIA landmarks, skip navigation, and page structure. Use when auditing semantic HTML, accessibility, or content structure for SEO. For the lang attribute, see the international-seo skill.
development
Validates heading hierarchy, keyword density and placement, and internal/external link structure. Use when auditing on-page SEO factors for an HTML page.