303 Voir Autre (redirection)

Ce qu’est une redirection 303 Voir Autre, le modèle Post/Redirect/Get qu’elle permet, pourquoi elle transforme la requête en GET ou HEAD (contrairement à 307), sa différence avec 302 et pourquoi Google et Bing publient presque aucune recommandation SEO spécifique aux 303.

Première publication : 2 juil. 2026 · Dernière mise à jour : 22 août 2026 · Advanced
Langues

Une réponse 303 Voir Autre est une redirection temporaire qui demande au client de récupérer une autre URL avec GET ou HEAD, quelle que soit la méthode initiale. Le modèle Post/Redirect/Get consiste à envoyer un formulaire en POST, recevoir une 303 vers une page GET, puis actualiser sans renvoyer le POST. Contrairement à 307, une 303 change la méthode ; contrairement à 302, son comportement est explicite. En SEO, Google la classe dans le groupe 3xx temporaire avec 302 et 307, sans recommandation dédiée aux 303 de Google ou Bing. Si elle apparaît en SEO, elle est traitée comme une 302/307.

TL;DR — Une 303 (HTTP « 303 See Other ») est une redirection temporaire dont le comportement distinctif consiste à demander au client de récupérer une autre ressource avec GET ou HEAD, quelle que soit la méthode initiale. C’est ce qui permet le modèle Post/Redirect/Get (PRG) : POST303 → page de résultat en GET, afin qu’une actualisation recharge la page au lieu de renvoyer le formulaire. Une 307 conserve toujours la méthode et une 302 avait historiquement un comportement ambigu. La 303 est donc rare comme redirection SEO de page à page : c’est un mécanisme d’application, pas un outil de migration d’URL. Google ne documente la 303 que dans le groupe 3xx « temporaire » avec 302 et 307 ; Bing ne publie pas non plus de recommandation spécifique trouvée ici. Ne fabriquons pas une autorité absente : il y a simplement peu à dire.

Qu’est-ce qu’une 303 exactement ?

Une 303 est un code d’état HTTP renvoyé dans les en-têtes de réponse, avant le corps, avec un en-tête Location qui indique l’URL à récupérer ensuite. Sa sémantique est étroite : la réponse à votre requête se trouve ailleurs et vous devez la récupérer avec GET ou HEAD. Evidence for this claim RFC 9110 defines 303 See Other as directing the client to retrieve another resource identified by Location using GET or HEAD. Scope: HTTP semantics for 303 responses. Confidence: high · Verified: IETF: RFC 9110 §15.4.4 — 303 See Other

Ce comportement de récupération en GET ou HEAD est précisément la raison d’être de la 303 comme code distinct. C’est l’axe sur lequel se distinguent les trois redirections temporaires.

303, 302 et 307 : la question de la méthode

Du point de vue SEO, les trois codes sont « temporaires » et Google les regroupe comme des signaux faibles. Techniquement, ils répondent différemment à une question : quelle méthode HTTP le client utilise-t-il lorsqu’il suit la redirection ?

CodeSignificationMéthode de la requête redirigée
302 FoundTemporaireHistoriquement ambiguë : de nombreux clients passaient de POST à GET, sans garantie de la spécification
303 See OtherVoir Autre (temporaire)GET ou HEAD : la méthode initiale est volontairement modifiée
307 Temporary RedirectTemporaireToujours conservée : un POST reste un POST et un PUT reste un PUT

Les codes 303 et 307 ont notamment été introduits pour lever l’ambiguïté autour de 302. Si vous voulez forcer GET après l’envoi d’un formulaire, utilisez 303. Si vous devez conserver la méthode initiale, par exemple pour renvoyer un POST vers un nouveau point de terminaison, utilisez 307. La 302 reste le milieu historique qui ne fixe pas clairement le comportement.

Une autre différence pratique est que les réponses 303 ne sont pas cacheables par défaut, contrairement à une 301. La ressource cible possède ensuite sa propre politique de cache ; le navigateur ou le CDN ne devrait pas mettre en cache la redirection de manière inattendue.

Le modèle Post/Redirect/Get, précisément

Le PRG est l’usage canonique d’une 303 : c’est un modèle de conception volontaire et correct, pas un état d’erreur.

  1. Le client envoie un formulaire en POST : création d’une commande, commentaire ou paiement.
  2. Le serveur traite l’effet de bord puis renvoie 303 See Other avec un en-tête Location vers une URL de résultat récupérable en GET : reçu, confirmation ou vue actualisée de la ressource.
  3. Le client suit avec un GET (ou un HEAD). L’historique et le bouton d’actualisation pointent désormais vers une récupération sûre et idempotente.

L’avantage est qu’une actualisation ordinaire ne renvoie plus le formulaire et n’affiche plus la boîte de dialogue « confirmer le renvoi du formulaire ». Il faut néanmoins préciser ce que le PRG ne fait pas : il bloque ce parcours de rejeu précis, pas toutes les écritures en double et ne garantit pas le traitement exactement une fois. Les reprises, délais, doubles clics et requêtes concurrentes peuvent encore exécuter deux fois le POST initial ; toute opération qui modifie l’état doit donc prévoir des clés d’idempotence, des transactions et une détection des doublons. Dans les API REST, une 303 peut aussi suivre un PUT ou un DELETE pour envoyer le client vers la représentation de la ressource concernée.

Comment Google traite les 303 (et pourquoi il y a si peu à traiter)

Le constat central est honnête : Google n’a pas de recommandation SEO spécifique aux 303. Le code figure dans la documentation des redirections, dans le tableau « temporaire » à côté de 302 et 307. Google indique que le robot suit la redirection, mais que le pipeline d’indexation n’utilise pas la redirection seule comme signal indiquant que la cible doit être canonique ; d’autres signaux peuvent toutefois faire indexer cette cible. C’est plus limité que la canonicalisation forte fournie par une 301 permanente. Evidence for this claim Google groups HTTP 303 with temporary redirects, follows it, and does not use it as a signal that the destination should become canonical. Scope: Google Search canonicalization behavior for server-side temporary redirects. Confidence: high · Verified: Google: Redirects and Google Search

Le billet informel de John Mueller sur les types de redirection est encore plus révélateur. Après avoir détaillé 301, 302 et 307, il écarte la 303 dans une remarque : “What about 303? 304.5? If you have strong feelings about one of the other kinds of redirects, feel free to use them.” (traduction) « Et la 303 ? 304,5 ? Si vous avez une préférence marquée pour un autre type de redirection, utilisez-le. » Il ajoute l’idée pratique suivante : “We’ll have to figure out which URL to index the content under, so if you have strong feelings about that too, make sure to follow up with other canonicalization signals.” (traduction) « Nous devrons déterminer sous quelle URL indexer le contenu ; si cela compte pour vous, complétez avec d’autres signaux de canonicalisation. » Si vous utilisez une 303 et que l’URL indexée importe, appuyez-vous donc aussi sur rel="canonical", les liens internes et les sitemaps.

Google rappelle aussi que, même si ces codes sont traités de la même manière, ils restent sémantiquement différents : “keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect.” (traduction) « Gardez à l’esprit qu’ils sont sémantiquement différents. Utilisez le code adapté à la redirection. » L’absence d’effet SEO spécifique n’autorise donc pas à employer une 303 pour un déplacement permanent ; choisissez le code qui correspond à l’intention réelle afin que les autres clients se comportent correctement.

Comment Bing traite les 303

Je n’ai pas trouvé de recommandation publique de Bing consacrée au traitement des 303, au-delà de références générales aux codes d’état HTTP dans l’aide de Bing Webmaster Tools. Aucune déclaration vérifiée de Fabrice Canel ou d’un autre représentant de Microsoft ne distingue la 303. C’est une donnée légitime — nous ne disposons pas de documentation — et non une lacune à combler en supposant que Bing reproduit le comportement décrit par Google. L’absence de documentation ne prouve pas que le traitement est identique ; pour Bing, la réponse définitive reste une question ouverte.

Une 303 compte-t-elle pour le SEO ? Rarement.

Le bilan pratique est le même que dans mes textes publics : une 303 n’est pas un outil de migration de page. Dans 11 types de redirections et leur impact SEO, je l’ai écrit ainsi : “A 303 redirect forwards the user to a resource similar to the one requested and is a temporary form of redirect. It’s typically used for things like preventing form resubmissions when a user hits the ‘back’ button in their browser. You won’t typically see 303 redirects used for SEO purposes, but if you do then it will be treated just like a 302/307.” (traduction) « Une 303 envoie l’utilisateur vers une ressource similaire et constitue une redirection temporaire. Elle sert notamment à éviter le renvoi d’un formulaire lorsque l’utilisateur revient en arrière ; si elle apparaît en SEO, elle est traitée comme une 302 ou une 307. »

Je dois aussi signaler une tension honnête dans un ancien texte. Dans Codes d’état HTTP et leur impact SEO, j’avais décrit le traitement d’une 303 comme “undefined… They may be treated as 301 or 302, depending on how they function.” (traduction) « indéfini… Elles peuvent être traitées comme 301 ou 302 selon leur fonctionnement. » Je le formulerais aujourd’hui plus précisément : la documentation de Google place la 303 dans le groupe temporaire et faible avec 302 et 307. Le terme « indéfini » venait de la rareté des 303 et de l’absence de précisions sur les cas limites, pas d’un comportement caché plus fort. Commencez par le comportement documenté ; attribuez les surprises éventuelles à la rareté du code.

Le cas où la 303 compte vraiment concerne surtout les parcours de formulaire, de paiement et les applications pilotées par API où elle apparaît dans un crawl de codes d’état. Même là, la réponse est généralement « c’est prévu, laissez-la en place ». Pour déplacer volontairement une URL, utilisez 301 (permanente) ou 302 (temporaire), et 308/307 si vous devez préserver la méthode.

303 contre 201, 202 et 204 : choisir le bon statut après une écriture

La 303 n’est pas la seule réponse possible après une requête qui modifie l’état. Dans une API, trois codes 2xx sont parfois plus adaptés :

  • 201 Created : la requête a créé une ou plusieurs ressources de façon synchrone. La réponse doit identifier la ressource principale, dans Location si cet en-tête est fourni, sinon avec l’URI cible. Utilisez ce code lorsque la création est finie et que le client peut recevoir directement la nouvelle ressource.
  • 202 Accepted : la requête est acceptée, mais le traitement n’est pas terminé, par exemple pour une file de tâches ou un travail asynchrone. Indiquez l’état actuel et, idéalement, un moniteur que le client peut interroger.
  • 204 No Content : l’action a réussi et il n’y a rien d’autre à renvoyer. Il n’y a ni corps ni redirection ; la réponse s’arrête aux en-têtes.

La 303 correspond à une forme différente : le client doit récupérer, après l’écriture, une ressource de résultat identifiée séparément, le plus souvent dans un parcours PRG de navigateur. Elle ne remplace ni la création synchrone (201), ni l’acceptation asynchrone (202), ni la réussite sans contenu (204).

Mythes courants

  • « Une 303 signifie que la page a déménagé ou est cassée. » Non. C’est une réponse volontaire qui change la méthode, souvent après POST, PUT ou DELETE, pas un signal de contenu déplacé ou une erreur.
  • « Une 303 transmet la valeur SEO d’une 301. » Non. Google la range dans le groupe temporaire et faible avec 302 et 307.
  • « Les référenceurs devraient utiliser 303 comme redirection générale. » Non. C’est un mécanisme ciblé pour les formulaires et les API ; son usage pour une migration ordinaire est inhabituel.
  • « Google a publié des règles détaillées propres aux 303. » Non. Il n’existe qu’une mention groupée, et le billet de Mueller se résume à « utilisez-les si vous le souhaitez ».
  • « 303 et 302 sont techniquement identiques. » Leur traitement SEO peut être regroupé, mais une 303 transforme la requête de suivi en GET ou HEAD, tandis que le comportement d’une 302 était historiquement ambigu ; c’est précisément pourquoi 303 et 307 ont été introduites.

Où se situe cette redirection ?

La 303 appartient au voisinage des redirections temporaires. Sa proche parente est la 302, redirection temporaire souple avec laquelle elle est souvent regroupée ; la 307 est son opposée qui préserve la méthode : 307 la conserve, 303 passe à GET ou HEAD. La 301, elle, est permanente et réalise le travail de migration d’URL pour lequel une 303 n’a pas été conçue. Pour la famille complète — 301/308 permanentes, 302/303/307 temporaires, 404/410 absentes et erreurs 5xx — consultez le cluster des codes d’état HTTP auquel appartient cette page.

Vérifier un parcours 303 en toute sécurité

Avant de faire confiance à une 303 en production, inspectez-la sans suivre aveuglément : examinez la valeur de Location (absolue, relative, résoluble), recherchez les boucles et chaînes inutiles, confirmez que la requête de suivi utilise GET ou HEAD, puis vérifiez le statut et le contenu de la réponse finale. Pour un formulaire ou un parcours d’API, consultez aussi les journaux afin de confirmer que l’écriture initiale n’a pas été rejouée.

Ne généralisez pas le comportement d’un seul client. Le suivi automatique varie selon le navigateur, le client HTTP, le framework, la version et la configuration ; un rapport sur une version précise ne prouve rien pour toutes les autres. Un vérificateur d’URL confirme la redirection et la forme de la destination, mais pas l’idempotence, la gestion des identifiants ou la sécurité inter-origines : ces points exigent un test du parcours réel.

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.