Pourquoi une page erreur 404 doit-elle retourner ce même code de statut HTTP et ne pas être redirigée, par exemple ?

Une page d’erreur 404 est une page d’erreur manuellement créée qui est renvoyée lorsque le client demande une page inexistante.

Un exemple : si on demande l’URL https://www.sistrix.com/je-n-existe-pas/, nous n’avons pas de contenu pour cette page. Comme la page demandée n’existe pas, et n’a donc pas de contenu, notre serveur montrera une page d’erreur (aussi appelée page 404) créée spécialement pour cette occasion.

En ouvrant l’URL https://www.sistrix.com/je-n-existe-pas/ le serveur affiche une page complète et valide d’erreur 404 avec ce même code de statut HTTP

En ouvrant l’URL https://www.sistrix.com/je-n-existe-pas/ le serveur affiche une page complète et valide d’erreur 404 avec ce même code de statut HTTP

Lorsque l’utilisateur demande une URL inexistante sur ton site web, il faut retourner une page d’erreur individuelle pour les informer que l’URL demandée n’existe pas. Il faut aussi s’assurer que le serveur retourne le bon code HTTP « 404 ».

Le code de statut HTTP « 404 » signifie « file not found » et est l’exact opposé du code de statut HTTP « 200 », qui signifie « file found ».

À quoi servent les codes de statut HTTP ?

Les indexeurs des moteurs de recherche utilisent le code de statut HTTP pour vérifier si l’URL demandée est disponible, code HTTP « 200 », ou pas, code HTTP « 404 ».

Pourquoi le code de statut HTTP 404 est-il important pour les pages inexistantes ?

Les moteurs de recherche ne pourront comprendre que l’URL n’est plus disponible, et donc la retirer de l’index, qu’à condition que le serveur retourne le bon code de statut.
Si une page 404 retourne le mauvais code de statut HTTP, comme par exemple « 200 », alors l’URL risque de s’afficher dans les résultats de recherche. On pourra alors observer ceci :

Page d’erreur 404 avec le mauvais code de statut HTTP – « 200 » au lieu de « 404 »

Page d’erreur 404 avec le mauvais code de statut HTTP – « 200 » au lieu de « 404 »

Pourquoi une redirection automatique n’est-elle pas une meilleure solution ?

Rediriger automatiquement à la page d’accueil tous les liens entrants de pages inexistantes, en utilisant le code de statut HTTP « 301 », n’est pas la meilleure solution. Dans ce cas, l’utilisateur n’ira pas là où il le souhaitait et, beaucoup plus important, il ne saura pas que le contenu n’est plus disponible.

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 ?

https://www.youtube.com/embed/oya9Pl7ukNo

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 :