Hreflang PrestaShop : balises, sitemaps et contrôles
PrestaShop

Hreflang PrestaShop : balises, sitemaps et contrôles

Ce que PrestaShop 9.2 produit pour hreflang (Classic, Hummingbird), ce que gsitemap met dans le sitemap, et comment corriger x-default et les traductions.

Mis à jour le 1er novembre 2026. Cet article décrit désormais le comportement réel de PrestaShop 9.2.0, des thèmes Classic 3.1.2 et Hummingbird 2.1.2 et du module gsitemap 5.0.0, vérifié dans leur code source.

Une boutique PrestaShop vendue dans plusieurs langues doit réunir trois éléments : des contenus réellement traduits, des balises hreflang cohérentes et des sitemaps complets. PrestaShop en fournit une partie nativement. Le reste dépend de votre configuration et de vos contrôles. Cet article part du code de PrestaShop 9.2 pour distinguer ce qui est automatique de ce qui reste à faire.

Ce que fait PrestaShop 9.2 pour hreflang

Le gabarit des thèmes

Dans les deux thèmes fournis, Classic et Hummingbird, le fichier templates/_partials/head.tpl contient le même bloc :

{block name='head_hreflang'}
  {foreach from=$urls.alternative_langs item=pageUrl key=code}
    <link rel="alternate" href="{$pageUrl}" hreflang="{$code}">
  {/foreach}
{/block}

La variable $urls.alternative_langs est remplie par la méthode getAlternativeLangsUrl() de classes/controller/FrontController.php. Son comportement est simple :

Le code de langue utilisé

La clé hreflang est le champ « Code de langue » de chaque langue (language_code dans la table ps_lang), et non le code ISO. Sur notre boutique de test PrestaShop 9.2, il vaut fr pour le français et es-es, it-it, de-de pour les autres langues. Google accepte les deux formes et ignore la casse. Vérifiez seulement que ce code correspond au marché visé : en-us sur une boutique destinée au Royaume-Uni envoie un signal incohérent. Le champ se modifie dans International > Localisation > Langues.

Ce que le thème ne fait pas

PointComportement natif 9.2Action
AutoréférenceOui, la langue courante est listéeAucune
RéciprocitéOui, même liste sur chaque versionAucune, sauf thème modifié
x-defaultNon produitSurcharger le bloc head_hreflang
Langue sans traductionListée quand mêmeDésactiver la langue ou traduire
Page en noindexBalises produites quand mêmeSans gravité, à garder cohérent
Thème tiersVariable selon l’éditeurContrôler le code source

Le point le plus fréquent est la langue activée trop tôt. PrestaShop copie le contenu existant dans chaque nouvelle langue. Une version espagnole peut donc afficher la description française, tout en étant déclarée es-es. Google indique que des versions dont le contenu principal n’est pas traduit sont traitées comme des doublons.

Ajouter x-default sans modifier le thème parent

x-default désigne la page proposée lorsqu’aucune langue ne correspond au visiteur. Le plus propre est de surcharger le bloc dans un thème enfant, dans templates/_partials/head.tpl :

{extends file='parent:_partials/head.tpl'}

{block name='head_hreflang'}
  {foreach from=$urls.alternative_langs item=pageUrl key=code}
    <link rel="alternate" href="{$pageUrl}" hreflang="{$code}">
  {/foreach}
  {if isset($urls.alternative_langs['fr'])}
    <link rel="alternate" href="{$urls.alternative_langs['fr']}" hreflang="x-default">
  {/if}
{/block}

Remplacez fr par le code de la langue choisie comme version par défaut. Testez sur une copie de la boutique, puis videz le cache Smarty. Un thème enfant préserve la modification lors des mises à jour du thème parent.

Ce que met le module gsitemap

Le module gsitemap 5.0.0, livré avec PrestaShop 9.2, génère les sitemaps depuis le back-office ou par une tâche cron. Son code montre l’organisation suivante :

Le module retient les produits actifs dont la visibilité n’est pas « nulle part » et les pages CMS actives marquées comme indexables. Il exclut les pages bloquées dans le robots.txt du cœur. Lorsque vous régénérez le robots.txt depuis le back-office, PrestaShop y ajoute une ligne Sitemap: vers le fichier d’index s’il existe.

Deux limites sont à connaître :

Les règles hreflang à respecter

Les règles de Google Search Central se résument ainsi :

Google détermine la langue d’une page à partir de son contenu visible. Il n’utilise ni hreflang ni l’attribut lang pour cela. Gardez donc une seule langue par page, navigation comprise.

Pas de redirection automatique par langue

Évitez de rediriger le visiteur selon son adresse IP ou la langue de son navigateur. Googlebot explore le plus souvent depuis les États-Unis, sans en-tête Accept-Language. Il risque alors de ne jamais voir certaines versions. Proposez un sélecteur de langue visible à la place. Dans PrestaShop, vérifiez aussi qu’aucun module de géolocalisation ne redirige les robots.

Structure des URL

PrestaShop place la langue dans un sous-répertoire (/fr/, /es/) lorsque plusieurs langues sont actives et que les URL simplifiées sont activées. Google range cette structure parmi les options simples à maintenir. Les paramètres d’URL (?id_lang=2) sont déconseillés.

Contrôler votre boutique en 5 étapes

  1. Ouvrez le code source d’une fiche produit, d’une catégorie et d’une page CMS. Recherchez hreflang et vérifiez la liste.
  2. Comparez les codes de langue avec vos marchés réels.
  3. Testez chaque URL alternative avec curl -sI : elle doit répondre 200, sans redirection.
  4. Ouvrez le fichier d’index de sitemap, vérifiez qu’il liste un fichier par langue, puis soumettez-le dans Search Console.
  5. Après quelques semaines, consultez le rapport « Indexation des pages » et filtrez le rapport Performances par pays.

Un crawl externe signale en une passe les balises manquantes et les liens non réciproques. La réciprocité se vérifie par une règle déterministe. Une IA peut aider à classer les anomalies, mais ses propositions restent à relire. Pour les questions de facettes et de canonical, voir notre article sur le SEO technique PrestaShop, et pour une vue d’ensemble, le guide avancé.

Traduire avec l’IA sans créer de doublons

Le flux le plus sûr part du contenu source, produit un brouillon avec un service de traduction ou un modèle de langage, puis confie la relecture à une personne qui connaît le marché. Une traduction mot à mot donne souvent des formulations que personne ne recherche. Vérifiez les mots-clés par langue et par pays. Pour la recherche d’intentions, voir SEO sémantique PrestaShop avec l’IA, et pour la méthode de rédaction, IA et SEO produit.

Pour écrire les traductions dans la boutique, deux voies existent : un module qui alimente les champs par langue, ou un export, une traduction relue, puis un import contrôlé. Avant d’installer un module, vérifiez sa maintenance, sa compatibilité avec PrestaShop 9 et la façon dont il transmet vos données à un service externe.

N’activez une langue qu’une fois les pages prioritaires traduites. Tant qu’elle est active, elle figure dans les balises et dans le sitemap.

Questions fréquentes

PrestaShop 9 génère-t-il les balises hreflang nativement ?

Oui, avec les thèmes Classic et Hummingbird, dès que deux langues sont actives. Chaque page liste toutes les langues actives, y compris elle-même. La balise x-default n’est pas produite. Un thème tiers peut se comporter autrement : contrôlez le code source.

Faut-il ajouter hreflang dans le sitemap de gsitemap ?

Non, si les balises HTML sont correctes. Google considère les méthodes comme équivalentes et n’apporte aucun bénéfice supplémentaire à leur cumul. Deux méthodes divergentes créent en revanche des incohérences.

Pourquoi Google affiche-t-il la mauvaise langue dans un pays ?

Causes fréquentes : contenu non traduit sur la version ciblée, code de langue inadapté au marché, redirection automatique ou absence de x-default. Commencez par vérifier que la page ciblée est réellement traduite et indexée.

Les champs priority du module gsitemap doivent-ils être réglés ?

Ce n’est pas utile pour Google, qui ignore priority et changefreq. Concentrez-vous sur l’exhaustivité du sitemap et sur l’exactitude de lastmod.

Sources

Agence web PrestaShop & WordPress

Agence web spécialisée PrestaShop et WordPress : création, maintenance, sécurité, performance et référencement. Nos tutoriels sont issus de nos interventions sur de vraies boutiques.

L'agence Genisoft → LinkedIn →