Facettes PrestaShop : noindex, canonical ou blocage robots.txt ?

Niveau de lectureAvancé
CMS concernéPrestaShop 1.7 à 9
Temps de lecture8 min

noindex, canonical, blocage robots.txt : on les présente souvent comme trois options interchangeables pour « gérer les facettes ». Ce sont trois outils qui répondent à trois questions différentes, et les empiler sans méthode produit l’erreur la plus courante des boutiques PrestaShop : des URL coincées dans l’index, impossibles à en sortir. Voici ce que chaque mécanisme fait vraiment, dans quel ordre les appliquer, et une matrice de décision par cas.

Trois mécanismes, trois questions

Avant de choisir, il faut savoir ce que chacun dit à Google.

  • rel= »canonical » répond à « cette URL est-elle une variante d’une autre ? ». Elle désigne une page de référence. C’est un indice de regroupement, pas un ordre. Google peut le suivre ou l’ignorer, notamment quand le contenu de la page filtrée diffère nettement de la catégorie canonique.
  • meta robots noindex répond à « faut-il classer cette URL ? ». C’est une directive : correctement lue, elle sort la page de l’index. Mais Google doit pouvoir crawler la page pour voir la balise.
  • Disallow dans le robots.txt répond à « faut-il dépenser du budget de crawl ici ? ». Elle empêche l’exploration. Elle n’empêche pas l’indexation : une URL jamais crawlée mais connue de Google peut rester indexée, sans description, avec la mention « indexée malgré le blocage par le fichier robots.txt ».

La documentation Google est explicite : le canonical et le nofollow sont « généralement moins efficaces à long terme » que le robots.txt ou les fragments d’URL pour empêcher le crawl. Mais « empêcher le crawl » et « désindexer » ne sont pas le même objectif.

L’erreur qui bloque vos URL dans l’index

Le scénario se répète sur des centaines de boutiques. On veut « nettoyer les facettes », alors on fait les deux d’un coup : on ajoute Disallow: /*?q= dans le robots.txt et on active un noindex sur les pages filtrées.

Résultat : Google arrête immédiatement de crawler les URL ?q=. Il ne voit donc jamais le noindex que vous venez de poser. Les URL déjà indexées le restent, gelées, avec le libellé « indexée malgré le blocage par robots.txt » dans la Search Console. Vous avez rendu la désindexation impossible par la voie normale : pour la débloquer, il faudra retirer le Disallow, attendre que Google recrawle et lise le noindex, puis éventuellement remettre le blocage. Des semaines perdues.

À retenir

Un noindex n’est utile que sur une page que Google peut crawler. Dès qu’une URL est bloquée par le robots.txt, toute balise dans son code HTML devient invisible pour Google, noindex compris.

La séquence correcte pour désindexer

Pour faire sortir de l’index des facettes déjà indexées, l’ordre des opérations n’est pas négociable.

  1. Poser le noindex, laisser le crawl ouvertActivez la balise meta robots à noindex, follow sur les URL de facettes concernées. Ne touchez pas encore au robots.txt : Google doit pouvoir revenir lire ces pages.
  2. Attendre la désindexation constatéeSuivez le rapport Indexation des pages de la Search Console. Selon le volume et la fréquence de crawl, comptez plusieurs semaines pour que les URL passent de « indexées » à « exclues par la balise noindex ».
  3. Bloquer le crawl seulement ensuiteUne fois la désindexation confirmée sur l’essentiel du volume, ajoutez le Disallow dans le robots.txt pour couper définitivement la dépense de crawl. Le noindex peut rester, il ne gêne pas.
  4. Traiter les combinaisons vides à partLes URL de filtres sans résultat doivent renvoyer un code 404, pas un 200 en noindex. C’est la recommandation explicite de Google pour ces cas.

Pour des facettes non encore indexées et sans valeur SEO, l’inverse est acceptable : un Disallow préventif suffit à éviter qu’elles n’entrent dans l’index, sans passer par le noindex.

La matrice de décision par cas

Le bon mécanisme dépend de ce que l’URL est et de ce que vous voulez en faire.

Type d’URL Objectif Traitement
Facette à valeur SEO réelle (volume de recherche, engagement), déjà travaillée Indexer et positionner URL propre et stable, title et description dédiés, self-canonical, maillage interne assumé. Ni noindex ni Disallow.
Facette combinatoire, quasi-doublon de la catégorie, déjà indexée Sortir de l’index noindex, follow d’abord, Disallow ensuite une fois la désindexation constatée
Facette combinatoire non indexée, sans valeur Empêcher l’entrée dans l’index Disallow préventif dans le robots.txt suffit
URL de tri (order, orderby, orderway) Ne jamais indexer, économiser le crawl Disallow des paramètres de tri ; canonical vers la version non triée en complément
Pagination de catégorie (page=2 et suivantes) Laisser explorer, ne pas dupliquer Self-canonical sur chaque page paginée, liens rel next/prev implicites via le maillage. Pas de noindex, pas de Disallow.
Combinaison de filtres à zéro résultat Éviter le contenu fin Code HTTP 404

Cette matrice s’inscrit dans une stratégie SEO des facettes d’ensemble. Le canonical seul, vers la catégorie, n’apparaît nulle part comme solution de désindexation : il n’en est pas une. Il accompagne un autre traitement ou sert sur les pages qu’on garde. Le détail de la logique de tri est traité dans notre article sur la gestion des URL de tri sur PrestaShop, et la pagination dans celui sur la pagination des catégories.

Où agir dans PrestaShop

Concrètement, sur une boutique 1.7 ou 8 :

  • robots.txt : régénérable depuis Paramètres avancés, SEO et URL, mais toute règle personnalisée ajoutée à la main est écrasée à la régénération. Mieux vaut un override propre ou une règle serveur.
  • meta robots des facettes : le module natif ne pose pas de noindex sur les URL ?q= en 1.7 et 8.x. Il faut un override du contrôleur de recherche à facettes, un hook sur l’en-tête, ou passer par PrestaShop 9 où le coeur gère la condition.
  • canonical : PrestaShop pose un canonical sur les pages catégorie et produit, mais pas toujours de façon cohérente sur les variantes filtrées. À vérifier au crawler.

Savoir quelles facettes relèvent de quelle ligne de la matrice suppose un inventaire préalable : c’est l’objet d’un audit SEO de la boutique PrestaShop, et la méthode de crawl en deux passes est détaillée dans notre guide pour auditer les facettes au crawler. La question de fond, faut-il indexer certaines pages filtrées, se tranche sur des données d’usage, pas sur un principe.

Vérifier que ça a marché

Trois contrôles, à espacer de quelques semaines après la mise en oeuvre :

  • Search Console, rapport Indexation : le volume d’URL de facettes indexées doit baisser, et les motifs d’exclusion doivent afficher « exclue par la balise noindex », pas « indexée malgré le blocage ».
  • Test de l’URL en direct dans la Search Console sur un échantillon : la balise noindex est bien lue, la page est bien crawlable au moment du test.
  • Crawl de contrôle : plus de facettes combinatoires en index,follow, plus de combinaisons vides en 200.

En pratique

Le canonical regroupe, le noindex déclasse, le Disallow économise le crawl. On ne les empile pas au hasard : sur des facettes déjà indexées, noindex d’abord, blocage robots.txt seulement une fois la désindexation constatée, 404 pour les combinaisons vides, et self-canonical pour ce qu’on garde. Choisir la bonne ligne de la matrice pour chaque famille d’URL demande un inventaire au crawler et une lecture des données : je peux vous accompagner sur ce diagnostic, le détail est juste en dessous.

Peut-on mettre un noindex et un Disallow robots.txt sur les mêmes URL de facettes ?

Pas en même temps si les URL sont déjà indexées. Le Disallow empêche Google de crawler la page, donc de voir le noindex : les URL restent gelées dans l’index avec la mention « indexée malgré le blocage par robots.txt ». Il faut poser le noindex seul, attendre la désindexation, puis seulement ajouter le Disallow.

Le canonical vers la catégorie suffit-il pour les facettes ?

Non. Google traite le canonical comme un indice, pas comme une directive, et l’ignore souvent quand le contenu de la page filtrée diffère nettement de la catégorie. Le canonical accompagne un autre traitement ou sert sur les facettes qu’on choisit de garder, il ne désindexe pas.

Combien de temps pour désindexer des facettes avec un noindex ?

Plusieurs semaines en général, selon le volume d’URL et la fréquence de crawl de la boutique. Le suivi se fait dans le rapport Indexation des pages de la Search Console, en attendant que les URL passent de « indexées » à « exclues par la balise noindex ».

Le module ps_facetedsearch gère-t-il ça tout seul ?

Pas sur PrestaShop 1.7 et 8.x : les URL de type ?q= n’ont pas de noindex par défaut. La gestion dans le coeur est arrivée avec PrestaShop 9. Sur une version antérieure, il faut un override du contrôleur, un hook sur l’en-tête ou une règle serveur.

Que faire des URL de tri comme order ou orderby ?

Elles ne doivent jamais être indexées. Un Disallow des paramètres de tri dans le robots.txt coupe le crawl, complété par un canonical vers la version non triée. Contrairement aux facettes à valeur, il n’y a jamais de raison d’indexer une page de tri.

Faut-il un noindex sur la pagination des catégories ?

Non. Les pages paginées doivent rester explorables, avec un self-canonical sur chacune. Un noindex sur page=2 et suivantes prive Google de chemins de découverte vers les produits situés en profondeur de catalogue.

À propos de l’auteur

Aymeric Maingé

Consultant SEO senior avec plus de 10 ans d’expérience, côté agence et annonceur. J’accompagne des boutiques PrestaShop sur l’indexation, la navigation à facettes, la gestion du budget de crawl et la structure du catalogue, du diagnostic au déploiement des correctifs. Mon approche croise audit au crawler, priorisation métier et recommandations actionnables pour les équipes e-commerce et techniques. Pour arbitrer le traitement de vos facettes avec un consultant SEO e-commerce sur PrestaShop, parlons de votre boutique.

À lire aussi

Les autres articles sur le sujet

Aymeric Maingé consultant SEO freelance