GEO / Technical · 06 min read · Updated Sep 2026
Semantic HTML for AI crawlers: a document, not a pile of divs
Models read the document you send. Semantic HTML gives that document headings, lists, tables, and a main region instead of a flat string of divs.
Ship a real document: headings, text, lists, and links in an order that matches the argument.
Use the elements that carry meaning
One main element, headings in order, lists for lists, and tables for comparisons. These are not decorations. They mark the structure a parser can follow without guessing.
Buttons that navigate, with no href, look like controls and not like links. If a crawler should follow it, it should be an anchor.
Keep the text in the document order
CSS can rearrange a layout. The HTML order should still match the argument: title, answer, sections, next links. A footer dumped before the article in the source confuses extraction.
Do not encode the answer in a background image or a canvas. If the words matter, they belong as text.
- Headings in real heading tags.
- Links as anchors.
- Comparisons as tables or lists, not pictures.
Check the DOM you ship
View source on a prerendered or server-rendered route. The outline should be obvious with the stylesheet disabled. If it is not, the design system is hiding the document.
Accessibility reviews catch the same bugs. A page that works with a screen reader is usually a page a text crawler can quote.
Questions
Does semantic HTML improve AI citations?
It makes the page easier to parse and quote accurately. It is not a boost on its own. A clear structure around a vague claim still cites a vague claim.
Are ARIA labels a substitute for headings?
No. ARIA can help assistive tech, but visible headings and real text are what both people and crawlers rely on.
Continue reading
- Multi-source corroboration: the same fact in more than one serious place
- Citation anchors: give people a stable way to refer to a page
- GEO basics: make your expertise easier for AI to cite
This note is part of the Hong Kong field library from My Search / Visibility, built with Itehk.