Contrôle hreflang

Contrôlez hreflang sur une seule URL ou sur un ensemble de pages : codes de langue et de région, autoréférencement, doublons, x-default, liens de retour, et alternatives qui redirigent, échouent ou portent un noindex.

Ce qu'elle fait

Sur l’ensemble des pages

Les liens de retour et leur confirmation exigent toutes les pages de l’ensemble, car ces contrôles comparent ce que la page A déclare sur la page B avec ce que la page B répond. Ils tournent sur les données d’un crawl, comme un export « All Hreflang » de Screaming Frog, et non sur une seule page. Ils vérifient aussi les cibles des alternatives : chacune répond-elle en 200, est-elle indexable, et est-elle sa propre canonical ?

  • Liens de retour manquants et paires non confirmées
  • Alternatives qui redirigent, renvoient une erreur 4xx ou 5xx, ou portent un noindex
  • Alternatives qui ne sont pas la version canonique de la page
  • Alternatives qu’aucun lien interne ne pointe

Une seule URL

hreflang-check récupère une seule page, suit les redirections et lit les liens d’alternative dans son HTML. Il valide chaque code de langue, de script et de région, repère les valeurs en double, et vérifie que la page se référence elle-même et qu’un x-default existe. Il ne demande pas les alternatives : c’est donc un premier regard rapide, avant de lancer un crawl complet.

  • Codes de langue, de script et de région contrôlés selon ISO 639-1, ISO 15924 et ISO 3166-1
  • Autoréférencement et valeurs en double
  • Présence de x-default
  • Une page en 4xx ou 5xx est signalée comme erreur, jamais comme résultat propre

Emplacement

Un lien hreflang ne compte que s’il est lu dans le head. Une analyse native compare la position de chaque lien d’alternative et signale ceux qui se retrouvent dans le body, souvent à cause d’une balise cassée juste au-dessus d’eux dans le head. Corriger cette balise corrige l’annotation.

  • Liens d’alternative situés hors du head : signalés
  • La casse est sans importance : en-us et en-US désignent la même valeur
  • Les erreurs courantes, comme en-UK, sont détectées

Trois étapes, un seul scan enregistré

  1. Contrôler une URL en direct

    hreflang-check récupère la page, suit les redirections et lit les liens d’alternative dans son HTML. Il contrôle les codes, l’autoréférencement, les doublons et x-default.

  2. Contrôler l’ensemble à partir d’un crawl

    Les liens de retour, les cibles en erreur ou en redirection, et les cibles en noindex exigent toutes les pages de l’ensemble. Ils tournent sur un export « All Hreflang » de Screaming Frog, via seohead sf run, et non sur une seule page.

  3. Corriger les paires et revérifier

    Chaque constat indique la page et l’alternative concernée. Corrigez l’annotation sur le site, puis relancez le contrôle.

Contrôles de cette fonctionnalité

ContrôleSignificationGravitéPreuve
HREFLANG_MISSING_RETURN_LINKUne autre page cite cette URL dans son hreflang, mais cette page ne renvoie pas le lienImportantPage source et alternative qui n’a pas le lien de retour (crawl)
HREFLANG_BROKEN_TARGETUne URL alternative répond par un statut 3xx, 4xx ou 5xxImportantURL cible et son code de statut (crawl)
HREFLANG_NOINDEX_TARGETUne URL alternative porte une directive noindexImportantURL cible et signal noindex (crawl)
HREFLANG_INVALID_CODEUne valeur de langue ou de région n’est pas un code ISO 639-1, ISO 15924 ou ISO 3166-1 valide, par exemple en-UKImportantLa valeur hreflang brute et la page qui la porte (URL unique : « code hreflang malformé »)
HREFLANG_MISSING_SELF_REFERENCELa page a des alternatives, mais aucune ne correspond à sa propre URLImportantL’URL de la page et sa liste d’alternatives (URL unique : « la page ne se référence pas elle-même »)
HREFLANG_MULTIPLE_ENTRIESLa même valeur de langue et de région apparaît plusieurs fois sur une même pageImportantLa valeur répétée et ses href (URL unique : « hreflang en double »)
HREFLANG_MISSING_XDEFAULTL’ensemble n’a pas de repli x-default pour les utilisateurs dont la langue ne correspond à aucune alternativeTipLa page et sa liste d’alternatives (URL unique : « aucune alternative x-default »)
Aussi dans le registre des contrôles
HREFLANG_ERRORHREFLANG_INCONSISTENT_CONFIRMATIONHREFLANG_NOT_CANONICALHREFLANG_UNLINKED_TARGETHREFLANG_OUTSIDE_HEAD

Une seule commande

bash
seohead hreflang-check --url https://example.com/en/

Commencez par installer : guide d'installation. Chaque commande fonctionne aussi comme outil MCP pour les agents IA.

Ce qu'il vous faut

  • Une URL de page pour hreflang-check
  • Un crawl ou un export Screaming Frog « All Hreflang » pour les contrôles portant sur tout l’ensemble des pages
  • Aucune clé API

Limites

  • La vérification d’une seule URL ne demande pas les alternatives : elle ne voit donc ni leurs codes HTTP, ni leur noindex, ni leurs liens de retour
  • Elle ne lit que les éléments link présents dans le HTML, et non hreflang dans les sitemaps ni dans les en-têtes HTTP Link
  • Les contrôles sur l’ensemble des pages sont documentés pour les exports hreflang de Screaming Frog ; l’analyse native ne conserve pas les données hreflang
  • Un code valide ne prouve pas que la page est rédigée dans cette langue

Questions

Le contrôle d’une seule URL teste-t-il chaque alternative ?
Non. Il lit les liens d’alternative propres à la page et contrôle leurs codes, leurs doublons, x-default et l’autoréférencement de la page. Il ne demande pas chaque alternative : les cibles en erreur, en redirection ou en noindex, ainsi que les liens de retour manquants, nécessitent un crawl.
Modifie-t-il quelque chose sur mon site ?
Non. Le contrôle envoie uniquement des requêtes GET en lecture seule. Rien n’est écrit sur le site.
Quels codes de langue sont valides ?
Un code de langue ISO 639-1, éventuellement suivi d’un script ISO 15924, puis d’une région ISO 3166-1 alpha-2 ou UN M.49. Les codes ne sont pas sensibles à la casse : en-us et en-US désignent la même valeur. en-UK est rejeté, car le code du pays est GB.
Lit-il hreflang dans les sitemaps ou les en-têtes HTTP ?
Le contrôle d’une seule URL ne lit que les éléments link de la réponse HTML. Un hreflang déclaré dans un sitemap ou dans un en-tête HTTP Link n’est pas lu par cette commande.
Que se passe-t-il si la page renvoie une erreur ?
Le contrôle indique le statut HTTP et précise qu’il n’y avait aucune annotation à vérifier. Une page en 4xx ou 5xx n’apparaît jamais comme résultat propre.
Un x-default manquant est-il une erreur ?
C’est le constat le moins grave. x-default sert de repli pour les utilisateurs dont la langue ne correspond à aucune alternative. C’est utile sans être obligatoire : le référentiel des contrôles le classe donc en simple notification, sous les problèmes qui cassent l’annotation.