Semantic HTML Structure
stableCategory: content-structure · Methodology v4.5
The scan reads the raw HTML and looks for six landmark tags: <main>, <article>, <section>, <header>, <footer>, and <nav>.
Signal Source
- Source
https://{domain}- Kind
- html_dom
Score Bands
| Verdict | Condition |
|---|---|
| Pass | five or more of the six tracked semantic elements (<main>, <article>, <section>, <header>, <footer>, <nav>) are present, signalling widespread semantic usage across the layout |
| Partial | two to four of the six tracked semantic elements are present — some semantic structure, but applied inconsistently |
| Fail | at most one tracked semantic element is present; the page is largely a <div>/<span>-only structure |
Description
The Semantic HTML Structure parameter counts how many HTML5 landmark elements your page uses to label its regions. Semantic tags tell AI crawlers which part of the page is content and which is chrome. friendly4AI scans the server-provided HTML for six landmark tags — <main>, <article>, <section>, <header>, <footer>, and <nav> — counts the distinct ones that appear, and scores the page on that coverage.
What does this parameter check?
The scan reads the raw HTML and looks for six landmark tags: <main>, <article>, <section>, <header>, <footer>, and <nav>. It counts how many distinct ones are present. The more landmarks the document carries, the more clearly it states its own structure. The check is case-insensitive, and it reads the server-provided HTML — so markup that ships in the initial response counts, while markup injected later by client-side JavaScript does not.
Why does semantic HTML matter for AI-readiness?
Semantic elements tell AI systems which region holds the main content, which is navigation, and which is page chrome. Put your primary content inside <main> and <article>, and crawlers and answer engines like ChatGPT, Gemini, and Perplexity can separate the substance from the boilerplate and quote it accurately. A page built entirely from <div> and <span> makes machines guess where each region starts and stops. That guessing lowers extraction quality and hurts your odds of being surfaced correctly. Clear structure here also feeds related signals such as heading hierarchy and accessibility labels.
How is the score calculated?
Under the v4.5 methodology, this Content Structure parameter scores on a gradient set by how many of the six landmark tags appear. The processor takes a coverage ratio (distinct tags found / 6) and maps it to a score:
- Pass (100) — five or six landmarks present (
score >= 80). Semantic markup is used widely and consistently. - Partial — two to four landmarks present (roughly 33 to 67). Some structure exists, but it is applied unevenly.
- Fail (0) — at most one landmark found; the layout is essentially
<div>/<span>-only.
One caveat on the rubric: the published "partial" band maps to the processor's middle range rather than a fixed 50, because the score tracks tag count proportionally.
How do I fix a low Semantic HTML score?
- Wrap your primary content in
<main>, and use<article>for standalone, self-contained content blocks. - Use
<header>and<footer>for page chrome, and<nav>for every navigation region — including secondary menus beyond the top bar. - Group thematic content into
<section>elements with a heading rather than nesting another<div>wrapper. - Apply the elements consistently across the layout. Scattered, partial usage only reaches the middle band.
- Re-scan after the refactor to confirm five or more landmarks show up in the initial HTML.
Version History
- Introduced
- v4.0
- Last changed
- v4.5
Key takeaways
- Signal: https://{domain}
- Category: Content Structure
- Passes when: five or more of the six tracked semantic elements (<main>, <article>, <sectio…