Éviter les liens brisés et les erreurs 404 sur vos sites perso

Les Pages Perso Chez Free

Par Al, le , dans Créer ses pages perso. / Dernière modification : le par Al (merci à Otomatic).
Tags : Apache, Assistance, PHP, Tutoriaux

Rien de plus rageant que de cliquer sur un lien pour finalement atterrir sur une page d'erreur 404 : Page non trouvée. Mais ce n'est pas tout, des liens brisés peuvent également influer sur l'expérience de navigation de vos visiteurs et la rapidité de chargement des pages de votre site.

Il est pourtant très simple d'éviter de telles erreurs. Voici quelques conseils simples pour éviter les écueils.

Gérer les URL de votre site Web

La structure de votre site Web vous appartient, vous en êtes responsable tout comme le contenu de celui-ci. Vous pouvez donc organiser votre site comme bon vous semble (mettre toute les pages à la racine, organiser votre site en sections, catégories, rubriques, etc.) Il est cependant facile de tomber sur une erreur 404 lorsque l'on remanie, adapte, corrige ou refond un site Web, et cela va généralement en empirant lorsque le site est ancien.

Lorsque vous renommez ou supprimez une page, une section, un répertoire de votre site, il est important de réaliser la modification dans toutes les pages présentant un ou des liens vers ces pages/sections. Cependant, la présence sur le Web de votre site implique de d'autres personnes ou institutions ont pu également faire un lien vers l'une de vos pages (c'est notamment le cas des moteurs de recherche). Il faut donc penser également à gérer votre « espace d'URL » en informant le visiteur que quelque chose à changé :

  • Si vous avez renommé ou déplacé une page ou une ressource de votre site, pensez à placer une redirection dans le fichier .htaccess de votre site, afin de rediriger le trafic vers votre nouvelle page ou ressource à l'aide d'une redirection permanente (code HTTP 301 ou 308) temporaire (code HTTP 302 ou 307) ;
  • Si vous avez supprimé une page ou une quelconque ressource de votre site, ne laissez pas vos visiteurs tomber sur une page d'erreur 404 (Non trouvé), indiquez que la page n'est plus disponible (avec le code de réponse 410) via le fichier .htaccess : Redirect 410 /chemin/vers/page/supprimee.html. Pensez dans ce cas à personnaliser votre page de réponse « 410 » via la directive ErrorDocument de votre fichier .htaccess.

Vérifier les liens de vos pages Web peut vite devenir fastidieux, mais il existe de nombreux outils pour cela. Un outil simple d'emploi : Xenu's Link Sleuth (voir ci-dessous).

Les possibilités sont très nombreuses, vous trouverez de plus amples informations et exemples d'application dans ces différentes pages :

Détection des liens morts avec Xenu's Link Sleuth

Section écrite par Otomatic

Xenu's Link Sleuth que l'on abrège en « Xenu », est un utilitaire fonctionnant uniquement sous Windows – même Windows 7 ou Windows 8 64 bits – et qui permet de détecter la pertinence des liens, les liens morts, les redirections, etc. d'un site.

L'aide en français mentionne la version 1.3.5 alors que la dernière est 1.3.8. mais répond à beaucoup de questions. Bien que datant quelque peu, c'est à lire complètement avant la première utilisation.

Il utilise une technique appelée « multithreading préemptif. » Cela signifie que le logiciel de contrôle des liens récupère plusieurs pages web en même temps. Le nombre de threads est, par défaut, à 30, mais vous pouvez le configurer avec un nombre compris entre 1 et 100. Il faut donc éviter de se servir de Xenu directement sur le site réel des pages persos pour les premières vérifications, pour éviter de trop charger les serveurs par de multiples connexions (et de tomber ainsi sur le redoutable serveur perso-99).

Il faut donc commencer par corriger le maximum de défauts sur le site en local (ce qui est possible sans serveur local, mais avec quelques restrictions présentées ci-dessous), puis, une fois que ceux-ci ont été corrigés et le site réel mis à jour, on peut diminuer le nombre de threads dans les options et lancer les opérations sur le site réel.

Sans serveur local actif, uniquement les pages purement HTML pourront être vérifiées. Pour vérifier un site utilisant PHP, il faut obligatoirement un serveur local de type WAMP.

Lors de la première utilisation, on va se limiter aux liens morts en choisissant dans Options :

  • Basic
    • Cocher uniquement les trois options Broken… :
    • Maximum depth : 999
    • Cocher Ask for password si le site a des pages privées
    • Parallel threads : 30
    • Advanced : Cocher uniquement :
      • Fail at http and FTP
      • List local directories
  • OK

Menu File : Check URL : What address do you want to check?

Si votre serveur local en est fonctionnement, tapez l'url du site local (Virtual Host) à vérifier, par exemple :

http://aviatechno/

Si vous n'avez pas de serveur local ou si celui-ci est arrêté, choisissez le bouton « Local file » pour choisir, par exemple : D:\www\site\index.html, mais, dans ce cas, uniquement un site HTML pur peut être vérifié.

Include / Exclude

Dans cette partie de formulaire, on peut entrer des URL ou partie d'url à exclure de la vérification. Par exemple, toujours avec mon site en local, je vais exclure le forum des vérifications, donc dans le champs idoine, je tape :

http://aviatechno/forum/

puis bouton « Add »

Une fois toutes les options validées, on lance les vérifications par le bouton OK… et, c'est parti…

Dans la barre d'état, on peut voir le nombre de liens testé, le nombre total et le temps qui s'écoule…

Après 4 mn 34 sec et 25272 liens testés, s'affiche un « popup » demandant si on veut voir les résultats, bien sûr, comme c'est le bût de cette vérification, on valide « Oui » et le fichier HTML de résultats s'affiche dans le navigateur par défaut.

Dans le cas précité, et vu que j'ai déjà procédé plusieurs fois à cette vérification et apporté les corrections nécessaires, il n'y a aucun lien mort. La première fois, il y en avait 48 (sur 25272, soit 0,18 %).

Donc, maintenant, je lance la vérification d'un site local en sous-domaine jamais vérifié :

http://le-pointu.aviatechno/

4001 URL en 2 mn 34 sec. Les résultats ne donnent aucun lien mort, mais :

2214 Broken page-local links (also named 'anchors', 'fragment identifiers')

du style :

http://le-pointu.aviatechno/apropos.php#debut_ not found

Ce qui est « normal » compte tenu que je viens juste de transférer ce site en sous-domaine en réutilisant quelques « includes » du domaine principal, sans avoir ajouté l'id #debut_ dans les pages.

Voila, c'est suffisant pour le début.

Si on veut utiliser d'autres options, comme la détection des redirections voir les documentations d'origine et française.

Nota : Si on a déjà vérifié les liens morts (Broken… dans les Options) ce n'est pas la peine de recommencer pour détecter les redirections, donc on décoche Broken… pour cocher uniquement Detect Redirect.

Eh ! mais euh ! Je ne suis pas sur Windows moi ! Comment faire ?

Il existe d'autres outils permettant de vérifier les liens morts présents dans vos sites Web : le service de vérification de liens du W3C ainsi qu'un nouveau service en ligne, Strucr.com semblent réaliser les mêmes opérations que Xenu's Link Sleuth. Si vous souhaitez utiliser un logiciel sur votre machine, vous trouverez de nombreuses alternatives sur le site AlternativeTo.net et notamment LinkChecker.