Trouver ses erreurs 404 est la partie facile. Savoir quoi faire de chacune est plus délicat, parce que la bonne réparation change d'une adresse à l'autre. Une page supprimée volontairement, un lien mal recopié et un article déplacé produisent tous le même code 404, mais ils demandent trois corrections différentes. Ce guide propose une méthode simple à appliquer à chaque ligne de votre rapport, puis les règles exactes à écrire une fois la décision prise.
On ne répare que ce que l'on a trouvé. Trois sources se complètent, et chacune montre des erreurs que les deux autres ne voient pas.
Un robot d'exploration part de la page d'accueil, suit chaque lien interne et note la réponse de chaque adresse. C'est la méthode qui détecte les liens cassés présents dans vos propres pages, c'est-à-dire ceux qui dépendent entièrement de vous et qu'il faut corriger en premier. Le vérificateur de liens brisés d'Adieu404 fait exactement cela et indique, pour chaque adresse en erreur, la page qui contient le lien fautif. Vous savez donc tout de suite quel fichier ouvrir.
Le fichier journal d'accès (access log) enregistre toutes les requêtes, y compris celles qui ont échoué. Sur un serveur Apache, les lignes qui nous intéressent portent le code 404 dans la colonne du statut. Cette source a un intérêt particulier : elle montre les adresses que plus aucune page ne cite, mais que les visiteurs et les robots demandent encore, à cause d'un ancien favori ou d'un site extérieur qui pointe vers vous. Chez la plupart des hébergeurs mutualisés, ces journaux se téléchargent depuis l'espace client.
La Google Search Console liste, dans le rapport d'indexation des pages, les adresses que Google a essayé d'explorer sans y parvenir. Ce sont les erreurs qui touchent le plus directement votre présence dans les résultats de recherche. C'est aussi là qu'apparaissent les soft 404, ces pages d'erreur qui répondent pourtant « 200 OK », qu'un outil d'exploration classique ne signale pas.
Pour chaque adresse en erreur, posez-vous les questions ci-dessous dans l'ordre et arrêtez-vous à la première qui s'applique.
Si le contenu a déménagé, ou si une autre page traite bien le même sujet, redirigez l'ancienne adresse vers elle avec une redirection permanente 301. Vous conservez ainsi les visiteurs qui arrivent par d'anciens liens, et les signaux de référencement accumulés par l'ancienne page sont transmis à la nouvelle.
Soyez honnête sur ce qui est vraiment équivalent. Rediriger une fiche produit supprimée vers la page d'accueil n'est pas une réparation, c'est une façon de cacher le problème. Les moteurs de recherche traitent une redirection vers une page sans rapport comme une soft 404 : l'adresse est considérée comme manquante, vous n'y gagnez rien, et le visiteur est perdu.
Une bonne partie des erreurs 404 vient du lien et non de la destination. Cherchez un caractère en trop à la fin, une extension oubliée (.php, .html), une majuscule dans un chemin alors que le serveur distingue les majuscules des minuscules, ou un chemin relatif qui se casse quand la page est consultée depuis un sous-dossier. Dans tous ces cas, la page de destination existe bel et bien : il suffit de corriger le lien dans la page source, que le rapport d'Adieu404 vous indique.
Renvoyez un code 410 Gone plutôt qu'un 404. Pour le visiteur, le résultat est le même. Pour les moteurs de recherche, le 410 signifie que la suppression est volontaire, et l'adresse disparaît plus vite de l'index qu'avec un 404. C'est le bon choix pour une offre expirée, un produit arrêté sans successeur ou un article retiré exprès.
Laissez le 404 en place. Une erreur 404 n'est pas un défaut en soi : c'est la réponse correcte à une demande qui ne correspond à rien. Ce qui compte, c'est que le visiteur arrive sur une page d'erreur utile plutôt que sur un message brut du serveur, ce qui fait l'objet de l'étape 4.
Sur un serveur Apache, les redirections se placent dans le fichier .htaccess à la racine du site. Les exemples suivants utilisent les directives classiques du module mod_alias, suffisantes dans la grande majorité des cas.
Rediriger une page de façon permanente :
Redirect 301 /ancien-article.html https://www.exemple.fr/nouvel-article.html
Rediriger tout un dossier qui a changé de nom :
RedirectMatch 301 ^/ancienne-rubrique/(.*)$ https://www.exemple.fr/nouvelle-rubrique/$1
Déclarer une page définitivement supprimée :
Redirect 410 /produit-arrete.html
Afficher vos propres pages d'erreur :
ErrorDocument 404 /page404.php ErrorDocument 403 /page403.php
Quand vous redirigez une page qui était déjà la cible d'une ancienne redirection, vous créez une chaîne : A renvoie vers B, qui renvoie vers C. Chaque étape ralentit le chargement et affaiblit les signaux transmis. À chaque nouvelle règle, vérifiez si une règle plus ancienne pointe déjà vers l'adresse que vous déplacez, et faites-la pointer directement vers la destination finale.
La boucle est la version extrême du même problème : A renvoie vers B et B renvoie vers A. Le navigateur abandonne après quelques allers-retours et affiche une erreur. Si une page devient inaccessible juste après une modification du .htaccess, pensez d'abord à une boucle. Les chaînes et les boucles n'apparaissent pas dans un rapport de liens brisés, puisqu'une redirection n'est pas une erreur : notre détecteur de redirections repère les liens internes qui passent par une redirection, et la commande curl -I -L suivie d'une adresse affiche chaque étape d'une chaîne.
Certaines erreurs 404 existeront toujours : les visiteurs se trompent en tapant une adresse, d'autres sites font des liens erronés, et les vieux favoris survivent aux pages qu'ils désignent. La vraie question est ce que voient ces visiteurs. Une page 404 utile réunit quatre éléments :
L'erreur la plus courante consiste à afficher un joli message « page introuvable » avec un code 200 OK. Les moteurs de recherche croient alors que la page existe et l'indexent, ce qui remplit l'index de copies du même message d'erreur. En PHP, la page d'erreur doit envoyer l'en-tête avant tout affichage :
<?php http_response_code(404); ?>
Une fois les corrections faites, relancez une exploration. Ce deuxième passage confirme que les adresses redirigées répondent correctement, et il attrape les erreurs introduites pendant les corrections, ce qui arrive plus souvent qu'on ne veut l'admettre.
Les liens cassés reviennent avec le temps : des pages internes sont renommées, des sites extérieurs disparaissent sans prévenir. Un contrôle rapide après chaque mise à jour importante, et une exploration complète tous les deux ou trois mois, suffisent à garder un site propre. Pour les liens qui pointent vers d'autres sites, utilisez le vérificateur de liens externes.
Si votre rapport contient surtout des images manquantes plutôt que des pages, les causes sont différentes : elles sont détaillées dans notre guide sur les images cassées et les soft 404. La signification de chaque code rencontré est expliquée dans la page codes HTTP expliqués, et les termes techniques dans le glossaire.
Avant de remplacer un lien par une adresse vers un autre site, il peut être utile de savoir qui se cache derrière ce domaine et depuis quand il existe : jeverifie.fr affiche le whois d'un nom de domaine avec un indice de fiabilité.