Comment retourner correctement le code de statut HTTP 404 pour une page d’erreur ?

Une page d’erreur 404, que l’on appelle aussi un ErrorDocument 404, est, avant tout, une page qui informe l’utilisateur que la ressource demandée n’existe pas. Par exemple, si un utilisateur suit un lien et que la page cible n’existe plus, le serveur doit afficher une page d’erreur 404.

Cependant, ce n’est pas l’unique rôle de la page d’erreur 404. Si elle est bien configurée, elle informe aussi le Google-Bot de l’existence réelle ou non d’un document. Pour que cela fonctionne correctement, il est important que la page d’erreur 404 retourne le bon code de statut HTTP 404 – autrement, la page 404 est défectueuse.

Comment puis-je retourner le bon code de statut HTTP pour une page d’erreur 404 ?

Les serveurs ou le Content-Management-System (CMS) utilisés ne sont souvent pas configurés correctement. Cela peut résulter en une page d’erreur qui retourne le code de statut HTTP 200 (OK) ou en une redirection 301 qui renvoie l’utilisateur ainsi que le Google-Bot à une autre page. Dans les deux cas, il faut considérer cela comme une page 404 défectueuse, ce que l’on appelle une erreur soft 404.

Dans cet article, nous parlerons de la bonne configuration d’une page d’erreur 404 avec le code de statut HTTP 404 approprié. Nous ferons en fait la différence entre deux cas d’utilisation:

.htaccess et serveur Apache – configurer convenablement la page d’erreur

Selon si on utilise des fichiers .html ou .php pour le site web ou si on est resté sur une structure dossier – une Page d’erreur 404 est créée en mettant ce qui suit dans le fichier .htaccess :

Le chemin relatif vers le document d’erreur est ajouté au fichier .htaccess

Le chemin relatif vers le document d’erreur est ajouté au fichier .htaccess

Ouvre ou crée le fichier .htaccess et y ajoute le chemin relatif vers la page d’erreur. Il faut toutefois d’abord créer la page d’erreur (404.html, par exemple) au premier niveau de ton site web (le répertoire racine).

ErrorDocument 404 /404.html

Le processus complet, étape par étape :

  • crée une page d’erreur (404.html ou 404.php) au premier niveau de ton site web (répertoire racine)
  • ouvre le fichier .htaccess – ou crée-le s’il y n’en a pas déjà (aussi dans le répertoire racine)
  • tape « ErrorDocument 404 » suivi du chemin relatif vers la page d’erreur
  • sauvegarde, et demande une page qui n’existe pas, comme http://www.your-domain.com/98899351
  • maintenant on devrait voir le contenu de la page d’erreur 404.html
  • utilise httpstatus.io (par exemple) pour vérifier que c’est bien le code de statut HTTP 404 qui est retourné
Test du code de statut HTTP 404 pour une URL

La page inexistante https://www.sistrix.de/98899351 répond avec le code de statut HTTP 404

WordPress CMS – configurer convenablement la page d’erreur

Si on utilise le Système de gestion de contenu (CMS) WordPress, il est facile de retourner le bon code d’erreur pour une page 404 – sous réserve que le thème qu’on utilise la prend en charge.

Beaucoup de thèmes WordPress, appelés designs ou modèles, utilisent un fichier 404.php dans le dossier du thème. Si on n’arrive pas à trouver ce fichier, configure simplement une page d’erreur en utilisant .htaccess.

Ouvre le fichier 404.php dans ton thème WordPress actif, et tape ce qui suit dans la première ligne :

Configurer le code de statut HTTP 404 pour une page d’erreur WordPress

Configurer le code de statut HTTP 404 pour une page d’erreur WordPress

La page d’erreur 404.php se trouve en général dans le répertoire du thème dans /wp-content/themes/nom-du-theme-actif/

<?php
header("HTTP/1.0 404 Not Found");
?>

Le processus complet, étape par étape :

  • trouve et ouvre la page d’erreur dans le dossier du thème WordPress (généralement « 404.php »)
  • ajoute le code source PHP ci-dessus à la première ligne et sauvegarde le fichier
  • ouvre une page qui n’existe pas, comme http://www.your-domain.com/98899351
  • maintenant on devrait voir le contenu de la page d’erreur 404.php
  • utilise httpstatus.io (par exemple) pour vérifier que c’est bien le code de statut HTTP 404 qui est retourné
Test du code de statut HTTP 404 pour une URL

La page inexistante https://www.sistrix.de/98899351 répond avec le code de statut HTTP 404

Pourquoi est-il important que les pages d’erreur retournent le bon code de statut HTTP ?

Un serveur devrait retourner le code de statut HTTP 404 (Not Found) ou 410 (Gone) si une URL n’existe pas. S’il y a de vieux liens sur le web, ou des liens incorrects sur ton site web, Google ne pourra comprendre que la page cible n’existe pas (plus) que si on retourne un code de statut HTTP 404 ou 410.

C’est pourquoi il faut s’assurer que la page d’erreur de ton site web répond toujours avec le bon code de statut HTTP 404. Rediriger les pages inexistantes vers la page d’accueil à l’aide d’une redirection 301 n’est pas recommandé, car ça peut poser des problèmes.

Vidéo explicative de Matt Cutts / Google sur le sujet

Comment Google gère-t-il les pages « non trouvées » qui ne retournent pas un 404 ?

Comment Google gère-t-il les pages « page non trouvée » qui retournent un code 200 au lieu d’un 404 ? Est-ce une forme de spam ? Google peut-il détecter cette incompatibilité de façon algorithmique ?

Informations supplémentaires sur le sujet :

  • Que sont les erreurs Soft 404 ?