My Search / Visibility

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

This note is part of the Hong Kong field library from My Search / Visibility, built with Itehk.