Recherche produits PrestaShop : filtres à facettes et pages SEO

Les filtres d'une boutique PrestaShop se règlent moteur par moteur, avec des prix indexés par groupe de clients et des listes filtrées qui restent hors de l'index. Étapes, cas concrets et limites.

Recherche produits PrestaShop : filtres à facettes et pages SEO

Un client tape « tshrt » et ne trouve rien. Un autre coche « Taille M » et voit des produits dont cette taille est épuisée. Un troisième quitte la catégorie parce que le filtre de prix ne correspond pas au prix de la fiche produit. Ces trois cas viennent souvent de filtres branchés sur un index qui ne suit ni les prix réels ni les mots des clients. Advanced Search Pro remplace la recherche à facettes de PrestaShop par des moteurs de filtres configurables. Voici comment le régler, ce qu'il change en boutique et les cas où il ne convient pas.

Comment afficher des filtres sur la page de résultats de recherche ?

Créez un moteur de filtres, puis cochez « Page de résultats de recherche » dans « Où afficher » : les résultats reçoivent les filtres du moteur.

Un moteur est un bloc de filtres autonome, avec ses groupes, son emplacement et ses pages. Ouvrez Advanced Search Pro > Moteurs de filtres. « Importer les modèles » reprend les modèles de la recherche à facettes de PrestaShop ; « Créer le moteur recommandé » propose catégories, prix, attributs, caractéristiques, marques, disponibilité et promotions.

  1. Ouvrez le moteur et dépliez « Où afficher ».
  2. Choisissez « Toutes les pages » ou « Pages choisies », puis cochez « Page de résultats de recherche ».
  3. Choisissez « Colonne de gauche », « Colonne de droite » ou « Pleine largeur, au-dessus du contenu », puis enregistrez.
  4. Vérifiez que le moteur est actif, puis ouvrez Indexation et santé : si le panneau signale que la recherche à facettes est active, cliquez sur « Désactiver la recherche à facettes ».

Sur une page de résultats, les filtres portent sur les produits de la recherche en cours : taper « robe » puis choisir une couleur ne mélange pas les autres produits du catalogue. La recherche guidée de la page d'accueil suit une autre règle : elle filtre une catégorie fixe ou le catalogue entier, puis ouvre sa page de résultats. La fiche du module résume les emplacements, et la documentation détaille chaque réglage d'un moteur.

Pourquoi le filtre de prix ne correspond-il pas au prix affiché ?

Parce que le filtre lit un index de prix calculé par groupe de clients : une remise de groupe posée sur une catégorie y est comptée pour chaque produit de la catégorie, comme sur la fiche produit.

Le filtre ne relit pas la fiche à chaque clic. Il lit un index qui contient le prix vu par le client : promotions avec leurs dates, remises de groupe, taxes et devise du visiteur. Ajouter, modifier ou supprimer une remise de groupe remet les prix concernés à jour.

Un groupe de clients créé après l'installation n'a pas encore ses prix dans cet index. Le module déclenche alors une reconstruction des prix. La page Indexation et santé liste les groupes concernés avec le message « Les prix ne sont pas encore indexés pour ces groupes de clients » et le bouton « Reconstruire l'index ». La tâche planifiée termine le travail si vous ne cliquez pas. Pendant la reconstruction, les listes restent disponibles.

Indexation et santé signale les groupes de clients dont les prix ne sont pas encore indexés et propose « Reconstruire l'index ».
Indexation et santé signale les groupes de clients dont les prix ne sont pas encore indexés et propose « Reconstruire l'index ».

Comment retrouver un produit quand le client tape « tshrt » ?

Le module suit la recherche approximative de PrestaShop, active par défaut : « tshrt » retrouve le t-shirt. Il garde aussi tous les produits qui contiennent tous les mots tapés, sans plafond par mot.

La recherche approximative se règle dans PrestaShop, pas dans le module. Quand elle est active, un mot sans correspondance est remplacé par le mot le plus proche du catalogue. PrestaShop limite le nombre de remplacements par recherche : quatre par défaut, donc cinq mots au plus. Le module suit cette limite. Un mot qui ne correspond à rien après remplacement est ignoré, exactement comme dans la recherche native, et la recherche ne renvoie rien s'il ne reste aucun mot.

Un mot très fréquent, présent dans plus de 5 000 produits, ne coupe pas la liste. La recherche conserve les produits qui contiennent tous les mots tapés, les classe par pertinence, puis par identifiant quand deux produits se ressemblent. Les caractères spéciaux sont neutralisés avant la requête : un nom comme « L'Oréal & Co » ne casse pas la recherche.

Comment empêcher les pages filtrées de créer du contenu dupliqué ?

Les listes filtrées sans page SEO reçoivent « noindex, follow », un réglage actif par défaut ; une sélection qui correspond à une page SEO reçoit aussi ce « noindex » et un seul canonical.

Le réglage « Listes filtrées non indexées » se trouve dans Réglages. Il laisse hors de l'index les combinaisons que vos visiteurs construisent au clic, pour que les moteurs de recherche indexent vos catégories et vos pages SEO plutôt que des variantes sans fin.

Une page SEO est une catégorie avec des filtres présélectionnés, par exemple « T-shirts blancs » dans Vêtements. Dans Pages SEO, choisissez la catégorie, cochez les valeurs qui définissent la page, puis rédigez dans chaque langue le titre, l'adresse, la méta-description et le texte d'introduction. Seules les valeurs qui ont des produits dans la catégorie sont proposées. La page entre dans le sitemap quand le module Google sitemap de PrestaShop est actif, et ce sitemap ne reprend que les pages SEO des catégories de la boutique. La page SEO et la page de résultats du module gardent leurs propres balises robots et canonical.

Comment garder le focus clavier dans les filtres ?

Après le bouton « OK » du prix, la suppression d'un filtre actif ou « Tout effacer », le focus revient dans le bloc de filtres : bouton du même prix, pastille suivante ou titre du bloc.

Sans ce retour, une personne qui navigue au clavier doit retraverser l'en-tête et le menu pour chaque filtre retiré. Le module replace le focus au bon endroit et le déplace sans faire défiler la page. Le nombre de produits trouvés est annoncé aux lecteurs d'écran.

Le panneau mobile se ferme avec le bouton de fermeture ou la touche Échap ; le seuil mobile est réglable, 768 px par défaut. Pour vérifier votre configuration, ouvrez une page catégorie et utilisez uniquement Tab, Entrée et Échap : chaque valeur doit être atteignable, et le retrait d'une pastille doit laisser le focus dans le bloc. Pour un audit complet du parcours, l'audit EAA et WCAG reprend ce type de contrôle page par page.

Que faire quand un gros catalogue ralentit la recherche ?

Les compteurs viennent d'un index dédié, pas d'un balayage du catalogue à chaque clic : réglez « Produits par étape d'indexation », gardez la tâche planifiée active et laissez la reconstruction reprendre après une erreur.

Deux réglages limitent la charge. Le cache des compteurs de filtres conserve les filtres des pages sans sélection et, quand le cache de PrestaShop est actif, toutes les sélections. « Produits par étape d'indexation » découpe la reconstruction en lots, avec une barre de progression, sans vider les résultats pendant l'opération.

La tâche planifiée indiquée dans Indexation et santé traite les produits en attente, termine une reconstruction commencée et rafraîchit les promotions qui commencent ou se terminent ; programmez-la toutes les quinze minutes. Une reconstruction interrompue par une erreur reprend à l'étape suivante, au passage de la tâche ou au clic suivant. Le panneau signale aussi les produits modifiés en attente et permet de les indexer tout de suite.

Pour qui ce module est-il fait, et pour qui non ?

Il est fait pour une boutique qui vend des produits à variantes dans plusieurs familles, et qui veut des filtres rapides avec des pages de filtres indexables. Il s'appuie sur l'index de recherche de PrestaShop et sur ses propres tables, pas sur un moteur de recherche externe.

Un catalogue de vêtements illustre le cas courant : tailles, couleurs, matières, marques et promotions sur les mêmes listes. Un moteur général filtre toutes les pages ; un moteur dédié à une catégorie ajoute les bonnes caractéristiques. L'option « Uniquement les déclinaisons en stock » évite qu'une taille M épuisée apparaisse, et une page SEO « T-shirts blancs » donne à cette combinaison sa propre adresse, sans indexer les autres.

Les limites à connaître :

  • Votre thème doit utiliser la liste de produits standard de PrestaShop, comme Classic ou Hummingbird. Le panneau de santé signale un thème qui ne semble pas l'utiliser.
  • Désactivez la recherche à facettes de PrestaShop : deux modules de filtres sur les mêmes listes se gênent.
  • Il n'y a pas de redirection 301 vers une page SEO : la sélection correspondante reçoit un canonical, pas une redirection.
  • Les bornes du curseur de prix sont des nombres entiers ; le module ne filtre pas au centime.
  • Il faut une licence valide. Sans licence, le module se désactive : les filtres, la recherche guidée et les pages SEO ne sont plus affichés, et l'index cesse d'être mis à jour. Les pages SEO et la page de résultats répondent « page introuvable », mais vos moteurs, filtres, pages SEO, réglages et index sont conservés. Ouvrez la page de configuration : dès que la licence est valide, elle réactive le module.
  • La désinstallation supprime les tables, les réglages et les clés de licence, comme annoncé dans la confirmation.

Après la date d'échéance enregistrée, une licence reste active sept jours, ce qui couvre un renouvellement tardif. Passé ce délai, le module interroge le serveur au plus une fois par heure, avec un délai court. Un incident passager du serveur de licences n'est pas une expiration : il laisse sept jours de tolérance à compter du premier échec. Seul un verdict définitif (licence expirée, suspendue, révoquée ou introuvable, signature invalide, domaine non enregistré) met fin à la licence.

La page Configurer affiche la clé masquée, le domaine, la date d'échéance et les jours restants, et confirme que le module est réactivé.
La page Configurer affiche la clé masquée, le domaine, la date d'échéance et les jours restants, et confirme que le module est réactivé.

Le module s'installe sur PrestaShop 1.7.8, 8.0+ et 9.0+, avec PHP 7.4 minimum. Sur PHP 7.1 à 7.3, il affiche un message clair au lieu de provoquer une erreur fatale. Pour les pages mises en cache et les données structurées qui accompagnent ces listes, Cache Pro et Schema Pro complètent le travail.

Questions fréquentes

Pourquoi mes filtres n'apparaissent-ils pas sur la page de résultats de recherche ?
Le moteur de filtres n'est probablement pas activé pour cette page. Ouvrez Moteurs de filtres, dépliez « Où afficher » et cochez « Page de résultats de recherche », puis enregistrez et activez le moteur. Vérifiez aussi dans Indexation et santé que la recherche à facettes de PrestaShop est désactivée : quand les deux modules servent les mêmes listes, le module natif peut prendre la main.
Le filtre de prix tient-il compte des promotions et des remises de groupe ?
Oui. Le prix indexé est celui que le client paie : promotions datées, remises de groupe, taxes et devise comprises. Une remise posée sur une catégorie compte pour chaque produit de cette catégorie. Après l'ajout d'un groupe ou d'une remise, « Reconstruire l'index » sur Indexation et santé recalcule les prix.
La recherche trouve-t-elle les produits mal orthographiés ?
Oui, si la recherche approximative de PrestaShop est active, ce qui est le cas par défaut. Le module n'a pas de réglage propre : coupez ou activez l'option dans PrestaShop, et les filtres suivent. Un mot sans correspondance est ignoré au lieu de bloquer la recherche.
Les listes filtrées sont-elles indexées par Google ?
Non : les combinaisons construites au clic restent en « noindex, follow », y compris celles qui correspondent à une page SEO. Dans ce cas, un canonical unique pointe vers la page SEO, et c'est cette page que les moteurs indexent. Le sitemap ne reprend que les pages SEO des catégories de la boutique.
Le module gère-t-il un catalogue de plusieurs dizaines de milliers de produits ?
Oui : la recherche lit un index dédié et non le catalogue, sans plafond de 5 000 lignes par mot. Jusqu'à 50 000 résultats, le tri par pertinence se fait en PHP ; au-delà, l'ordre est celui des identifiants. Pour un catalogue de cette taille, gardez la tâche planifiée active et surveillez la file d'attente après un import.
Retirer un filtre actif fait-il perdre le focus clavier ?
Non. Le module sait où le focus doit revenir et l'y replace : sur le bouton de prix utilisé, sur le prochain filtre encore actif, ou sur le titre du bloc quand plus rien n'est sélectionné. Le déplacement se fait sans défilement, et le nombre de produits trouvés est annoncé.

Produits de cet article

Trouvez le module dont votre boutique a besoin

Voir les modules