Heading Structure: Why It Matters for SEO and Accessibility
What Is Heading Structure?
Heading structure refers to the hierarchical use of HTML heading elements (<h1> through <h6>) to organize the content on a web page. Think of headings as an outline: the <h1> is the page title, <h2> elements are major sections, <h3> elements are subsections within those, and so on.
Proper heading structure serves two critical audiences. For screen reader users, headings are the primary way to navigate a page. For search engines, headings signal what a page is about and how its content is organized. Getting heading structure right is one of the rare cases where accessibility and SEO align perfectly.
How Screen Reader Users Navigate with Headings
Sighted users scan a page visually, picking out bold text, larger fonts, and whitespace to understand the page layout. Screen reader users cannot do this. Instead, they use heading navigation to jump between sections.
All major screen readers provide a way to list every heading on a page and jump directly to any one of them. In NVDA, pressing the H key moves to the next heading. In VoiceOver, the rotor lists all headings by level. This means a page with well-structured headings gives screen reader users the same scanning capability that sighted users take for granted.
When headings are missing, out of order, or used purely for visual styling, this navigation breaks down. A screen reader user on a page with no headings must listen to the entire page linearly to find the section they want.
WCAG Success Criterion 1.3.1 (Info and Relationships) requires that the heading structure programmatically reflects the visual structure. Success Criterion 2.4.6 (Headings and Labels) requires that headings describe the topic or purpose of the content they introduce.
How Search Engines Use Heading Structure
Search engines use headings to understand the topic hierarchy of your page. While Google has stated that headings are not a direct ranking factor in the traditional sense, they influence how Google understands and indexes your content:
- The H1 tag signals the primary topic of the page. It is heavily weighted when Google determines what a page is about.
- H2 and H3 tags define subtopics. Google uses these to understand the breadth and depth of your content coverage.
- Featured snippets — Google frequently pulls content from sections with clear headings to generate featured snippet answers.
- Passage ranking — Google can rank individual passages of a page for specific queries. Clear headings help Google identify distinct passages.
Proper heading structure also improves time on page and reduces bounce rate, as users can quickly determine whether the content answers their question.
The Correct Heading Hierarchy
One H1 Per Page
Every page should have exactly one <h1> that describes the page’s primary topic. On a blog post, the H1 is the post title. On a product page, the H1 is the product name. On the homepage, the H1 is typically the main value proposition.
Having zero H1 tags means search engines and screen readers lack a clear topic signal. Having multiple H1 tags dilutes the topic and confuses the hierarchy.
Sequential Nesting
Headings should follow a logical sequence without skipping levels:
<h1>Page Title</h1>
<h2>First Major Section</h2>
<h3>Subsection</h3>
<h3>Another Subsection</h3>
<h2>Second Major Section</h2>
<h3>Subsection</h3>
<h4>Detail Within Subsection</h4>
Skipping from <h2> directly to <h4> creates a gap in the outline that confuses both screen readers and search engines. Always step down one level at a time.
Not Every Bold Text Is a Heading
A common mistake is using heading tags to make text large or bold without the text actually serving as a section heading. Conversely, some developers style text to look like headings using CSS but use <p> or <div> tags, so screen readers do not recognize them as headings.
The rule is straightforward: if it introduces a new section of content, it should be a heading tag. If it is just emphasized text within a section, use <strong> or CSS styling instead.
Common Heading Structure Mistakes
Skipping Heading Levels
Going from H2 to H4 without an H3 in between is the most common structural error. Screen reader users navigating by heading level will miss content in the gap. Search engines may interpret the content hierarchy incorrectly.
Using Headings for Styling
Using an <h3> because you want smaller text or an <h2> because you want larger text ignores the semantic meaning of headings. Always choose the heading level based on the content hierarchy, then style it with CSS to achieve the desired visual appearance.
No Headings on the Page
Some pages, particularly landing pages with heavy graphic design, use no semantic headings at all. The large text in the hero banner is an image or a styled <div>. This makes the page completely unnavigable for screen reader users and removes heading signals for search engines.
Headings Inside Interactive Elements
Placing heading tags inside buttons or links creates confusing semantics. A screen reader may announce the element as both a heading and a button, disorienting the user. Keep headings and interactive elements separate.
Empty Headings
An <h2></h2> with no text content is invisible to users but still appears in the heading outline for screen readers, creating a confusing empty entry. Remove empty heading tags from your markup.
Multiple H1 Tags
While HTML5 technically allows multiple H1 tags (one per sectioning element), in practice this confuses screen reader navigation and dilutes SEO signals. Stick to a single H1 per page.
How to Fix Your Heading Structure
Step 1: Audit Your Current Headings
Use the wcagkit heading analyzer to get an instant outline of every heading on your page. The tool flags skipped levels, missing H1 tags, and other structural issues.
Step 2: Create a Content Outline First
Before writing or restructuring content, create a text outline:
H1: Heading Structure: Why It Matters for SEO and Accessibility
H2: What Is Heading Structure?
H2: How Screen Reader Users Navigate with Headings
H2: How Search Engines Use Heading Structure
H2: The Correct Heading Hierarchy
H3: One H1 Per Page
H3: Sequential Nesting
H3: Not Every Bold Text Is a Heading
H2: Common Heading Structure Mistakes
H2: How to Fix Your Heading Structure
H2: Conclusion
This outline-first approach ensures the hierarchy is logical before you write the content.
Step 3: Separate Structure from Styling
Use CSS classes to control the visual appearance of headings independently from their semantic level. Many design systems include utility classes like .text-xl or .heading-display that let you make an <h3> visually large without changing its semantic level.
Step 4: Test with a Screen Reader
After restructuring, test with a screen reader. Open the heading list (VoiceOver rotor or NVDA Elements List) and verify that the outline makes sense on its own, without seeing the page visually. Each heading should clearly describe the section it introduces.
Heading Structure Checklist
- Exactly one H1 per page describing the primary topic.
- No skipped heading levels (H2 to H4 without H3).
- Every heading introduces a content section (not used for styling).
- No empty heading tags.
- Heading text is descriptive and unique within the page.
- Visual heading appearance is controlled by CSS, not heading level.
- Headings are not placed inside links or buttons.
Conclusion
Heading structure is where SEO and accessibility overlap completely. A well-structured heading hierarchy helps screen reader users navigate efficiently, helps search engines understand your content, and helps sighted users scan for relevant information. It is one of the highest-impact, lowest-effort improvements you can make to any webpage.
Run your pages through the wcagkit heading analyzer to identify structural issues, then use the contrast checker to ensure your headings meet WCAG color contrast requirements. A solid heading structure paired with good contrast creates a readable, navigable, and search-friendly page.