PrestaShop Administration & Productivité

Vérificateur de Liens Morts PrestaShop 8 & 9 – Liens Cassés & Images Manquantes

Trouvez les liens morts et les images cassées avant vos clients

Le module parcourt les descriptions produits, les catégories, les pages CMS, les marques, les fournisseurs et les magasins, extrait chaque lien et chaque image, puis vérifie leur code HTTP. Il contrôle aussi la présence physique des fichiers images sur le disque, ce que le front ne signale jamais. Compatible PrestaShop 8 et 9, multi-boutique, 5 langues.

En un coup d'œil
  • Liens et images analysés dans les produits, catégories, pages CMS, marques, fournisseurs et magasins
  • Vérification HTTP en parallèle par curl_multi, en HEAD puis en GET quand le serveur distant refuse HEAD
  • Contrôle sur disque des fichiers images produits, catégories, marques, fournisseurs et fichiers joints
  • Scan par lots piloté en AJAX : pas de timeout PHP, un scan interrompu reprend où il s'est arrêté
  • Chaque URL cassée est reliée aux contenus qui l'utilisent, avec bouton d'édition direct
PrestaShop 8 & 9 PHP 7.4+ Multi-boutique 5 langues Sans Composer
  • Remboursement 30 jours
  • 12 mois de mises à jour
  • Support 24h
www.datafirefly.com/
Rapport de liens morts et d'images manquantes dans le back-office PrestaShop
v1.0.0 · mis à jour 2026-07-27
Ce que ça fait

La version courte.

01

Deux types de casse, deux méthodes

Les liens et images qui répondent 404, 410, 500 ou qui expirent sont détectés par requête HTTP. Les fichiers images référencés en base mais absents du disque sont détectés par lecture du système de fichiers : le front les rend en image cassée sans jamais renvoyer d'erreur exploitable.

02

Vérification HTTP en parallèle

curl_multi interroge plusieurs URL simultanément, en HEAD d'abord, puis en GET quand le serveur distant refuse la méthode HEAD. Requêtes simultanées, délai d'attente, délai de connexion et user-agent sont réglables.

03

Scan par lots, sans timeout

Le scan avance par tranches de quelques secondes pilotées en AJAX, avec un curseur enregistré en base. Un catalogue de plusieurs dizaines de milliers d'URL passe sans toucher à max_execution_time, et un scan interrompu reprend là où il s'est arrêté.

04

De l'URL cassée au contenu à corriger

Chaque URL est reliée à la liste des contenus qui l'utilisent : type de source, nom de l'élément, champ concerné, langue et texte d'ancre. Un bouton ouvre directement la fiche produit, la catégorie ou la page CMS en édition.

05

Dédoublonnage des URL

Une URL présente 400 fois dans le catalogue est testée une seule fois, et les 400 emplacements restent listés. Un lien de pied de page recopié partout ne fait pas exploser la durée du scan.

06

Liste d'exclusions

Texte simple, jokers ou expressions régulières, un motif par ligne. Les domaines partenaires qui bloquent les robots, les URL de préproduction et les liens en cours de migration sortent des résultats.

La version longue

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.

§ 01

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.

§ 02

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.

§ 03

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.

§ 04

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.

§ 05

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.

§ 06

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.

§ 07

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.

§ 08

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.