skills/semantic-layout/SKILL.md
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.
npx skillsauth add thisisahsaniqbal/nextjs-seo-audit semantic-layoutInstall 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.
Audit the page for proper use of HTML5 semantic elements and accessibility.
Note: The
langattribute check is handled by the international-seo skill. Do not duplicate it here.
These elements must be present:
| Element | Missing = |
|---|---|
| <header> | ❌ FAIL |
| <main> | ❌ FAIL |
| <footer> | ❌ FAIL |
| <nav> | ❌ FAIL |
Report count if present: ✅ PASS "<tag> element found (N instance(s))"
These elements should be present:
| Element | Missing = |
|---|---|
| <article> | ⚠️ WARN "Consider using for content structure" |
| <section> | ⚠️ WARN |
| <aside> | ⚠️ WARN |
| <figure> | ⚠️ WARN |
Check for accessibility skip links: <a href="#main-content">, <a href="#content">, or <a href="#main">
Count <div> elements vs semantic elements (header, main, footer, nav, article, section, aside, figure):
| Condition | Status | |---|---| | Divs > 0 but zero semantic elements | ❌ FAIL "Restructure with semantic HTML" | | Divs > 5× semantic element count | ⚠️ WARN "High div-to-semantic ratio" |
Check for these roles: banner, navigation, main, contentinfo, search
<main><main> elements → ⚠️ WARN "Wrap primary content in <main>"<main> → ⚠️ WARN "Should have only one"<h2>, <h3>, <h4> that are NOT inside <section>, <article>, <aside>, or <main><section> or <article>"<figure><figure> → ⚠️ WARN "Use <figure>/<figcaption>"<time> elements found → ✅ PASS<time> elements → ⚠️ WARN "Wrap dates in <time datetime=\"...\">"<ul> or <ol> found → ⚠️ WARN "Use lists for list-type content (improves featured snippet eligibility)"<caption> → ⚠️ WARN "Add captions for accessibility"<div id="__next"> or <div id="root"> — this does not count as "div-soup"; evaluate the semantic elements inside it<template> or <slot> elements are not visible in static HTML — note this limitation<article>, <section>, or <aside> — do not flag as WARNtesting
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.
testing
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.
development
Validates heading hierarchy, keyword density and placement, and internal/external link structure. Use when auditing on-page SEO factors for an HTML page.