401 Unauthorized — réponse HTTP

Comprenez la réponse HTTP 401 Unauthorized, sa différence avec 403 Forbidden, le traitement des pages protégées par Google et ses implications SEO.

Première publication : 28 juin 2026 · Dernière mise à jour : 22 août 2026 · Advanced
Langues
1 indice probant sur cette page

Une 401 signifie que la requête ne fournit pas d’identifiants d’authentification valides, contrairement à une 403 qui refuse l’accès malgré les identifiants fournis. Googlebot ne se connecte jamais : une page publique qui renvoie 401 n’est donc pas indexée, tandis qu’une page privée peut légitimement utiliser ce contrôle.

TL;DR — Une 401 Unauthorized est une erreur côté client (RFC 9110 §15.5.2, qui remplace la RFC 7235) : la requête ne fournit pas d’identifiants d’authentification valides, y compris lorsque des identifiants ont été envoyés puis refusés, et pas seulement lorsqu’ils n’ont jamais été envoyés. Une 401 conforme envoie aussi un en-tête WWW-Authenticate qui indique le schéma attendu. Elle diffère de la 403 (un refus qui n’exige pas ce défi et peut être sans rapport avec les identifiants), mais Google traite toutes les réponses 4xx sauf 429 de la même manière pour l’indexation : le contenu « n’existe pas », il n’est donc pas indexé et les URL déjà indexées disparaissent avec le temps. Comme Googlebot ordinaire n’envoie jamais d’identifiants, une 403 envoyée à Googlebot est — selon les propres mots de Google — généralement une mauvaise configuration du serveur. Les 401/403 n’ont aucun effet sur la fréquence d’exploration globale du site (mythe très répandu), même si une URL individuelle qui renvoie constamment une 4xx est réexplorée moins souvent avec le temps. Une 401 est la manière correcte, recommandée par Google, de protéger un contenu réellement privé ; elle ne pose problème que lorsqu’elle touche une page que vous voulez indexer. Pour les contenus payants, une solution approuvée existe et ne consiste pas à renvoyer une 401 générale.

Ce qu’est réellement une 401

401 Unauthorized est une réponse d’erreur côté client. La définition de MDN est la plus claire sur le plan technique :

“The HTTP 401 Unauthorized client error response status code indicates that a request was not successful because it lacks valid authentication credentials for the requested resource. This status code is sent with an HTTP WWW-Authenticate response header that contains information on the authentication scheme the server expects the client to include to make the request successfully.” (traduction) : « Le code d’état HTTP 401 Unauthorized indique qu’une requête a échoué parce qu’elle ne contient pas d’identifiants d’authentification valides pour la ressource demandée. Cette réponse est envoyée avec un en-tête WWW-Authenticate qui décrit le schéma d’authentification que le serveur attend du client. »

Evidence for this claim A 401 response means the request lacks valid authentication credentials and the response must include a WWW-Authenticate challenge. Scope: RFC 9110 defines the status semantics and required challenge header; it does not prescribe a site's authentication product or login flow. Confidence: high · Verified: IETF: RFC 9110 §15.5.2 — 401 Unauthorized

Deux éléments sont importants. D’abord, l’« authentification » signifie que le demandeur n’a pas prouvé son identité. Cela correspond généralement à des identifiants absents, invalides ou expirés, mais une 401 peut aussi suivre des identifiants qui ont été envoyés puis refusés : ne concluez donc pas à l’absence totale d’en-tête d’authentification sans examiner la requête. Ensuite, une 401 conforme à la spécification doit contenir un en-tête WWW-Authenticate — selon le §15.5.2 de la RFC 9110, qui remplace l’ancienne RFC 7235 — afin d’indiquer au client le ou les schémas attendus (authentification HTTP Basic, jeton Bearer, session par cookie, etc.). Pour diagnostiquer une 401, commencez par cet en-tête : est-il présent, et quel schéma nomme-t-il ? Evidence for this claim A 401 response means the request lacks valid authentication credentials and the response must include a WWW-Authenticate challenge. Scope: RFC 9110 defines the status semantics and required challenge header; it does not prescribe a site's authentication product or login flow. Confidence: high · Verified: IETF: RFC 9110 §15.5.2 — 401 Unauthorized

Dans mon propre guide des codes d’état, je résume la 401 ainsi : “the client hasn’t identified or verified itself when needed.” (traduction) : « le client ne s’est pas identifié ou vérifié lorsqu’il le fallait ». C’est toute l’idée : personne n’a encore prouvé qui il est.

401 ou 403 Forbidden : la distinction qui compte

C’est ici que beaucoup de personnes hésitent. Voici la distinction en une ligne :

  • 401 = « Qui êtes-vous ? » Les identifiants sont absents ou invalides ; authentifiez-vous et réessayez.
  • 403 = « Je sais qui vous êtes, mais non. » La requête a été comprise, mais l’accès est refusé quels que soient les identifiants.

MDN présente la distinction de la même manière :

“A 401 Unauthorized is similar to the 403 Forbidden response, except that a 403 is returned when a request contains valid credentials, but the client does not have permissions to perform a certain action.”* (traduction) : « Une 401 Unauthorized ressemble à une réponse 403 Forbidden, sauf qu’une 403 est renvoyée lorsqu’une requête contient des identifiants valides mais que le client n’a pas l’autorisation d’effectuer une action donnée. »

Dans mon propre guide, je formule le même contraste : une 401 signifie que « le client ne s’est pas identifié ou vérifié lorsqu’il le fallait », tandis qu’une 403 signifie que « le client est connu mais ne dispose pas des droits d’accès ». Il s’agit de l’authentification contre l’autorisation.

Cette formule est un bon raccourci, mais le test de protocole est plus précis si vous devez choisir entre les deux codes dans une règle de code ou de WAF : une 401 exige le défi WWW-Authenticate — la RFC 9110 le rend obligatoire — alors qu’une 403 n’en exige pas, car un refus 403 peut venir de raisons sans rapport avec les identifiants (blocage d’IP, règle de permission ou politique de limitation). La simple présence d’identifiants ne suffit donc pas à les distinguer : une 401 peut suivre des identifiants refusés, et pas seulement leur absence. Demandez plutôt : suis-je en train de lancer un défi d’authentification (401) ou de prononcer un refus direct (403) ?

Voici la nuance SEO moins évidente, et le point soulevé par Google au sujet de la 403. Googlebot ordinaire n’envoie jamais d’identifiants. Une 403 servie spécifiquement à Googlebot signifie donc, selon Google, que le serveur se trompe :

D’après Google, une réponse HTTP 403 indique ici que l’agent utilisateur a fourni des identifiants sans obtenir l’accès. Comme Googlebot ne fournit jamais d’identifiants, le serveur lui renvoie alors cette erreur à tort et la page ne sera pas indexée.

C’est un diagnostic utile. Une 401 pour Googlebot peut être intentionnelle (la page est protégée par conception). Une 403 pour Googlebot indique généralement une mauvaise configuration : Googlebot n’a pas envoyé d’identifiants, donc rien ne devrait déclencher une réponse disant que les identifiants ont été refusés. Si des pages que Googlebot devrait atteindre renvoient 403, examinez d’abord votre CDN, votre WAF ou la configuration du serveur. Cela décrit les robots d’exploration courants de Google ; Google documente séparément certains robots spécialisés et récupérateurs déclenchés par l’utilisateur, avec leurs propres comportements. N’étendez pas la règle « n’envoie jamais d’identifiants » à toutes les intégrations Google sans vérification.

401 Unauthorized403 Forbidden
SignificationIdentifiants absents ou invalides — « qui êtes-vous ? »Requête comprise mais accès refusé — « je sais qui vous êtes, non »
En-tête requisWWW-Authenticate (RFC 9110)Aucun requis
Déclencheur courantBarrière de connexion, jeton expiré, Basic Auth, expiration de sessionRègles de permission, blocage IP/géographique, règles WAF, restriction de répertoire
Pour GooglebotPeut être intentionnelle (page protégée)Généralement une mauvaise configuration (Googlebot n’envoie pas d’identifiants)
Résultat d’indexationNon indexée ; disparaît avec le tempsNon indexée ; disparaît avec le temps

La dernière ligne est le point essentiel : pour l’indexation, Google traite les deux réponses de manière identique.

Comment Google traite les pages en 401

La documentation de Google sur les codes d’état HTTP est claire au sujet de la famille 4xx :

“Google doesn’t use the content from URLs that return 4xx status codes. If a URL was previously used but is now returning 4xx status code, Google systems will stop using the URL over time. In the case of Google Search, Google doesn’t index URLs that return a 4xx status code, and URLs that are already indexed and return a 4xx status code are removed from the index.”* (traduction) : « Google n’utilise pas le contenu des URL qui renvoient des codes d’état 4xx. Si une URL utilisée auparavant renvoie désormais un code 4xx, les systèmes de Google cessent progressivement de l’utiliser. Dans Google Search, les URL renvoyant un 4xx ne sont pas indexées et celles déjà indexées sont retirées de l’index. » Evidence for this claim Google does not index 4xx URLs and removes already-indexed 4xx URLs over time. Scope: Google's crawler documentation supports the Search indexing outcome for 401 responses; it does not address access decisions for private users. Confidence: high · Verified: Google: How HTTP status codes affect Google's crawlers

La 401 n’est pas une exception dans cette famille. Dans le tableau du document, 401 (unauthorized) et 403 (forbidden) sont deux lignes distinctes qui partagent la même explication :

“All 4xx errors, except 429, are treated the same: Google crawlers inform the next processing system that the content doesn’t exist.”* (traduction) : « Toutes les erreurs 4xx, sauf 429, sont traitées de la même manière : les robots de Google informent le système de traitement suivant que le contenu n’existe pas. »

Le résultat est donc binaire, pas une rétrogradation. Une page en 401 ne « se classe pas moins bien » : elle n’est pas indexée du tout, ou elle est entièrement retirée si elle l’était auparavant. Il n’existe pas de pénalité partielle. Cela correspond à l’affirmation de base de mon guide des codes d’état : les 4xx font sortir les pages de l’index. Cet article en propose l’analyse spécifique à la 401.

Une nuance concerne le délai : la suppression se produit « avec le temps », et non à la première récupération défaillante. La documentation de Google décrit un processus progressif ; le système d’exploration tolère historiquement les erreurs de courte durée avant de considérer une URL comme réellement disparue.

Le mythe de la fréquence d’exploration : la 401 ne ralentit PAS l’exploration

Cette affirmation se glisse dans de nombreux articles pourtant solides ; soyons précis. Une 401 (ou une 403) ne ralentit pas la fréquence d’exploration de Google. Google le dit directement :

“Don’t use 401 and 403 status codes for limiting the crawl rate. The 4xx status codes, except 429, have no effect on crawl rate.”* (traduction) : « N’utilisez pas les codes d’état 401 et 403 pour limiter la fréquence d’exploration. Les codes 4xx, sauf 429, n’ont aucun effet sur cette fréquence. »

C’est important, car vous verrez parfois qu’une barrière 401 « économise le budget d’exploration » ou le « gaspille » : ces deux formulations sont fausses. Seuls 429 et les signaux de type 5xx comme 503 demandent à Googlebot de ralentir. Une 401 n’est pas un mécanisme de limitation ; pour l’indexation, elle signale simplement que le contenu n’existe pas. Pour ralentir temporairement l’exploration, utilisez 429/503, pas 401/403.

Une précision de portée est nécessaire, car ces deux affirmations sont faciles à confondre : « aucun effet sur la fréquence d’exploration » concerne la fréquence globale de votre site. Par ailleurs, Google indique qu’une URL individuelle qui continue à renvoyer une 4xx est réexplorée moins souvent au fil du temps : sa fréquence de nouvelle tentative baisse progressivement. Le budget d’exploration global du site n’est pas limité, mais une URL qui renvoie durablement 401 est effectivement vérifiée moins souvent.

Il existe aussi un cas particulier : une 401 sur une page ordinaire et une 401 sur /robots.txt ne sont pas traitées de la même façon. Si le fichier robots.txt renvoie une 4xx autre que 429 (y compris 401), Google considère qu’il n’existe pas du tout et suppose qu’aucune restriction d’exploration ne vient de ce fichier. Ne placez donc pas /robots.txt derrière la même barrière d’authentification que vos pages privées.

Une 401 est-elle toujours un problème ? Non.

Une 401 n’est un bug que lorsqu’elle est involontaire sur une page que vous voulez publique. Lorsqu’une page est réellement privée, la 401 est la bonne manière de la tenir à l’écart de la recherche, et c’est ce que recommande Google. John Mueller l’a formulé ainsi (propos rapportés par Search Engine Journal) : l’authentification côté serveur qui empêche les utilisateurs ordinaires de voir le contenu — “that would include GoogleBot” (traduction) : « cela inclurait GoogleBot » — est l’approche idéale. (Propos rapportés par Search Engine Journal depuis un échange Google de 2019 ; il s’agit d’une reformulation fidèle, pas d’une citation vérifiée fragment par fragment.)

L’authentification côté serveur (celle qui produit une 401) est le mécanisme recommandé pour cacher un contenu non public, avant robots.txt, précisément parce qu’elle bloque réellement l’accès au lieu de demander seulement aux robots de rester à l’écart.

Le cadre de décision est donc simple :

  • Doit rester en 401 : environnements de test, espaces réservés aux membres, outils internes et tout contenu réellement privé. Le comportement est conforme à la conception ; ne le « corrigez » pas.
  • Doit être corrigée : page publique et indexable qui renvoie 401 par accident — faux positif CDN/WAF, Basic Auth oubliée, jeton expiré ou conflit de plugin/middleware.

Conséquences SEO et piège du « chez moi, ça fonctionne »

Les échecs pratiques les plus fréquents :

  • Les pages que vous voulez indexer restent invisibles tant que la barrière n’est pas retirée.
  • Les pages auparavant bien classées disparaissent si elles commencent à renvoyer 401.
  • Le piège du « chez moi, ça fonctionne » : la personne qui teste est authentifiée, connectée ou sur une IP autorisée ; le robot ne l’est pas. La recommandation de Google pour le cas 401 est : “You can verify this error by visiting the page in incognito mode.” (traduction) : « Vous pouvez vérifier cette erreur en visitant la page en mode incognito. » Mieux encore, testez sans authentification avec curl -I https://example.com/page ou utilisez l’inspection d’URL / le test en direct de Search Console.

Lorsque vous devez effectivement laisser passer un robot réel, vérifiez-le par IP et DNS inversé, jamais en vous fiant au seul user-agent : ces chaînes sont faciles à usurper, et autoriser « Googlebot » sur son seul nom est une faille de sécurité, pas une correction.

Qu’en est-il des contenus payants ou réservés aux abonnés ?

Renvoyer une 401 à tout le monde (Googlebot compris) n’est pas votre seule option si vous voulez qu’un contenu protégé puisse encore être classé. Google prend en charge l’indexation des contenus payants avec les données structurées isAccessibleForFree, associées à un accès accordé aux identités de robots Google prévues pour les contenus abonnés ou enregistrés. Le rôle du balisage est le suivant :

“This structured data helps Google differentiate paywalled content from the practice of cloaking, which violates spam policies.”* (traduction) : « Ces données structurées aident Google à distinguer le contenu payant de la pratique du cloaking, qui enfreint les règles contre le spam. »

La réserve est claire : servir silencieusement le contenu complet à Googlebot seulement, sans le déclarer dans les données structurées, constitue du cloaking et crée un risque au regard des règles anti-spam. Si vous voulez indexer un contenu protégé, utilisez la voie prévue (balisage et accès du robot), pas un contournement discret.

Comment corriger une 401 indésirable

  1. Confirmez qu’elle est réellement indésirable. La page doit-elle être publique ? Si elle concerne un environnement de test ou des membres, rien n’est à corriger.
  2. Supprimez l’exigence d’authentification sur les pages publiques : retirez la Basic Auth restante (.htaccess/nginx), corrigez les jetons expirés et résolvez les conflits de plugin ou de middleware.
  3. Vérifiez votre CDN/WAF et ne supposez pas connaître la couche qui a émis la 401. La réponse et son en-tête WWW-Authenticate prouvent qu’un défi a eu lieu, mais pas son origine : application, proxy d’identité/authentification, règles de gestion des robots du CDN/WAF et serveur d’origine peuvent tous en produire un. Les faux positifs des règles edge sont fréquents ; examinez les journaux de chaque couche et vérifiez Googlebot par DNS inversé avant toute autorisation.
  4. Laissez passer les robots vérifiés par IP/DNS inversé, pas par user-agent.
  5. N’utilisez pas la 401 pour désindexer une page qui pourrait être publique : utilisez plutôt noindex tout en autorisant l’exploration. La barrière de connexion est destinée au contenu réellement privé.
  6. Validez la correction avec le test en direct de l’inspection d’URL, mais considérez une réussite comme la confirmation de la récupération actuelle, pas comme une garantie. Google ne promet ni délai fixe de nouvelle exploration, ni délai fixe de réindexation ou de retour au classement après une 401. Laissez le temps agir et revérifiez le rapport d’indexation au lieu d’attendre une inversion instantanée.

Pour le flux complet de diagnostic, correction et validation dans Google Search Console concernant l’état d’indexation « Bloquée en raison d’une requête non autorisée (401) », consultez l’article compagnon dédié ; celui-ci reste au niveau du protocole et des concepts.

Bing

Bing se comporte de manière comparable : une URL qui renvoie 401 (ou 403) à Bingbot est inaccessible et ne sera pas indexée. Bingbot a besoin d’un accès sans authentification comme Googlebot ; vérifiez-le à partir des plages d’IP publiées par Bing pour l’autorisation, et non au moyen du user-agent.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.