Codes HTTP et SEO
Portrait Olivier Duffez

Olivier Duffez

Créateur de WebRankInfo,
consultant en référencement

Tous les codes HTTP expliqués avec leur impact en référencement

Si votre serveur ne renvoie pas le bon code HTTP attendu en fonction de la situation, cela peut gêner ou bloquer votre référencement naturel. Voici des explications complètes à mettre en favoris !

Article mis à jour le 19/12/2019 (tester le code HTTP d'une liste d'URL, questions-réponses), publié initialement le 12/12/2008

Le protocole HTTP prévoit un certain nombre de codes que le serveur web doit renvoyer en fonction de la situation : la page demandée a bien été trouvée, elle a disparu, elle est déplacée, elle est indisponible, etc.

Même si ça peut paraitre compliqué ou anecdotique par certains, il est très important de s'assurer que votre site renvoie les bons codes HTTP. Voici de quoi vous aider à y voir plus clair...

Accès rapide : définition, conseils pratiques, liste complète, 2xx, 3xx, 4xx, 5xx, FAQ

Qu'est-ce que les codes HTTP ?

Qu'est-ce qu'un code HTTP ?

Quand un internaute ou un crawler (par exemple Googlebot) cherche à accéder à une URL, le serveur web correspondant répond d'abord en indiquant un code de réponse, qu'on appelle code HTTP.

Vous connaissez sans doute la fameuse "erreur 404", mais ce n'est pas la seule ! A chaque situation spécifique, le serveur doit renvoyer le bon code HTTP.

Comment connaître le code HTTP d'une URL ?

Vous ne pouvez pas le voir sans utiliser d'outil ! Au passage, ce n'est pas parce qu'une page affiche en gros "404" que le code renvoyé est 404 (il faut le vérifier par un outil).

Je vous propose 3 outils pour vous aider :

Pour tester le code HTTP d'une seule URL utilisez cet outil WebRankInfo

Mais si le référencement compte pour vous, il faut vous assurer d'avoir vérifié le code de 100% des URL accessibles sur votre site. N'allez pas faire ça à la main ou URL par URL...

Pour tester le code HTTP de toutes les URL trouvables sur un site lancez un audit RM Tech
Pour tester le code HTTP d'une liste d'URL (sitemap, CSV, etc.) lancez un audit RM Sitemaps

Je vous propose également la documentation officielle du W3C sur les codes HTTP.

Résumé : quel code renvoyer en fonction des cas ?

Je commence mes explications sous un angle résolument pratique (vous trouverez ensuite la liste complète de tous les codes).

Code quand tout va bien (200)

Si la page existe et qu'elle est effectivement accessible, il faut bien entendu renvoyer un code 200.

Code pour les redirections (301, 302)

Si une page a changé d'adresse (URL), voici le code à renvoyer :

  • 301 si la page a définitivement changé d'adresse. En théorie, il s'agit réellement d'un changement d'adresse, par exemple suite à la mise en place de la réécriture d'URL ou à un changement dans l'arborescence des répertoires. En pratique, on l'utilise aussi parfois pour rediriger une page qui a disparu vers une autre page du site, a priori une des plus pertinentes pour ne pas perturber l'internaute ; l'intérêt est de continuer de profiter des backlinks de cette page.
  • 302 si la page a temporairement changé d'adresse. Là aussi, en théorie cela ne doit concerner que les cas où une page est disponible à une autre adresse que celle de d'habitude. C'est-à-dire que cela ne devrait pas être utilisé pour rediriger vers une autre page. Ce type de redirection est en général mal pris en compte par les moteurs, en particulier un lien par redirection 302 n'est pas pris en compte comme un backlink (alors que c'est le cas avec une 301) : il faut donc éviter d'inscrire votre site dans des annuaires qui font des liens par redirection 302. Dernier détail : des ingénieurs de Google ont précisé qu'il ne faut utiliser le code 302 que pour le cas des pages dont le changement d'URL ne dure pas plus d'une semaine (si c'est plus long, ils recommandent la redirection 301).
  • 304 si la page n'a pas changé (depuis la dernier crawl de Google notamment). Dans ce cas, Googlebot (le robot de Google) ne viendra pas crawler à nouveau la page, ce qui économisera de la bande passante (à votre site et à Google) et pourra éventuellement en laisser plus pour le crawl des autres pages du site.

Code pour les erreurs côté client (404, 410)

Si une page n'existe pas ou plus, voici le code à renvoyer :

  • 404 si la page n'existe pas. Attention, il ne faut pas que votre site renvoie autre chose qu'un code 404 pour les pages qui n'existent pas, cela peut perturber un certain nombre d'outils, dont les Outils Google pour Webmasters. Enfin, sachez que l'analyse de vos erreurs 404 peut vous fournir des idées pour trouver des backlinks.
  • 410 si la page n'existe plus. C'est sans doute le meilleur code à renvoyer si vous voulez faire comprendre aux moteurs qu'une page qui existait jusqu'alors, n'existe plus et a été supprimée définitivement. Si vous renvoyez un code 404 à la place, il peut se passer de nombreux mois avant que les moteurs la suppriment de leur index (c'est flagrant avec Bing qui peut conserver pendant 6 mois des pages pourtant supprimées de votre site).

Nous avons dans le forum WebRankInfo une discussion à propos des codes HTTP adaptés aux pages supprimées.

Code 503 pour un serveur en maintenance

Si votre serveur est en surcharge ou votre site en travaux, renvoyez un code 503. Il indique aux robots que votre site est temporairement inaccessible et qu'il faudra donc revenir peu après.

Si vous connaissez la durée de cette maintenance, indiquez-la dans le code Retry-After de l'entête HTTP (à ne pas confondre avec la balise meta revisit-after qui n'a d'ailleurs jamais existé).

Liste des codes HTTP, avec leur signification

Les 5 familles de codes HTTP

Les codes peuvent être classés en familles :

  • 1xx : information (100 et 101)
  • 2xx : succès (200 à 206)
  • 3xx : redirection (300 à 307)
  • 4xx : erreur sur la page, côté client (400 à 417)
  • 5xx : erreur sur le serveur (500 à 505)

Codes 1xx

  • 100 : OK pour continuer
  • 101 : le serveur a changé de protocoles

Codes 2xx

  • 200 : requête effectuée avec succès
    • c'est le code que doit renvoyer votre serveur pour chaque URL que vous souhaitez rendre accessible
  • 201 : document créé (raison : nouvelle URI)
  • 202 : requête achevée de manière asynchrone (TBS)
  • 203 : requête achevée de manière incomplète
  • 204 : aucune information à renvoyer
  • 205 : requête terminée mais formulaire vide
  • 206 : requête GET incomplète

Codes 3xx

  • 300 : le serveur ne peut pas déterminer le code de retour
  • 301 : document déplacé de façon permanente
  • 302 : document déplacé de façon temporaire
    • sauf cas très particulier, je déconseille d'utiliser la 302
  • 303 : redirection avec nouvelle méthode d'accès
  • 304 : le document n'a pas été modifié depuis la dernière fois (cf. champ 'if-modified-since')
  • 305 : redirection vers un proxy spécifié par l'entête
  • 307 : redirection temporaire (exemple : code renvoyé avec HSTS pour forcer HTTPS)
  • 310 : trop de redirections (en général boucle de redirections)

Codes 4xx

  • 400 : erreur de syntaxe dans l'adresse du document
  • 401 : pas d'autorisation d'accès au document
  • 402 : accès au document soumis au paiement
  • 403 : accès au serveur refusé (contrairement à l'erreur 401, s'authentifier ne fera aucune différence)
  • 404 : la page demandée n'existe pas.
    • Attention, Google reviendra souvent la crawler à nouveau pour voir si elle est de nouveau accessible. Si vous souhaitez désindexer une page, suivez plutôt mon tuto.
  • 405 : méthode de requête du formulaire non autorisée
  • 406 : requête non acceptée par le serveur (la ressource demandée n'est pas disponible dans un format qui respecterait les en-têtes "Accept" de la requête)
  • 407 : autorisation du proxy nécessaire
  • 408 : temps d'accès à la page demandée expiré
  • 409 : l'utilisateur doit soumettre à nouveau avec plus d'infos
  • 410 : cette ressource n'est plus disponible (et aucune adresse de redirection n'est fournie)
    • Google indique traiter ce cas exactement comme une 404, mais pourtant on a l'impression que le traitement est plus rapide qu'avec une 404
    • L'avantage de renvoyer 410 plutôt que 404 quand vous supprimez une URL, c'est de ne pas mélanger : les 404 sont censées être des erreurs non voulues et les 410 des cas voulus
  • 411 : le server a refusé la requête car elle n'a pas de longueur
  • 412 : la précondition donnée dans la requête a échoué
  • 413 : l'entité de la requête était trop grande
  • 414 : l'URI de la requête était trop longue
  • 415 : type de média non géré
  • 416 : champs d’en-tête de requête « range » incorrect
  • 417 : comportement attendu et défini dans l’en-tête de la requête insatisfaisante
  • 418 : teapot : « Je suis une théière ». Ce code est défini dans la RFC 2324 datée du premier avril 1998
  • 421 : la requête a été envoyée à un serveur qui n'est pas capable de produire une réponse (par exemple, car une connexion a été réutilisée)
  • 450 : les outils de contrôle parental de Windows sont activés et bloquent l’accès à la page
  • 451 : la ressource demandée est inaccessible pour des raisons légales

Codes 5xx

  • 500 : erreur interne du serveur
  • 501 : fonctionnalité réclamée non supportée par le serveur
  • 502 : mauvaise passerelle d'accès
  • 503 : service non disponible ou en maintenance. C'est ce qu'il faut renvoyer pour toutes les URL de votre site qui sont en maintenance. Tout autre code renvoyé à ce moment peut dégrader votre référencement. Indispensable à un moment donné pendant une refonte.
  • 504 : temps d'accès à la passerelle expiré
  • 505 : version HTTP non gérée
  • 509 : utilisé par de nombreux serveurs pour indiquer un dépassement de quota

S'il manque quelque chose ou que tout n'est pas clair, posez votre question dans les commentaires !

La même liste en anglais : HTTP Status Codes (ou Error Codes ou Response Codes)

  • 200 : request completed
  • 201 : object created, reason = new URI
  • 202 : async completion (TBS)
  • 203 : partial completion
  • 204 : no info to return
  • 205 : request completed, but clear form
  • 206 : partial GET furfilled
  • 300 : server couldn't decide what to return
  • 301 : object permanently moved
  • 302 : object temporarily moved
  • 303 : redirection w/ new access method
  • 304 : if-modified-since was not modified
  • 305 : redirection to proxy, location header specifies proxy to use
  • 307 : HTTP/1.1: keep same verb
  • 400 : invalid syntax
  • 401 : access denied
  • 402 : payment required
  • 403 : request forbidden
  • 404 : object not found
  • 405 : method is not allowed
  • 406 : no response acceptable to client found
  • 407 : proxy authentication required
  • 408 : server timed out waiting for request
  • 409 : user should resubmit with more info
  • 410 : the resource is no longer available
  • 411 : the server refused to accept request w/o a length
  • 412 : precondition given in request failed
  • 413 : request entity was too large
  • 414 : request URI too long
  • 415 : unsupported media type
  • 500 : internal server error
  • 501 : required not supported
  • 502 : error response received from gateway
  • 503 : temporarily overloaded
  • 504 : timed out waiting for gateway
  • 505 : HTTP version not supported

Questions-réponses

Comment connaître le code HTTP d'une seule URL ?

En utilisant un outil qui analyse l'entête HTTP. Vous pouvez utiliser gratuitement celui disponible sur WebRankInfo.

Comment connaître le code HTTP d'une liste d'URL ?

En utilisant un outil qui accepte une liste (c'est souvent très limité) ou bien un crawler. En version complète (payante), essayez RM Sitemaps sur ma plateforme My Ranking Metrics.

Comment connaître le code HTTP de toutes les URL d'un site ?

En utilisant un crawler SEO. En version complète (payante), essayez RM Tech sur ma plateforme My Ranking Metrics, c'est un outil d'audit très complet.

Que veut dire HTTP en français ?

HTTP signifie Hypertext Transfer Protocol, soit en français Protocole de transfert hypertexte. Il s'agit du protocole de communication utilisé sur le web entre un client (navigateur, crawler) et un serveur.

Un code 404 peut-il pénaliser mon référencement ?

Oui et non ! Si un lien interne (entre 2 de vos pages) est cassé, qu'il pointe vers une URL en 404, alors c'est mauvais. Si un lien venant d'un autre site pointe vers une URL qui n'a jamais existé, cela ne nuit pas à votre site. Si ce lien venant de l'extérieur est de qualité et que l'URL de destination a juste une petite erreur, faites une redirection 301 pour profiter de ce lien.

Que signifie le code d'erreur 404 dans le protocole HTTP ?

Le code 404 signifie que l'URL n'a pas été trouvée : soit elle n'a jamais existé, soit elle n'existe plus. Vérifiez bien l'URL, le moindre caractère qui change peut générer l'erreur 404.

S'il manque quelque chose ou que tout n'est pas clair, posez votre question dans les commentaires !

Cet article vous a-t-il plu ?

Note : 4.8 (12 votes)
Cliquez pour voter !

Laisser un commentaire

Remarques :

  • Si vous souhaitez poser une question ou détailler un problème technique, il ne faut pas utiliser le formulaire ci-dessous qui est réservé aux avis. Posez votre question directement dans le forum Gmail de WebRankInfo. L'inscription est gratuite et immédiate.

  • En postant un avis, vous acceptez les CGU du site WebRankInfo. Si votre avis ne respecte pas ces règles, il pourra être refusé. Si vous indiquez votre adresse email, vous serez informé dès que votre avis aura été validé (ou refusé...) ; votre adresse ne sera pas utilisée pour vous envoyer des mailings et ne sera pas revendue ou cédée à des tiers.

7 commentaires

LiliB

Bonjour. Encore un topo intéressant.
J'ai constaté de mon côté une recrudescence des erreurs 408. Si je comprends bien le temps de chargement est trop long, c'est ça ? Du coup, l'internaute tombe-t-il sur une page blanche ou est-ce que tout ne se charge pas ? J'ai pourtant un serveur dédié et si j'ai 15 internautes en même temps, c'est la fête :-). Donc ces erreurs 408 m'angoissent un peu car j'ai remarqué depuis quelques jours une baisse des conversions et surtout plus d'abandons de paniers sur la page livraison. Pouvez-vous me dire si mes doutes sur cette erreur sont confirmés ? En gros : "c'est grave docteur ?" Merci pour vos bons conseils !

Répondre
Olivier Duffez

Si cette hausse des 408 s'accompagne d'une baisse des conversions et d'une hausse des abandons de panier, ça semble se confirmer en effet. Demandez à votre hébergeur ce qu'il en pense.

Répondre
NicolasP

Le code 404 étant très important!

Répondre
tryzer

Je ne comprends pas trop le sujet mais bon on a toujours besoin de rappel ;-)

Répondre
Nicolas

Bonjour, je rajouterais l'entête 307 en HTTP/1.1 pour le déplacement temporaire, et rappellerais également que ce protocole ne permet pas que de donner le statut d'un document mais aussi de donner une instruction sur la configuration de restitution du document. Ainsi, Expires, If-Modified-Since, Content-Type, Content-Language sont à correctement implémenter.

Répondre
Sun Location

Les codes HTTP sont très important si on veux pas perdre le positionnement ou l'indexation de ses pages lors d'un changement de nom de domaine par exemple...

Répondre
Nicolas F.

Je me permet d'ajouter l'outil indispensable pour les entêtes HTTP : LiveHTTPHeader, extension pour Firefox : addons.mozilla.org/fr/fir...

Répondre