Balises H1 WordPress : résoudre les problèmes de hiérarchie des titres

Publié le | Par Siteskyline
14 min de lecture

Vous avez passé des heures à créer la page WordPress parfaite. Le contenu est solide. Les mots-clés sont placés. Votre extension SEO affiche une coche verte.

But open your browser’s developer tools and inspect the heading structure, and you’ll see something that can quietly kill your organic traffic: a broken heading hierarchy. Two H1s. A site title wrapped in `<h1>`. Sections jumping from H2 straight to H4. Or worse — no H1 at all.

This isn’t a erreur de débutant. It’s a problème structurel baked into how WordPress, themes, page builders, and the Gutenberg editor interact — and most site owners never know it’s happening.

This guide exists to fix that. Whether you’re a WordPress site owner managing your own content, or an agency building sites for dozens of clients, you’ll leave here knowing exactly how to auditer, diagnostiquer et résoudre définitivement le problème de l'ordre des titres dans WordPress.


Qu'est-ce qu'une balise H1 et pourquoi est-ce important dans WordPress ?

An H1 tag (<h1>) is the top-level HTML heading element. In semantic HTML, it signals to browsers, search engines, and assistive technologies: “This is the primary topic of this page.”

Considérez les balises de titre comme un plan de document :

H1 – Main page title (only one per page)
 ├── H2 – First major section
 │    ├── H3 – Subsection
 │    └── H3 – Another subsection
 ├── H2 – Second major section
 │    ├── H3 – Subsection
 │    │    └── H4 – Detail within subsection
 └── H2 – Third major section

Skip a level — jumping from H2 to H4 — and you break the outline. Use two H1s and you create structural ambiguity. Use H3 tags for visual styling and you introduce ghost headings that confuse crawlers.

In WordPress specifically, this gets complicated fast. Unlike a static HTML page where you write every tag manually, WordPress generates heading markup from at least four different sources simultaneously: the theme’s header template, the post title, the editor content, and any widgets or page builder modules you’ve added.

Ce que Google dit réellement sur les balises H1

Let’s settle the débat sur le classement dès maintenant.

In July 2026, Google’s Gary Illyes addressed this directly during the SEO Office Hours podcast: arranging headings in semantic order is genuinely helpful for accessibility (especially screen reader users), but it doesn’t significantly impact Google’s ranking algorithms. John Mueller has also stated that multiple H1 tags on a page don’t confuse crawlers and have zero direct SEO impact.

Alors, est-ce que tout cela a de l'importance ?

Yes — but not for the reason most SEO guides say.

Les vraies raisons de se soucier de la structure des titres dans WordPress sont :

  1. Conformité à l'accessibilité — WCAG 2.1 success criterion 1.3.1 requires information and relationships to be programmatically determinable. Broken heading hierarchies fail this.
  2. Explorabilité et signaux de contenu — While Google can parse messy markup, a clean H1 gives the clearest possible signal about page topic, which matters in ambiguous cases.
  3. Expérience utilisateur et temps de visite — Readers scan headings. A logical hierarchy helps them navigate and stay longer — both indirect ranking signals.
  4. Propreté de l'audit technique — For agencies, heading issues surface in every audit tool (Screaming Frog, Ahrefs, SEMrush, Rank Math, Yoast). Client-facing reports look bad even if the direct ranking impact is debated.

Comment WordPress génère les balises de titre : Les quatre sources de conflit

Comprendre pourquoi la structure des titres WordPress est rompue nécessite de comprendre les quatre endroits d'où ils sont générés.

Source 1: The Theme’s Header Template

Most WordPress themes output the site title in the header area. Older and poorly coded themes wrap this in an <h1> tag — on every single page. This means every page on your site starts with the same H1: your brand name.

Ensuite, lorsque le titre de la page ou de l'article s'affiche (ce qui devrait être le H1), il devient soit un second H1, soit est rétrogradé en H2.

Here’s what this looks like in a broken theme’s header.php:

php

// Broken — site title as H1 on every page
<h1><?php bloginfo('name'); ?></h1>
<h2><?php the_title(); ?></h2>  // Post title wrongly demoted

d'un thème défectueux. À quoi cela devrait ressembler :

php

// Correct — site title is a link or span, post title is H1
<p class="site-title"><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a></p>
<h1><?php the_title(); ?></h1>

This is one of the most common WordPress H1 issues and it’s entirely invisible unless you inspect the page source. You can have an SEO plugin, a green readability score, and un contenu parfait — and still be outputting duplicate H1s on every page.

Source 2 : L'éditeur de blocs Gutenberg

The WordPress block editor introduced deliberate changes to H1 behavior. By default, Gutenberg de-emphasizes the H1 option in the Heading block — the assumption is that the post title is already rendering as H1, so content-area headings should start at H2.

En pratique, cela crée deux problèmes :

Problème A : Certains thèmes ne pas output the post title as H1. If your theme renders the title in a <div> or <h2> for stylistic reasons, and Gutenberg has hidden H1 from the heading block options, you end up with zero H1 tags on the page.

This is exactly the situation flagged in a long-running GitHub issue in the Gutenberg repository — users requesting the ability to remove the H1 option entirely for enterprise and agency setups where the H1 is controlled at the template level. The issue highlights real confusion: the editor’s default behavior and the theme’s template need to be explicitly coordinated, but WordPress provides no automated check for this.

Problème B : Content editors can still select H1 in the block editor by changing the heading level. If your theme already outputs the post title as H1, an editor adding another H1 block inside the content area creates a duplicate — and no warning appears.

Source 3 : Constructeurs de pages (Elementor, Divi, Beaver Builder)

Les constructeurs de pages sont la plus grande source de chaos dans la hiérarchie des titres sous WordPress.

Here’s why: page builders give you granular visual control. You can drag a text element anywhere, style it any way, and assign any heading level. This is powerful for design. It’s disastrous for structure.

Le problème de titre typique avec un constructeur de page ressemble à ceci :

  • Section Hero : H1 (correct) ✓
  • Feature section title: H3 (skipped H2, chosen because it “looks better”) ✗
  • Titre de la zone de widget : H2 (ressemble à un titre de section, mais n'est qu'un titre de widget de barre latérale) ✗
  • Titre de témoignage : H4 (pas de H3 au-dessus) ✗
  • Titre CTA : H2 (retour à un niveau supérieur, maintenant le plan est complètement non linéaire) ✗

The result is a heading structure that’s visually coherent but semantically meaningless. Screen readers and crawlers parsing this get a content outline that jumps around like a broken table of contents.

InspectWP’s documentation identifies this pattern explicitly: authors and page builder users choose heading levels based on how they apparence rather than their logical meaning — if H3 is the right visual size, they select H3, even with no H2 above it.

Source 4 : Widgets et composants de thème

WordPress widget areas — sidebars, footers, header modules — often output their own headings. A “Recent Posts” widget might render as H2. A promotional banner built into the theme might use H3. None of these are part of the content outline, but they appear in the page’s heading structure.

This creates heading “noise” that inflates the apparent complexity of the outline and can push content headings out of their correct hierarchical position.


Les 5 problèmes les plus courants de hiérarchie H1 et d'en-têtes dans WordPress

Problème 1 : Le titre du site est enveloppé dans un H1 sur chaque page

À quoi cela ressemble : Every page on your site has two H1s — your site name and your post title.

Qui est concerné : Sites using older themes, poorly built premium themes, or any theme where the developer used <h1> for the site branding.

Comment le détecter : Right-click any page → Inspect → search for <h1 in the Elements panel. If you see your site name wrapped in H1 in the <header> section, you have this problem.

Comment le corriger :

Option 1 : Modification du thème enfant (approche développeur) In your child theme’s header.php, find the site title output and change it from <h1> to <p> or <span> with appropriate classes:

php

<p class="site-title">
  <a href="<?php echo esc_url(home_url('/')); ?>" rel="home">
    <?php bloginfo('name'); ?>
  </a>
</p>

Option 2 : CSS + aria-label (solution sans code) If you can’t edit theme files, use CSS to reset the H1 styling on the site title:

css

.site-header h1.site-title {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

Remarque : cela masque le problème visuel H1 problem but doesn’t fix the structural issue. The H1 tag remains in the markup.

Option 3 : Passer à un thème bien structuré Themes following WordPress coding standards (Twenty Twenty-Four, Kadence, GeneratePress, Astra) handle this correctly out of the box. If your current theme has this issue and you’re not a developer, switching is often the most reliable fix.


Problème 2 : Absence de H1 sur la page d'accueil

À quoi cela ressemble : Your homepage has zero H1 tags. SEO plugins report “No H1 found.”

Qui est concerné : Sites that use a logo image for branding (hiding the site title), sites using a static front page with no title visible, or sites where the theme’s homepage template doesn’t call the_title().

This is a real and recurring issue in the WordPress support forums. The cause is typically this sequence: the site title is set to display in the header, but the user hides it (or replaces it with a logo), removing the only H1 from the page. Since the homepage often doesn’t have a “post title” in the way a blog post does, there’s no automatic H1 generated.

Comment le corriger :

Pour la page d'accueil spécifiquement : Ajoutez un H1 à votre section hero ou à votre modèle de page. Cela peut être :

  • A visible heading (“Your Business Name | Service Category”) that also functions as the H1
  • Un H1 visuellement masqué ajouté via CSS (position: absolute; clip: rect(0 0 0 0);) qui fournit le marqueur sémantique sans perturber la conception visuelle

Dans Gutenberg : Ajoutez un bloc En-tête en haut du contenu de votre page d'accueil, réglez-le sur H1 et intégrez-le à votre message principal.


Problème 3 : Niveaux d'en-tête sautés dans le contenu

À quoi cela ressemble : La structure du contenu passe directement de H2 à H4, ou de H1 directement à H3.

Qui est concerné : Toute personne rédigeant du contenu long qui utilise les en-têtes pour le style visuel plutôt que pour la structure sémantique.

Pourquoi est-ce important : As InspectWP notes, skipping heading levels happens when authors choose levels based on appearance — the H3 looks right, so they use H3, regardless of whether an H2 precedes it.

Comment le détecter dans Gutenberg : Cliquez sur l'icône d'information (ⓘ) dans la barre d'outils supérieure de l'éditeur de blocs. Le panneau Plan du document affiche chaque en-tête dans l'ordre et signale les niveaux sautés avec un avertissement.

Comment le corriger :

  1. Auditez votre structure d'en-tête en utilisant le Plan du document avant de publier
  2. Set a content style guide for your team: H2 for major sections, H3 for subsections, H4 for sub-subsections — never skip levels
  3. Use Yoast SEO or Rank Math’s content analysis — both flag heading structure issues

Problème 4 : Plusieurs balises H1 provenant des constructeurs de pages

À quoi cela ressemble : A page built with Elementor or Divi has three or four H1 tags because each major section has its own hero-style “H1” headline.

Comment le corriger :

In Elementor: Edit each heading widget → check the HTML Tag setting → set only the primary page title to H1, and change all others to H2 or H3 as appropriate.

In Divi: Edit heading modules → under Advanced → HTML Tag → change to the correct semantic level.

In Beaver Builder: Each heading module has a “Heading Tag” setting in the Style tab. Audit each one.


Problème 5 : Le problème de visibilité du H1 dans Gutenberg

À quoi cela ressemble : Your theme doesn’t output the post title as H1, and Gutenberg has hidden the H1 option in the Heading block. Your pages have no H1.

Comment le corriger :

For developers managing a site where the H1 must be placed inside the content area, you can restore the H1 option using a filter in your theme’s functions.php:

php

// Allow H1 in the Heading block
add_filter( 'allowed_block_types_all', function( $allowed_blocks ) {
    return $allowed_blocks;
});

Alternatively, switch to the “Edit as HTML” view for the Heading block and manually set <h1> in the markup.

Pour les configurations d'agence où vous souhaitez empêcher les éditeurs d'ajouter des H1 (car le modèle les contrôle), utilisez le block_editor_settings_all filtre pour restreindre les niveaux de titre dans l'éditeur.


Comment auditer la structure des titres de votre site WordPress (étape par étape)

Méthode 1 : Plugin gratuit SkySEOManager

Utilisez le plugin SkySEOManager et son analyseur SEO intégré pour trouver tous les problèmes liés aux titres.

Lisez notre guide complet : comment auditer votre site WordPress en utilisant SkySEOManager pour tous les problèmes de référencement

Méthode 2 : Utilisez l'analyseur SEO gratuit de Siteskyline

Visitez notre analyseur SEO gratuit et entrez votre URL, puis cliquez sur analyser maintenant.

It’ll Show you all issue with your headline tags.

headline broken structure

Hiérarchie H1 WordPress : La liste de contrôle pour les agences

If you’re building or maintaining WordPress sites for clients, heading structure needs to be part of your pre-launch and ongoing audit process. Here’s a repeatable checklist:

Au niveau du thème :

  • Site title in header is NOT wrapped in <h1> (use <p>, <span>, or <div>)
  • Post/page title renders as <h1> in <article> or <main> on all post types
  • Homepage has exactly one <h1> — either from the site title or the hero section
  • Archive pages (category, tag, author) have a descriptive <h1>
  • 404 page has an <h1>

Au niveau du contenu :

  • Each page has exactly one <h1> in the content area (or zero if the theme handles it via the title)
  • Major sections use <h2>
  • Subsections use <h3> nested within <h2> sections
  • Aucun niveau de titre n'est ignoré
  • Les titres ne sont pas utilisés uniquement pour le style visuel

Au niveau du plugin/constructeur :

  • Les éléments de titre Elementor/Divi/Beaver Builder ont des paramètres de balise HTML corrects
  • Widget areas don’t output accidental H1 or H2 tags
  • Les avertissements H1 du plugin SEO sont résolus sur toutes les pages clés

The Correct WordPress Heading Hierarchy — By Page Type

One pattern doesn’t fit every WordPress page type. Here’s the correct structure for each:

Article de blog / Page d'article unique

H1: Post Title (output by theme automatically)
  H2: First major section
    H3: Subsection
    H3: Another subsection
  H2: Second major section
    H3: Subsection
      H4: Detail
  H2: Third major section

Page d'accueil (page d'accueil statique)

H1: Primary value proposition or page headline
  H2: Service category or feature group
    H3: Individual service or feature
  H2: Testimonials or social proof section
  H2: Call to action section

Page produit WooCommerce

H1: Product name (output by WooCommerce template)
  H2: Product description heading
  H2: Reviews
  H2: Related products

Page de catégorie / Page d'archives

H1: Category name (e.g., "WordPress SEO Articles")
  H2: Post title within loop (if posts are displayed with headings)

Erreurs courantes qui cassent la structure H1 de WordPress

Erreur 1 : Utiliser des balises de titre pour styliser le texte If you want large bold text that isn’t a section heading, don’t use H2. Add a CSS class to a <p> or <div> and style it visually. Using heading tags for aesthetics pollutes your structural outline.

Erreur 2 : Laisser les éditeurs choisir les niveaux de titre à vue d'œil Sans guide de style de contenu, les éditeurs graviteront naturellement vers des niveaux de titre qui apparence right. A brief internal guide — “H2 for sections, H3 for subsections, never use H1 in content” — prevents most issues.

Erreur 3 : Installer un thème WordPress sans vérifier la structure des titres Tous les thèmes WordPress premium ne produisent pas un balisage de titre correct. Avant de vous engager sur un thème, inspectez un article de démonstration : le titre de l'article s'affiche-t-il en H1 ? Le titre du site évite-t-il d'être H1 sur les pages internes ?

Erreur 4 : Supposer que votre plugin SEO couvre tout Yoast and Rank Math check the post you’re editing. They don’t catch heading issues introduced by your theme’s header template, footer widgets, or archive page templates. A manual audit or Screaming Frog crawl is still necessary.

Erreur 5 : Corriger l'apparence visuelle au lieu de la structure HTML The most common “fix” for the site title H1 problem is adding CSS to make it look smaller. That hides the problem visually but leaves the broken markup in place. Fix the HTML tag, not just the style.

Partager cette publication

Siteskyline

Siteskyline

Siteskyline is a premium WordPress plugin and SEO management platform dedicated to providing the best speed, security, and optimization tools.