~/TechPurAI
~/tutorials/seo-complete-guide/header-tags-and-content-structure
beginner·part 3 of 22·3 min read

Header tags and content structure

Updated Aug 17, 2026SEO

Heading tags aren't a font-size shortcut — <h1> through <h6> describe a page's actual outline, the same way a table of contents describes a book's. Search engines parse that structure directly, and it's become even more load-bearing now that AI answer engines lift content straight out of it.

One H1, describing the page's actual subject

html
<h1>Making HTTP requests in Python without the footguns</h1>

A page should have exactly one <h1>, and it should describe what the page is about — not a generic site-wide phrase repeated everywhere. Multiple <h1> tags on one page don't directly cause a penalty, but they dilute the single clearest signal a search engine has for "this is what this specific page is."

H2-H6 as a real outline, not a style choice

html
<h1>Making HTTP requests in Python without the footguns</h1>
<h2>Installing it</h2>
<h2>A basic GET request</h2>
<h2>Query parameters, the right way</h2>
<h2>The default nobody expects: no timeout</h2>

This is the real heading structure from a live tutorial. Notice every <h2> is a specific, descriptive statement — "The default nobody expects: no timeout" — not a vague label like "Section 4." That specificity matters twice over: it tells a search engine exactly what that section covers without needing to read the paragraph beneath it, and it's independently readable as a standalone answer to someone scanning search results or an AI-generated summary.

Why this exact structure feeds AI-generated answers directly

json
{
  "@type": "HowTo",
  "step": [
    { "@type": "HowToStep", "name": "Installing it" },
    { "@type": "HowToStep", "name": "A basic GET request" },
    { "@type": "HowToStep", "name": "Query parameters, the right way" },
    { "@type": "HowToStep", "name": "The default nobody expects: no timeout" }
  ]
}

This is a real, live example: this exact site auto-generates a HowTo structured-data block (covered fully in part 11) directly from a page's own <h2> headings — every tutorial's heading structure becomes machine-readable step data automatically, with zero manual duplication. This is a direct, concrete instance of why heading discipline is genuinely part of AI SEO now (part 19 goes deeper): a well-structured heading outline isn't just readable to a person skimming, it's the literal source material several categories of tooling — from this site's own schema generation to an AI system summarizing a page — parse directly.

Skipping levels breaks the outline

html
<!-- Wrong: jumps from h2 straight to h4 -->
<h2>Setting up the project</h2>
<h4>Installing dependencies</h4>

<!-- Right: no skipped level -->
<h2>Setting up the project</h2>
<h3>Installing dependencies</h3>

Skipping from <h2> to <h4> with no <h3> in between doesn't just look inconsistent — it breaks the parent-child relationship the outline is supposed to express. A screen reader user navigating by heading level experiences this directly as a confusing jump; a search engine parsing the same structure loses the same signal about which content is a subsection of what.

Common mistake

Choosing a heading level by what font size looks right visually, rather than what the actual content hierarchy is. If an <h3> needs to look bigger for a specific layout, that's a CSS problem — solve it with CSS, not by mislabeling the semantic structure to get a visual result.

Next: the URL itself — often the very first thing both a searcher and a search engine sees about a page, before any content loads at all.

VK

Vijay Kumar

Founder of TechPurAI — writing hands-on tutorials and honest tool breakdowns.

LinkedIn ↗
← previous2. Title tags and meta descriptions that actually get clickednext →4. SEO-friendly URL structure