Erreurs 404 : pourquoi les détecter, comment les corriger

Il est particulièrement frustrant pour un visiteur de rencontrer un lien mort.

Pour quelles raisons une page web “n’existe plus à l’adresse indiquée” ? Il se peut que :

  • Le visiteur se soit trompé en saisissant l’adresse de la page ;
  • Le site ait changé d’adresse ou utilise des URLs réécrites dont la structure a été modifiée depuis le dernier passage du robot d’indexation ;

Dans le premier cas, il n’y a évidemment pas grand chose à faire : les erreurs 404 sont justement là pour notifier au visiteur que… la page n’existe pas ! Si votre site prend en charge les erreurs 404, il avertira le visiteur et lui permettra de poursuivre sa navigation autrement, en suggérant des pages similaires ou en affichant un formulaire de recherche.

C’est plus délicat lorsqu’un grand nombre d’adresses “mortes” pointent vers votre site. C’est sans doute le fait d’un changement de nom du site (déménagement vers un nouveau domaine) ou un changement de la structure des liens (réécriture d’URLs). Et il convient de les corriger pour ne pas perdre votre référencement ni dérouter une partie de vos visiteurs.

Google Outils pour les webmasters : détecter les liens morts connus par Google

Google propose un module très pratique dans ses outils pour les webmasters (gratuit, nécessite un compte Google) : le rapport des erreurs d’exploration. Google nous donne ici l’ensemble des liens morts dont il a connaissance, mais également les pages web qui référencent ces liens morts.

Un grand nombre de liens morts peut signifier une erreur de configuration de votre site, notamment sur sa gestion des URLs réécrites ou sa gestion des adresses canoniques.

Détecter les liens morts avec le W3C Link Checker

Link checker

W3C Link Checker parcourt les liens présents sur un site à la demande (avec un niveau de profondeur paramétrable) et affiche les liens morts et les redirections rencontrées. Très pratique.

Il affiche également les temps de chargement des pages liées. Google ayant tendance à privilégier les sites rapides, c’est un indicateur à surveiller.

Attention, cet outil se comporte comme un robot d’indexation, et ne vérifiera pas les liens interdits par votre fichier robots.txt. Il peut être utile d’être temporairement plus permissif le temps du scan.

Enfin, les redirections (301) détectées sont présentées. À vous de voir si vous pouvez mettre à jour les URLs. Par exemple, remplacer les liens vers le site officiel WordPress http://www.wordpress.org/ par la bonne URL http://wordpress.org/.

Cas pratique : erreur de configuration de Prestashop

Récemment, nous avons détecté un grand nombre de liens morts sur un site de vente en ligne utilisant la solution Prestashop.

Prestashop propose un module permettant d’éviter les contenus dupliqués, qui indique pour chaque page produit son URL principale à privilégier (appelée URL canonique).

Pour mémoire, ce système d’URL canonique est utile dans ce genre de site car une même page peut posséder plusieurs URLS (exemple : la version « URL propre » http://mon-site.fr/chaussures/homme/article1.html et l’URL « technique » http://mon-site.fr/products.php?id_product=42), ce qui est susceptible d’être pénalisé par les moteurs de recherche.

La présence d’une URL canonique pour chaque page du site permet d’indiquer aux moteurs les bonnes URLs à indexer (http://mon-site.fr/chaussures/homme/article1.html), et d’ignorer les autres (http://mon-site.fr/products.php?id_product=42).

Ici, la configuration des adresses canoniques (URL de référence, évitant le contenu dupliqué) était incorrecte. Au lieu d’une racine d’URL canonique de la forme :

 http://www.mon-site.fr/shop (bonne racine canonique)

Nous avions :

http://www.mon-site.fr/shop/shop (racine canonique fausse)

Conséquence : les moteurs de recherche conservaient comme page de référence une adresse introuvable (car possédant un “/shop/” de trop) ! C’est… très très mauvais !

Il va falloir effectuer une redirection massive de tous ces liens.

Prise en charge des liens morts par une redirection permanente

Dans le cas présent, les liens morts de cette boutique en ligne doivent être remplacés par les bons liens, avec un “/shop/” en moins. Le mécanisme est simple, il faut indiquer au serveur web que les adresses du type :

http://www.mon-site.fr/shop/shop/*

doivent être redirigées vers une adresse presque identique :

http://www.mon-site.fr/shop/*

Cette redirection est gérée facilement sous le serveur web Apache par un fichier .htaccess. Il suffit de lui indiquer, pour chaque adresse incorrecte, quelle est sa nouvelle adresse permanente (comme faire suivre votre courrier à la Poste suite à un déménagement).

Il serait fastidieux de prendre ses URLs une par une pour les placer dans le .htaccess, même si cela est parfaitement possible pour gérer manuellement une adresse, au cas par cas. Dans notre cas, la seule chose nécessaire est d’indiquer que toutes les adresses du type « /shop/shop/ » se verront redirigées vers « /shop/ » tout court :

La syntaxe générale est la suivante :

RedirectPermanent /{source}/ http://{cible}

Recommandation : autant que possible, ne modifiez jamais la structure de vos liens (permaliens dans WordPress, par exemple) ou le slug d’une page. Si vous faites cela, toutes les anciennes adresses deviendront mortes. La détection des liens morts n’est pas une science exacte car basée uniquement sur les pages de votre site connues par les moteurs : ce n’est pas absolument exhaustif. Autant s’éviter un travail inutile et réfléchir au format des URLs avant le lancement du site !

Les commentaires sont fermés.