Tout ce que vous voudriez savoir avant d'installer.
Un regard détaillé sur le fonctionnement de Vérificateur de Liens Morts PrestaShop 8 & 9 - Liens Cassés & Images Manquantes, pourquoi nous l'avons conçu ainsi, et la réflexion derrière les fonctionnalités ci-dessus.
Un lien mort coûte deux fois
Il coûte une première fois en référencement : Google suit les liens de vos descriptions, et une description produit qui pointe vers trois 404 envoie un signal de contenu négligé. Il coûte une seconde fois en conversion, quand un client clique sur le guide des tailles depuis une fiche produit et tombe sur une page d'erreur au moment précis où il hésitait. Le problème est que ces liens ne cassent pas le jour où vous les écrivez. Ils cassent six mois plus tard, quand un partenaire refait son site ou qu'une page CMS est renommée, et personne ne s'en aperçoit.
Deux problèmes distincts, deux méthodes de détection
Un lien mort se détecte par requête HTTP : le module appelle l'URL et lit le code retour. Un fichier image manquant ne se détecte pas comme ça. Quand une image produit est référencée dans la table image mais que le fichier a disparu du dossier img/p, la requête HTTP peut très bien renvoyer une page de remplacement en 200. Le module va donc lire directement le système de fichiers pour chaque image produit, catégorie, marque, fournisseur et magasin, ainsi que pour les fichiers joints. C'est la seule façon de trouver les images qui s'affichent en carré vide sans que rien ne remonte dans les logs.
Ce que le module lit dans votre catalogue
Descriptions et descriptions courtes des produits, messages de disponibilité, descriptions de catégories et de catégories CMS, contenu des pages CMS, descriptions de marques, de fournisseurs et de magasins, et les blocs de liens du pied de page gérés par ps_linklist. Dans chacun de ces champs, il extrait les liens a href, les images img src avec leurs variantes de lazy loading et leurs srcset, ainsi que les balises source, video, audio, iframe, embed, object, link et script, et les images de fond déclarées en style inline. Les mailto, tel, ancres seules et data URI sont écartés d'office, tout comme les restes de Smarty ou de shortcode qui traînent parfois dans une description copiée-collée.
Comment le scan tient sur un gros catalogue
Le scan se déroule en deux phases. La collecte parcourt les contenus et extrait les URL. La vérification les interroge. Chaque phase avance par lots de quelques secondes pilotés en AJAX depuis le navigateur, avec un curseur enregistré en base après chaque lot. Rien ne dépend de max_execution_time, et fermer l'onglet en cours de route ne perd pas le travail déjà fait. Deux optimisations font le reste : les URL sont dédoublonnées par empreinte sur la durée du scan, donc une URL présente 400 fois n'est testée qu'une fois, et les URL locales qui pointent vers un fichier statique présent sur le disque sont validées par lecture du système de fichiers, sans aucune requête réseau.
Du résultat au correctif
Un tableau de résultats trié par gravité liste chaque URL avec son statut, son code HTTP, son message d'erreur, sa cible de redirection éventuelle et son nombre d'usages. Ouvrir une ligne affiche la liste des emplacements : le type de source, le nom de l'élément, le champ concerné, la langue et le texte d'ancre. Chaque emplacement a son bouton d'édition qui ouvre la fiche produit, la catégorie ou la page CMS au bon endroit. Vous pouvez aussi revérifier une URL isolée après correction, sans relancer le scan complet.
Ce que veulent dire les statuts
Un statut valide couvre les réponses 2xx et les fichiers locaux présents sur le disque. Un avertissement couvre les redirections, les codes 401 et 403, et les 429 de limitation de débit : la ressource existe, mais quelque chose mérite un coup d'oeil. Un statut mort couvre les 404, 410, les autres 4xx, les 5xx, les délais dépassés, les erreurs DNS et les connexions refusées. Les statuts ignoré et non testé correspondent à vos exclusions et aux catégories d'URL que vous avez désactivées dans les réglages.
Exclure ce qui n'a pas à remonter
Beaucoup de domaines répondent 403 aux robots sans que le lien soit cassé pour autant, en particulier derrière un pare-feu applicatif. Le module les classe déjà en avertissement plutôt qu'en lien mort, mais vous pouvez aller plus loin avec une liste d'exclusions : un motif par ligne, en texte simple pour une correspondance sur une sous-chaîne, avec des jokers, ou en expression régulière avec un préfixe. Une URL peut aussi être mise en liste d'ignorés d'un clic depuis le tableau, ce qui la sortira des résultats des scans suivants.
Installation et désinstallation
Aucune dépendance externe, aucun Composer, aucune modification de thème. Uploadez le ZIP via le gestionnaire de modules et installez : quatre tables sont créées et un onglet apparaît sous Catalogue. Le module n'ajoute aucun hook front et ne touche pas à l'affichage de la boutique, il ne travaille que depuis le back-office. À la désinstallation, les quatre tables, l'onglet et la configuration sont supprimés.
Il n’y a pas encore d’avis.