Semantic HTML explained: what each structural tag means, how it helps screen readers, Google and AI assistants read your page, and the mistakes to fix first.

In short
semantic HTML means using tags that describe what content is (<header>, <nav>, <main>, <article>, <section>, <aside>, <footer>, ordered headings, <figure>, <time>, <table>) instead of generic <div> and <span> everywhere. It lets screen readers navigate by landmarks, helps Google identify the main content of a page, and makes it easier for AI assistants to extract a clean, self-contained passage. It costs nothing at build time and is hard to add later.
Want to go further? Ask
A browser displays a <div> and a <nav> the same way. The difference lies in meaning: semantic HTML tells every program reading the page what role each block plays. MDN defines it as using elements according to their meaning, not their default appearance. Search engines, assistive technologies and the crawlers that feed AI models all benefit from that meaning.
The HTML standard defines dozens of elements. These are the ones that structure almost every content page:
| Tag | Role | Typical use |
|---|---|---|
| <header> | Introductory content of the page or of a section | Logo, site name, title of an article with author and date |
| <nav> | Block of major navigation links | Main menu, breadcrumb, table of contents |
| <main> | Unique main content of the page (one visible per page) | Everything except header, menus, sidebars and footer |
| <article> | Self-contained content that makes sense on its own | Blog post, product card, comment, news item |
| <section> | Thematic group of content, normally with a heading | A chapter of a guide, a block of a landing page |
| <aside> | Content related to the main content but separate from it | Sidebar, related links, glossary box |
| <footer> | Closing information of the page or of a section | Legal links, contact, author note |
| <h1> to <h6> | Heading hierarchy | One <h1> for the page topic, <h2> for sections, <h3> for subsections |
| <figure> and <figcaption> | Illustration with its caption | Chart, photo, diagram with a caption |
| <time> | Date or time in a machine-readable form | Publication and update dates |
| <table>, <th>, <caption> | Tabular data with headers | Comparisons, prices, specifications |
Text-level tags also carry meaning: <strong> for importance, <em> for emphasis, <blockquote> and <cite> for quotations, <ul> and <ol> for lists, <a> for links and <button> for actions.
Screen readers build a map of the page from its tags. The landmarks <header>, <nav>, <main>, <aside> and <footer> let a user jump straight to the menu or the content, and the heading list works as a table of contents. The W3C accessibility tutorials on page structure recommend these regions and a logical heading order for that reason.
A clickable <div> is invisible to the keyboard and silent for a screen reader unless you rebuild by hand what a native <button> gives you for free. Native elements come with their role, keyboard focus and expected behavior. In many countries, accessibility of public and commercial websites is also a legal requirement, which makes clean markup a compliance matter as well.
Google has never presented semantic tags as a direct ranking factor, and a page in plain <div> can rank. The value is indirect but real:
Semantic HTML is part of technical SEO in the same way as clean URLs or fast pages: a foundation that lets your content be read correctly.
ChatGPT, Gemini, Perplexity and Google AI Overviews do not cite whole pages: they select passages. The crawlers that fetch your page usually strip navigation and boilerplate, then cut the text into chunks. A section that opens with a clear <h2>, answers its question in the first paragraph and stays within one <section> produces a clean chunk. The same content spread across nested <div>, with headings faked by bold text, produces fragments mixed with menu items. Our guide to content chunking explains how to write sections that survive this cut.
Here is the skeleton of a blog article, described tag by tag:
1. <header> contains the logo and a <nav> with the main menu. This block repeats on every page, so crawlers learn to ignore it.
2. <main> opens right after. It holds a single <article>, the content you want indexed and quoted.
3. Inside the <article>, a <header> groups the <h1> (the page topic), the author name and a <time datetime="2026-10-18"> element with the publication date in a machine-readable format.
4. Each part of the article is a <section> that starts with an <h2> phrased as the question it answers, followed by <p> paragraphs, <ul> lists or a <table> with <th> headers.
5. A chart goes in a <figure> with an <img> carrying a descriptive alt text and a <figcaption> that states what the chart shows.
6. Related links go in an <aside>, outside the main flow of the article.
7. A <footer> closes the page with legal and contact links.
With this skeleton, a screen reader user can jump to the content in one keystroke, Google sees one main article with a clear outline, and an AI crawler can lift any <section> as a standalone answer.
Three quick checks cover most issues. First, display the heading outline of the page and read it alone: it should tell the story of the content. Second, look for <main>, <nav> and <article> in the source code. Third, navigate the page with the keyboard only and see whether every link and button is reachable. Our on-page SEO audit lists heading and markup issues for any URL, and the free Sorank Chrome extension shows the heading structure of the page you are viewing.
Use each tag for what it means: one <main>, one <h1>, ordered sections and real tables give people, Google and AI the same clear map of your page. Once the structure is clean, the content still has to be written and published regularly: Sorank writes and publishes optimized articles for Google and AI on autopilot.
Google has not described semantic tags as a direct ranking factor, and pages built with generic div elements can rank. Semantic markup helps Google identify the main content and the outline of a page, which supports relevance. Its effect is indirect, through better understanding of the page.
The HTML standard does not forbid several h1 elements, and Google says it can handle them. Still, one h1 that states the topic of the page, followed by ordered h2 and h3 headings, is the clearest structure for users, screen readers and search engines.
An article is content that makes sense on its own and could be shared or syndicated separately, such as a blog post or a product card. A section is a thematic part of a larger whole, normally introduced by a heading. An article can contain sections, and a section can contain several articles.
THEY TRIED SORANK BEFORE YOU
