PS PrestaShop Débutant

DF Smart 404 — Documentation

Installer, configurer et exploiter la page 404 intelligente : suggestions produits, recherche préremplie, journal des 404 et redirections 301 en un clic.

Mis à jour Version du module 1.0.0

Présentation

DF Smart 404 transforme la page « page introuvable » de votre boutique en un carrefour de conversion. Quand un visiteur atterrit sur une URL cassée, le module analyse cette URL, en extrait les mots-clés, et affiche les produits de votre catalogue qui correspondent le mieux, accompagnés d’un formulaire de recherche déjà prérempli.

En parallèle, chaque 404 est enregistrée dans un journal en back-office. Vous voyez exactement quelles URL cassent, combien de visiteurs les touchent, et d’où ils viennent. Depuis ce journal, une redirection 301 vers le bon produit se crée en un clic.

Ce que le module fait

  • Injecte un bloc de suggestions produits dans la page 404 de votre thème, sans surcharge de template.
  • Préremplit le formulaire de recherche avec les mots-clés humanisés extraits de l’URL cassée.
  • Journalise chaque 404 avec déduplication, compteur de hits, referer et user-agent.
  • Crée des redirections 301 ou 302 en un clic, avec protection anti-boucle.
  • Applique ces redirections avant le dispatch de la page.

Prérequis

  • PrestaShop 8.0 à 9.x
  • PHP 7.4 ou supérieur
  • Aucune dépendance externe, aucun Composer

Installation

  1. Rendez-vous dans Modules > Gestionnaire de modules.
  2. Cliquez sur Installer un module et déposez le fichier df404smart-1.0.0.zip.
  3. Cliquez sur Installer.

À l’installation, le module crée deux tables SQL (journal des 404 et redirections), enregistre trois hooks et ajoute un menu DF Smart 404 dans le back-office avec deux sous-onglets.

Le bloc est actif immédiatement sur la page 404 avec des réglages par défaut opérationnels. Vous pouvez tester en visitant une URL inexistante de votre boutique.

Configuration

Ouvrez la page Configurer du module. Elle affiche d’abord quatre indicateurs de suivi, puis le formulaire de réglages.

Tableau de bord

  • URL cassées à corriger — nombre d’entrées au statut « nouvelle » dans le journal.
  • Hits 404 sur ces URL — somme des visites sur les URL non encore traitées.
  • Redirections actives — nombre de règles de redirection en service.
  • Visites sauvées par les redirections — somme des hits interceptés par vos redirections.

Réglages disponibles

  • Enrichir la page 404 — active ou désactive l’injection du bloc de suggestions.
  • Afficher le formulaire de recherche — affiche le champ de recherche prérempli dans le bloc.
  • Activer le moteur de redirection — applique les redirections créées depuis le journal. Décochez cette case si vous utilisez déjà un module de redirections tiers.
  • Nombre de suggestions — entre 0 et 12 produits affichés. La valeur 0 désactive les suggestions tout en conservant le formulaire de recherche.
  • Type de redirection par défaut — 301 permanente (recommandée pour le SEO) ou 302 temporaire.
  • Journaliser le trafic des robots — si désactivé, les hits provenant de crawlers connus ne sont pas écrits dans le journal.
  • Rétention du journal (jours) — les entrées plus anciennes sont purgées automatiquement. Les règles de redirection ne sont jamais purgées.
  • Motifs d’exclusion — une expression régulière insensible à la casse par ligne. Les URL correspondantes ne sont jamais journalisées.

Motifs d’exclusion par défaut

Le module est livré avec une liste de motifs qui écartent le bruit généré par les scanners de vulnérabilités et les requêtes automatisées : tentatives sur wp-admin, wp-login, xmlrpc, phpmyadmin, les dossiers .git, ainsi que les ressources statiques (images, feuilles de style, scripts). Ajoutez vos propres motifs, un par ligne. Un motif invalide est signalé à l’enregistrement, avec le numéro de ligne concerné.

Le bloc de suggestions en front

Comment les produits sont sélectionnés

Lorsqu’une 404 se produit, le module découpe les deux derniers segments de l’URL en mots-clés. Les mots vides sont écartés dans cinq langues (français, anglais, espagnol, allemand, italien), seuls les tokens d’au moins trois caractères sont conservés, et les identifiants purement numériques sont exclus.

Chaque token restant est ensuite confronté au catalogue avec un scoring pondéré :

  • correspondance dans le link_rewrite du produit : 4 points
  • correspondance dans le nom du produit : 3 points
  • correspondance dans la référence : 2 points

Les produits sont classés par score décroissant, et seuls ceux dont le score est supérieur à zéro sont retenus.

Le repli

Si aucun produit ne ressort de l’analyse — cas fréquent sur une URL très courte ou obscure — le module bascule automatiquement sur les meilleures ventes. Si celles-ci sont également indisponibles (catalogue neuf, statistiques non calculées), il affiche les produits les plus récents. Le visiteur voit donc toujours des produits, jamais un bloc vide.

Le formulaire de recherche

Le champ de recherche est prérempli avec la version humanisée des mots-clés de l’URL. Un visiteur arrivant sur /sneakers-cuir-premium-edition voit déjà « sneakers cuir premium edition » dans le champ.

Le formulaire pointe vers la page de recherche native de votre thème, avec les paramètres de la query string correctement transmis en champs cachés. Aucun conflit avec un module de recherche instantanée tiers : le module ne surcharge rien, il utilise le point d’entrée standard de PrestaShop.

Où le bloc s’affiche

Le module détecte la section de contenu de la page 404 de votre thème et y insère le bloc, juste sous le message natif. Si la structure du thème est atypique, plusieurs replis successifs garantissent que le bloc reste au-dessus du pied de page. Aucun fichier de thème n’est modifié.

Le journal des 404

Menu DF Smart 404 > Journal des 404.

Colonnes

  • URL cassée — le chemin appelé, normalisé.
  • Hits — nombre de visites sur cette URL. La liste est triée par hits décroissants par défaut : les URL les plus coûteuses apparaissent en premier.
  • Dernier referent — d’où venait le dernier visiteur (Google, un site tiers, une page interne…).
  • Statut — Nouvelle, Redirigée ou Ignorée.
  • Dernier hit — date de la dernière visite.

Déduplication

La déduplication repose sur un hash de l’URL, scopé par boutique. Mille visites sur la même URL cassée produisent une seule ligne avec mille hits, jamais mille lignes. L’écriture se fait en une requête upsert unique.

Actions disponibles sur chaque ligne

  • Redirection auto (icône éclair) — crée instantanément une redirection vers le produit le plus pertinent, en AJAX, sans quitter la page. Cette action n’est proposée que si le score de correspondance dépasse le seuil de confiance ; sinon, un message vous invite à utiliser le formulaire guidé.
  • Créer une redirection — ouvre le formulaire guidé (voir ci-dessous).
  • Ignorer — bascule l’entrée au statut « ignorée ». Elle disparaît des indicateurs de suivi mais reste consultable.
  • Supprimer — supprime l’entrée du journal.

Une action groupée de suppression et un export CSV sont également disponibles depuis la barre d’outils.

Créer une redirection

La redirection automatique

Le bouton éclair calcule le meilleur produit correspondant à l’URL cassée. Si le score dépasse le seuil de confiance interne, la redirection est créée immédiatement avec le type par défaut configuré, et l’entrée du journal passe au statut « redirigée ». Un message de confirmation indique le produit cible.

Le seuil de confiance évite les redirections hasardeuses. Une URL comme /promo-ete-2024 n’aura probablement pas de match fiable : le module refusera la redirection automatique et vous renverra vers le formulaire guidé.

Le formulaire guidé

Il affiche l’URL cassée, son nombre de hits, puis la liste des produits suggérés classés par score. Chaque suggestion est un bouton radio, la première étant présélectionnée. Un champ URL personnalisée permet de saisir n’importe quelle cible : une catégorie, une page CMS, une URL externe.

Vous choisissez ensuite le type de redirection (301 ou 302) et validez. Le module vérifie que la cible n’est pas vide, qu’elle ne pointe pas vers l’URL source elle-même (protection anti-boucle), et qu’aucune redirection n’existe déjà pour cette source.

Gérer les redirections

Menu DF Smart 404 > Redirections 404.

Cet écran offre un CRUD complet sur vos règles de redirection :

  • URL source — le chemin cassé (ex. /ancienne-categorie/ancien-produit).
  • URL cible — chemin ou URL complète vers laquelle rediriger.
  • Type — 301 (permanente) ou 302 (temporaire).
  • Hits — nombre de visites interceptées par cette règle. C’est votre mesure directe des visites sauvées.
  • Actif — interrupteur pour désactiver une règle sans la supprimer.

Les mêmes validations qu’au formulaire guidé s’appliquent : source non vide, pas de boucle, pas de doublon de source (l’identifiant courant est exclu du contrôle en édition).

Fonctionnement du moteur

Les redirections sont évaluées avant le dispatch de la page, en amont du contrôleur front. Le chemin appelé est normalisé, puis un lookup indexé sur son hash cherche une règle active pour la boutique courante. Si une règle correspond, le compteur de hits est incrémenté et la redirection est émise avec le code HTTP configuré.

Performance

  • Le journal n’écrit qu’en cas de 404 réelle, en une seule requête upsert.
  • Le moteur de redirection effectue un lookup indexé sur un hash : coût négligeable, même avec des centaines de règles.
  • La purge des entrées anciennes est déclenchée aléatoirement sur environ 1 % des hits, afin de ne jamais bloquer une requête visiteur.
  • Les hits provenant de robots peuvent être exclus de l’écriture, ce qui réduit encore la charge sur les boutiques fortement crawlées.

Multi-boutique

Toutes les données du module sont scopées par identifiant de boutique : le journal, les redirections et les suggestions. Chaque boutique dispose de son propre journal, de ses propres règles et de sa propre configuration. Une URL cassée sur la boutique A n’apparaît pas dans le journal de la boutique B.

RGPD

Le journal enregistre l’URL cassée, le referer et le user-agent. Aucune adresse IP n’est stockée, aucune donnée nominative n’est collectée. La rétention est configurable et la purge automatique. Le module n’envoie aucune donnée vers un service externe.

Désinstallation

La désinstallation supprime les deux tables du module (journal des 404 et redirections), les onglets back-office et la configuration. Les redirections créées seront perdues. Une confirmation est demandée avant l’opération.

Si vous prévoyez de réinstaller le module ou de migrer, exportez d’abord vos redirections en CSV depuis l’écran de gestion.

Dépannage

Le bloc ne s’affiche pas sur la page 404

  • Vérifiez que le réglage Enrichir la page 404 est activé.
  • Videz le cache PrestaShop (Paramètres avancés > Performances > Vider le cache).
  • Assurez-vous que le thème utilise bien le contrôleur pagenotfound standard.

Le bloc s’affiche sous le pied de page

Ce cas est traité depuis la version 1.0.0 : le module cible la section de contenu et non la balise de fermeture du conteneur principal. Si vous rencontrez encore ce comportement, videz le cache Smarty et signalez la structure de votre thème au support.

Aucun produit n’est suggéré

  • Vérifiez que le Nombre de suggestions n’est pas réglé sur 0.
  • Sur un catalogue neuf sans historique de ventes, le repli meilleures ventes est vide : le module bascule alors sur les produits récents. Assurez-vous d’avoir au moins un produit actif et visible.

La redirection automatique refuse de se créer

C’est le comportement attendu quand le score de correspondance est trop faible. Utilisez le formulaire guidé, qui affiche les suggestions même en dessous du seuil, et permet de saisir une cible personnalisée.

Une redirection ne s’applique pas

  • Vérifiez que le réglage Activer le moteur de redirection est coché.
  • Vérifiez que la règle est bien active dans l’écran de gestion.
  • Vérifiez que la règle appartient à la bonne boutique en contexte multi-boutique.
  • Si un autre module de redirections est installé, il peut intercepter la requête en amont.

Support

12 mois de mises à jour et 12 mois de support par email sont inclus avec votre licence. Le code source PHP complet est fourni, non obfusqué.

Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support