Headings are the outline a machine uses to split your page into passages, and well built headings make each passage self explanatory. The bottom line: use one H1, use an H2 for each question or main point, phrase headings the way a customer asks, put the answer directly beneath, and treat headings as a structure for extraction, not as a ranking trick, because no published study isolates their effect on AI citations.

Related: our guide to answer engine optimization defines the term and lists eight steps.

1 H1and at least 3 H2 sections is what our scan requires
44%of ChatGPT citations came from the first 30% of a page, per AirOps as summarized by Quattr
23 wordsaverage length of a ChatGPT prompt in Semrush's 2024 data
0published studies isolating the effect of headings alone on AI citations

Why headings matter to a machine

A retrieval system does not read a page top to bottom the way a person does. It splits pages into passages, scores them against the question, and passes a few to the model. Headings are the clearest boundary markers in the HTML. Research on how models read long inputs found that performance is highest when relevant information is at the beginning or end and drops when it sits in the middle, and AirOps found 44 percent of ChatGPT citations came from the first 30 percent of a page. A heading that names the question, followed by the answer, creates a passage that stands alone near the point where a system looks.

The rules

RuleWhy
One H1 per page, matching the page's subjectIt states the page's topic once and unambiguously
An H2 for each question or main pointEach becomes a separate, quotable passage
H3 only for sub points under an H2Keeps the hierarchy honest for machines and readers
Do not skip levelsAn H4 under an H2 breaks the outline
Describe, do not tease'Pricing for a 3 person team' is extractable. 'The part everyone gets wrong' is not
Phrase headings like customer questions where naturalChatGPT prompts average 23 words, so full questions echo how people ask
Put the answer in the first sentence after the headingAnswer first survives extraction

Before and after

Weak headingStronger heading
Our approachHow we replace a commercial rooftop HVAC unit in one day
Why choose usWhat a dental implant costs and what the price includes
Things to knowWhich permits a kitchen remodel in Orange County needs

Steps to audit a page

  1. List the headings only. Read them without the body. If the outline does not tell the story, rewrite them.
  2. Confirm there is exactly one H1. Themes and page builders often add a second.
  3. Convert vague headings to specific ones. Name the subject, the audience, or the question.
  4. Move the answer directly under each heading. Cut any warm up sentence that does not answer.
  5. Check the raw HTML. Headings inserted by JavaScript are not present for crawlers that do not run it.
  6. Re run your scan. Our headings check passes with exactly one H1 and at least three H2 sections.

What headings will not do

They will not make a weak page citable. Google says AI Overviews and AI Mode need no special optimization beyond being indexed and snippet eligible, and the fundamentals it lists include making important content available as text. Headings are part of clean structure. The substance beneath them decides whether a system uses the passage.

Questions people ask

How many H1s should a page have?

One. It states the page's subject. Our scan checks for exactly one H1 and at least three H2 sections.

Should headings be phrased as questions?

When the question is one customers actually ask, yes, because prompts are conversational and full questions echo them. Do not force every heading into a question.

Do headings improve AI citations?

No published study isolates their effect. They create clear passages, and research shows models use information near the start and end of their input best, so a heading followed by a direct answer is a sound structure.

Are headings added by JavaScript visible to AI crawlers?

Usually not. Vercel's analysis found the major AI crawlers do not run JavaScript, so headings must be in the raw HTML.

Sources