HTML sémantique

Comment les éléments HTML sémantiques aident les agents IA à comprendre la structure de votre contenu.

2025-02-15 · Updated 2026-02-23

L'HTML sémantique consiste à utiliser le bon élément HTML pour la bonne fonction. Au lieu de tout construire avec <div> et <span>, on utilise des éléments qui portent un sens : cela aide les agents IA, les moteurs de recherche et les lecteurs d'écran à comprendre la structure du contenu sans deviner.

Pourquoi la sémantique compte pour les agents

Les crawlers IA parsent votre HTML pour extraire :

  • Le type de contenu (article, produit, navigation…)
  • Le contenu principal vs sidebar / pied de page
  • L'organisation du contenu (titres, sections, listes)
  • Ce qui est important vs secondaire

Les éléments sémantiques fournissent ces informations directement, sans que l'IA ait à les inférer depuis des noms de classes CSS ou le positionnement visuel.

Éléments sémantiques essentiels

Structure du document

<header>   <!-- En-tête du site ou de section, logo, nav -->
<nav>      <!-- Liens de navigation -->
<main>     <!-- Contenu principal de la page (un seul par page) -->
<article>  <!-- Contenu auto-suffisant : article de blog, actualité -->
<section>  <!-- Regroupement thématique au sein d'une page -->
<aside>    <!-- Contenu secondaire : sidebar, liens connexes -->
<footer>   <!-- Pied de page du site ou de section -->

Un seul <main> par page — les agents IA utilisent <main> pour localiser le contenu principal et ignorer la navigation, les publicités et les sidebars.

Titres

<h1>Titre de la page (un seul par page)</h1>
<h2>Section principale</h2>
<h3>Sous-section</h3>
<h4>Sous-sous-section</h4>

Règles :

  • Exactement un <h1> par page — le titre de la page.
  • Ne jamais sauter de niveaux (ne pas passer de <h2> à <h4>).
  • Utiliser les titres pour la structure, pas pour le style visuel — utilisez CSS pour la taille.

Les agents IA utilisent les titres pour comprendre le plan du document et pour « chunker » le contenu lors du traitement de pages longues.

Listes

<!-- Liste non ordonnée : éléments sans séquence -->
<ul>
  <li>Premier point</li>
  <li>Deuxième point</li>
</ul>

<!-- Liste ordonnée : étapes ou éléments classés -->
<ol>
  <li>Installer le package</li>
  <li>Configurer les paramètres</li>
  <li>Déployer</li>
</ol>

<!-- Liste de définitions : termes et leurs définitions -->
<dl>
  <dt>GEO</dt>
  <dd>Generative Engine Optimization — la pratique d'optimisation pour les agents IA.</dd>
</dl>

<dl> (liste de définitions) est particulièrement utile pour la GEO — il balise explicitement des paires terme-définition que les agents IA peuvent extraire proprement.

Dates

<time datetime="2026-01-15">15 janvier 2026</time>
<time datetime="2026-01-15T09:00:00Z">9h00 UTC</time>

L'attribut datetime fournit une date lisible par les machines. Les agents IA l'utilisent pour comprendre la fraîcheur du contenu.

Sémantique inline

<strong>texte important</strong>         <!-- Importance forte -->
<em>texte mis en emphase</em>            <!-- Emphase -->
<abbr title="Generative Engine Optimization">GEO</abbr>  <!-- Abréviation avec expansion -->
<code>robots.txt</code>                  <!-- Code ou terme technique -->
<cite>Nom de l'auteur</cite>             <!-- Source de citation -->
<q cite="https://source.com">Citation</q> <!-- Citation inline -->

<abbr> avec un attribut title est particulièrement utile pour la GEO — il développe les acronymes que les agents IA pourraient rencontrer sans contexte.

Anti-patterns à éviter

<!-- Mauvais : div soup non sémantique -->
<div class="header">
  <div class="menu">...</div>
</div>
<div class="content">
  <div class="title">Titre de la page</div>
  <div class="body">...</div>
</div>

<!-- Bon : balisage sémantique -->
<header>
  <nav>...</nav>
</header>
<main>
  <article>
    <h1>Titre de la page</h1>
    <p>...</p>
  </article>
</main>

Checklist pratique

  • Un seul <h1> par page correspondant au <title>.
  • Les titres forment une hiérarchie logique (h1 → h2 → h3).
  • <main> encapsule le contenu principal.
  • <nav> est utilisé pour les blocs de navigation.
  • <article> encapsule les contenus auto-suffisants.
  • Les listes utilisent <ul>, <ol> ou <dl> — pas des balises <p>.
  • Les dates utilisent <time datetime="...">.
  • Les termes techniques sont encapsulés dans <code>.

L'HTML sémantique est la base de l'accessibilité et de la lisibilité par les agents. Voir DOM actionnable, Formulaires accessibles et la checklist.