Why Heading Hierarchy Matters
Headings are not just visual formatting. They create a document outline that search engines use to understand content structure, topic coverage, and section relationships. A logical heading hierarchy signals expertise and organization.
The 14 Checks
Every check ranked by impact. Start at the top and work down.
| # | Check | Category | Impact | Difficulty |
|---|---|---|---|---|
| 1 | Use exactly one H1 per page | Structure | Critical | Easy |
| 2 | Include primary keyword in H1 | SEO | Critical | Easy |
| 3 | Use H2 for main sections | Structure | Critical | Easy |
| 4 | Use H3 for subsections | Structure | High | Easy |
| 5 | Never skip heading levels | Structure | High | Easy |
| 6 | Use question headings for FAQs | SEO | High | Easy |
| 7 | Include keywords in H2/H3 naturally | SEO | Medium | Easy |
| 8 | Keep headings concise | Readability | Medium | Easy |
| 9 | Make headings descriptive | UX | Medium | Easy |
| 10 | Use headings for content outline | Structure | Medium | Easy |
| 11 | Match headings to search intent | Intent | Medium | Easy |
| 12 | Avoid duplicate headings | Quality | Low | Easy |
| 13 | Use sentence case consistently | Style | Low | Easy |
| 14 | Test heading structure with screen reader | Accessibility | Low | Easy |
Proper Heading Hierarchy: Code Examples
See exactly how to structure headings in HTML for different page types.
Blog Post Heading Structure
<h1>How to Speed Up Your WordPress Site in 2026</h1>
<h2>Why Site Speed Matters for SEO</h2>
<p>Introductory paragraph explaining Core Web Vitals...</p>
<h2>Test Your Current Speed</h2>
<h3>Using Google PageSpeed Insights</h3>
<h3>Using GTmetrix</h3>
<h2>Optimize Images</h2>
<h3>Convert to WebP Format</h3>
<h3>Enable Lazy Loading</h3>
<h2>Minimize HTTP Requests</h2>
<h2>Frequently Asked Questions</h2>
<h3>What is a good page load time?</h3>
<h3>Does site speed affect Google rankings?</h3> Product Page Heading Structure
<h1>Sony WH-1000XM5 Wireless Headphones</h1>
<h2>Product Details</h2>
<h3>Noise Cancellation Technology</h3>
<h3>Battery Life</h3>
<h3>Comfort and Design</h3>
<h2>Technical Specifications</h2>
<h2>Customer Reviews</h2>
<h3>What Customers Love</h3>
<h3>Common Complaints</h3>
<h2>Compare Similar Products</h2>
<h2>Frequently Asked Questions</h2> Landing Page Heading Structure
<h1>Enterprise SEO Services That Drive Revenue</h1>
<h2>Why Choose Our SEO Agency</h2>
<h2>Our SEO Process</h2>
<h3>Step 1: Technical Audit</h3>
<h3>Step 2: Keyword Strategy</h3>
<h3>Step 3: Content Optimization</h3>
<h3>Step 4: Link Building</h3>
<h2>Case Studies</h2>
<h2>Pricing Plans</h2>
<h2>Client Testimonials</h2>
<h2>Get Your Free SEO Audit</h2> How to Set Heading Levels in WordPress
- Open the post or page in the WordPress Block Editor (Gutenberg).
- Click on any text block, then click "Transform to heading" in the block toolbar.
- Use the heading level dropdown (H2, H3, H4) in the toolbar to select the correct level.
- In the right sidebar under Block → Heading settings, you can also change the level.
- Use the Document Outline panel (click the "i" icon in the top toolbar) to verify your heading hierarchy is correct and has no skipped levels.
HTML Heading Best Practices
Use semantic HTML heading tags — never style text to look like a heading using CSS alone. Search engines and screen readers rely on the actual <h1>–<h6> tags, not visual appearance.
<!-- WRONG: styled to look like a heading but not semantic -->
<p style="font-size:24px;font-weight:bold">This is NOT a real heading</p>
<!-- CORRECT: semantic heading tag -->
<h2>This IS a real heading</h2> Heading Structure Tools
Free and freemium tools to audit and validate your heading hierarchy.
WAVE Accessibility Tool
Browser extension that shows your page's heading outline and flags missing or skipped heading levels. Essential for accessibility compliance.
wave.webaim.org →Screaming Frog SEO Spider
Crawls your entire site and exports a list of all pages with their H1 and H2 tags. Quickly find pages with missing, duplicate, or multiple H1 tags.
screamingfrog.co.uk →Browser DevTools Heading Outline
Open Chrome DevTools → Console → paste document.querySelectorAll('h1,h2,h3,h4,h5,h6') to see all headings. Use the Elements panel to inspect individual heading tags.
Hemingway Editor
Paste your content to check readability grade level. Helps you write headings and body text at an accessible reading level (aim for Grade 8 or below).
hemingwayapp.com →Yoast SEO
WordPress plugin that flags heading structure issues in real time as you write — including missing H1 tags, skipped heading levels, and keyword placement in subheadings.
yoast.com →Frequently Asked Questions
Use exactly one H1 per page. The H1 should describe the main topic of the page and include the primary keyword. Multiple H1 tags confuse search engines about what the page is actually about and can dilute your ranking signals for that topic.
Never skip heading levels. Heading hierarchy should be sequential: H1 → H2 → H3 → H4. Skipping levels breaks the document outline that screen readers rely on for navigation and makes your content structure harder for search engines to parse.
Yes, include keywords naturally in headings where they fit the context. Do not force keywords into every heading — that reads as spammy to both users and search engines. Prioritize clarity and descriptive language first, then weave in target phrases where they genuinely belong.
The title tag appears in search engine results pages (SERPs) and the browser tab, while the H1 appears as the visible on-page headline. They can differ — the title tag can include your brand name or a call-to-action — but both should clearly describe the same page topic for consistency and user trust.
Headings are a confirmed lightweight ranking factor, but their real SEO power is indirect. Well-structured headings improve crawlability, help search engines understand topic hierarchy, increase the chances of featured snippet selection, and boost readability — all of which contribute to better rankings over time.
Keep headings between 6 and 12 words, or roughly under 70 characters. Shorter headings are easier to scan and more likely to be pulled into featured snippets. If a heading feels too long, break it into a heading plus a subheading to maintain clarity.