Un client nous a signalé un problème étrange remonté par son consultant SEO externe : l’outil d’audit technique de son site remontait systématiquement une erreur de « balise title dupliquée », alors qu’à l’écran, dans l’onglet du navigateur, tout semblait parfaitement normal. Ce type de symptôme, invisible à l’œil nu mais bien réel dans le code source, revient régulièrement sur des thèmes classiques anciens auxquels on ajoute un plugin SEO moderne.
Le diagnostic a confirmé le problème en quelques minutes une fois qu’on a su où regarder : deux balises <title> distinctes apparaissaient dans le <head> du document HTML généré.
Symptôme : deux balises title dans le code source
Un affichage du code source de la page (raccourci habituel du navigateur, jamais visible dans les outils de développement seuls qui rendent le DOM déjà normalisé par le navigateur) révélait bien deux balises <title> consécutives : une générée par le plugin SEO installé récemment, une seconde héritée du thème classique, actif sur ce site depuis plusieurs années sans avoir jamais posé de problème visible auparavant.
Le navigateur ignore silencieusement la seconde balise title rencontrée et n’affiche que la première dans l’onglet, ce qui explique pourquoi le problème restait invisible à l’utilisateur final tout en étant bien réel pour les robots d’indexation, qui peuvent interpréter différemment la présence de balises dupliquées selon leur propre logique d’analyse.
Diagnostic : remonter à la source de la génération

La cause se trouvait dans le fichier header.php du thème, qui contenait encore un appel explicite à la fonction dépréciée wp_title() à l’intérieur d’une balise <title> codée en dur, une pratique courante avant l’introduction de la gestion automatique du titre par le cœur de WordPress via le support de thème title-tag :
<!-- Dans header.php, ancien code trouve -->
<title><?php wp_title( '|', true, 'right' ); ?></title>
Le plugin SEO, de son côté, générait sa propre balise title de manière autonome via le hook document_title_parts ou directement en sortie du <head>, en toute logique puisqu’il ne pouvait pas deviner que le thème gérait déjà cette balise à sa façon, à l’ancienne.
Vérifier si le support du thème est bien déclaré
La méthode moderne, recommandée depuis WordPress 4.1, consiste à déléguer entièrement la génération de la balise title au cœur via add_theme_support( 'title-tag' ) dans functions.php, sans jamais coder la balise en dur dans header.php. Sur ce thème ancien, cette déclaration était absente, ce qui expliquait le recours à l’ancien appel direct à wp_title().
- Vérifier la présence de
add_theme_support( 'title-tag' )dans lefunctions.phpdu thème actif. - Vérifier l’absence de toute balise
<title>codée en dur dansheader.php. - Vérifier que le plugin SEO génère bien sa balise via les hooks natifs prévus à cet effet, sans conflit avec un ancien mécanisme du thème.
Correctif appliqué
Le correctif a consisté à retirer la balise <title> codée en dur dans header.php, à ajouter add_theme_support( 'title-tag' ) dans functions.php, et à laisser le plugin SEO reprendre l’entière responsabilité de la génération du contenu de cette balise, configuré selon les modèles de titre définis par le client dans ses réglages.
// Dans functions.php du thème
function theme_client_supports() {
add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', 'theme_client_supports' );
Prévention : un point de contrôle systématique
Nous avons ajouté ce contrôle à notre checklist standard d’installation d’un plugin SEO sur un thème classique préexistant : vérifier systématiquement, avant activation du plugin, la présence du support title-tag et l’absence de génération manuelle de la balise title dans les fichiers du thème. Ce contrôle prend moins de deux minutes et évite un diagnostic bien plus long une fois le problème remonté par un audit externe, souvent des semaines après l’installation initiale.
Un problème invisible à l’écran n’est pas un problème inexistant. Le code source reste la seule vérité pour ce type de symptôme, jamais le rendu visuel dans le navigateur.
En résumé
Une balise title dupliquée entre thème et plugin SEO est un symptôme classique de cohabitation mal préparée entre un thème classique ancien et un outil moderne. Le diagnostic passe systématiquement par l’examen du code source, la cause se trouve presque toujours dans une génération manuelle héritée côté thème, et le correctif consiste à confier cette responsabilité à un seul acteur : idéalement le plugin SEO, via le support natif title-tag du cœur de WordPress.