Glossaire

Comptez chaque saut de chaîne de redirections avant votre page

Taras Shynkarenko
Taras Shynkarenko
•Mis à jour : •9 min de lecture
Comptez chaque saut de chaîne de redirections avant votre pageComptez chaque saut de chaîne de redirections avant votre page

TL;DR, Réponse Rapide

9 min de lecture

Deux réponses HTTP 3xx ou plus entre le lien et la page forment une chaîne de redirections. Les navigateurs qui suivent le Fetch Standard abandonnent à 20 sauts, les robots de Google en suivent 10 par défaut, et Google demande de ne pas dépasser trois. Les plateformes sociales dépensent des sauts avant que vous n'en ayez un : X emballe tout dans t.co, l.facebook.com répond par un 302 vers une deuxième page d'avertissement Facebook, et pin.it répond par un 308 vers api.pinterest.com. Le fragment survit à un saut par spécification, la query string seulement si le serveur qui redirige la recopie.

Qu'est-ce qu'une chaîne de redirections ?

Deux réponses HTTP 3xx ou plus placées entre le lien qu'un lecteur touche et la page qui finit par s'afficher forment une chaîne de redirections, et chaque saut coûte une résolution DNS, une connexion TCP et un handshake TLS avant qu'un seul octet de votre page n'arrive.

Une redirection isolée n'est pas une chaîne. Si http://example.com/sale répond 301 avec Location: https://example.com/sale, c'est un saut unique, et c'est le prix de HTTPS. La chaîne commence quand le raccourcisseur redirige vers le traqueur, le traqueur vers la version www, la version www vers la version à barre oblique finale, et que cette dernière sert enfin du HTML. Quatre sauts, une page.

RFC 9110 définit la classe 3xx et énumère les codes qui portent un en-tête Location : 301 Moved Permanently, 302 Found, 303 See Other, 307 Temporary Redirect et 308 Permanent Redirect. La spécification demande aux clients de « detect and intervene in cyclical redirections » mais ne fixe aucun maximum, et ajoute une note rappelant qu'une version antérieure de la spécification « recommended a maximum of five redirections » et que « some clients might implement such a fixed limitation. »

Que coûte chaque saut d'une chaîne de redirections ?

Chaque saut coûte un aller-retour complet vers un serveur qui ne renvoie aucun contenu, plus une résolution DNS et un handshake TLS nouveaux dès que le saut passe à un nom d'hôte auquel le navigateur n'est pas déjà connecté. Un raccourcisseur, un shim de lien et votre propre site sont trois noms d'hôte différents : une chaîne de trois sauts signifie donc en général trois handshakes.

Les en-têtes sautent aussi. RFC 9110 demande à un agent utilisateur qui suit automatiquement une redirection de retirer les « resource-specific header fields, including (but not limited to) Referer, Origin, Authorization, and Cookie. » L'agent utilisateur les remplace par des valeurs adaptées à la nouvelle requête, si bien qu'il faut une politique de referrer ou un passage de HTTPS à HTTP dans la chaîne pour qu'un clic atterrisse dans le trafic direct au lieu d'être attribué au réseau qui l'a envoyé.

Les robots paient une autre facture. La documentation d'exploration de Google indique que « any content Google receives from the redirecting URL is ignored, and the final target URL's content is processed instead » : chaque saut intermédiaire est donc une requête qui ne produit rien d'indexable tout en entamant ce que Google accepte d'explorer sur votre site.

Combien de redirections un navigateur ou un robot suit-il ?

Les navigateurs s'arrêtent à 20 et les robots de Google à 10. Les deux chiffres viennent de deux spécifications différentes et aucun n'est un objectif à viser.

ClientLimite documentéeSource
Navigateurs qui implémentent le Fetch Standard« If request's redirect count is 20, then return a network error. »Fetch Standard, HTTP-redirect fetch
Robots de Google« By default, Google's crawlers follow up to 10 redirect hops. However, specific products' crawlers may have different limits. »Google crawling infrastructure, HTTP status codes
Tout client HTTPAucun maximum dans la spécification actuelle ; une note conserve l'ancienne recommandation de cinq du RFC 2068RFC 9110 section 15.4

Le conseil de Google reste très en dessous de sa propre limite. Le guide de déménagement de site dit de « keep the number of redirects in the chain low, ideally no more than 3 and fewer than 5 », parce que « chaining redirects adds latency for users, and not all user agents and browsers support long redirect chains. »

Un panneau routier pointant dans plusieurs directions illustre les sauts supplémentaires ajoutés par le shim de lien d'une plateforme avant que le lecteur n'atteigne la destination.

Pourquoi les liens sociaux ajoutent-ils des sauts que vous n'avez pas créés ?

Les plateformes insèrent leurs propres sauts avant le vôtre, et sur la plupart des réseaux vous ne pouvez pas refuser. C'est la partie de la chaîne à budgéter plutôt qu'à corriger.

X est le cas le plus franc. Son centre d'aide indique que les liens partagés sur X « will automatically be processed and shortened to an http://t.co link », et répond directement à la question du refus : « You cannot opt out of link shortening. » Chaque post démarre donc à un saut avant que votre serveur ne soit contacté, et l'habillage t.co compte toujours pour 23 caractères quelle que soit la longueur de l'URL d'origine.

Facebook et Pinterest font la même chose avec une autre mécanique. Vérifié le 12 septembre 2026 :

ShimRequêteRéponseSaut suivant
Facebookhttps://l.facebook.com/l.php?u=https%3A%2F%2Fexample.com%2F302https://www.facebook.com/flx/warn/?u=...&h=...
Pinteresthttps://pin.it/<code>308https://api.pinterest.com/url_shortener/<code>/redirect/

Ces deux sauts se déroulent entièrement à l'intérieur de la plateforme. Le shim Facebook ne redirige même pas vers votre site à la première réponse : il redirige vers une deuxième URL Facebook, qui redirige ensuite plus loin. Le domaine court de Pinterest passe la main à un hôte d'API avant que la destination ne soit résolue. Aucun de ces sauts n'est à vous pour le raccourcir, et c'est tout l'argument contre l'empilement d'un bit.ly par-dessus.

Viennent ensuite les sauts que vous contrôlez : un raccourcisseur de marque, un traqueur de clics d'automatisation marketing, un redirecteur d'affiliation, un passage de http à https, une canonicalisation www et une règle de barre oblique finale. Empilez un raccourcisseur et un traqueur derrière le shim d'une plateforme et vous êtes à cinq sauts avant que votre CDN ne voie la requête.

Cinq sauts avant que votre CDN ne voie la requête
1
Shim de la plateforme. X enveloppe chaque lien dans t.co, ou Facebook et Pinterest ajoutent leurs propres sauts.
2
Votre raccourcisseur. Un lien vanity ou un traceur de clics d'automatisation marketing ajoute un saut que vous avez choisi.
3
Mise à niveau du protocole. Une redirection de http vers https ajoute un saut de plus.
4
Canonicalisation. Une règle www ou de barre oblique finale en ajoute encore un.
5
Cinq sauts. La requête n'atteint votre CDN qu'à ce moment-là.
Un raccourcisseur et un traceur derrière un shim de plateforme, cela fait cinq sauts avant que votre CDN ne voie la requête.

Que survit-il de la query string à la chaîne de redirections ?

Le fragment survit par spécification et la query string non. RFC 9110 est explicite : quand une valeur de Location n'a pas de fragment propre, « a user agent MUST process the redirection as if the value inherits the fragment component of the URI reference used to generate the target URI. » Aucune règle équivalente n'existe pour la query, donc ?utm_source=linkedin ne survit à un saut que si le serveur qui émet la redirection l'écrit lui-même dans Location.

AdaptlyPost
AdaptlyPost

Commencez votre essai gratuit de 7 jours

Analyses multiplateforme

Boîte sociale

Assistant IA

Savoir s'il le fait relève de la configuration du serveur, et les deux serveurs web courants se comportent assez différemment pour piéger du monde :

  • Le Redirect de mod_alias chez Apache l'emporte avec lui. La documentation dit qu'une requête vers http://example.com/service/foo.pl?q=23&a=42 « will be redirected to http://foo2.example.com/service/foo.pl?q=23&a=42. »
  • Le rewrite de nginx l'emporte sauf si vous l'en empêchez. La documentation dit que « if a replacement string includes the new request arguments, the previous request arguments are appended after them », et que « putting a question mark at the end of a replacement string avoids having them appended. »
  • Le return de nginx n'est pas couvert par cette règle. La documentation ne décrit l'ajout d'arguments que pour rewrite : return 301 https://example.com/new; envoie donc exactement ce que vous avez écrit, et return 301 https://example.com$request_uri; envoie le chemin et la query reçus.
  • Un en-tête Location assemblé à la main dans le code applicatif ne porte que les morceaux d'URL que votre code y recopie.

Ce seul détail explique la plupart des rapports de campagne cassés. Vos paramètres UTM sont accrochés à l'URL que vous avez publiée, le shim de la plateforme les transmet comme un bloc opaque dans son propre paramètre u=, puis votre redirection de nettoyage réécrit le chemin et jette la query en silence. Analytics enregistre une session sans campagne, et personne ne peut suivre le trafic des réseaux sociaux jusqu'au post qui l'a gagné.

Les paramètres ajoutés par la plateforme se comportent pareil. Meta accroche un identifiant de clic aux destinations publicitaires, documenté sous le nom ClickID : « a Meta-generated parameter that is passed with the URL of an advertiser's website when a user clicks an ad on Facebook and/or Instagram », sous la forme ?fbclid=IwAR2F4.... Une règle de redirection qui jette la query emporte fbclid avec elle, et la Conversions API perd la jointure dont elle avait besoin.

Une personne tapant une commande dans un terminal illustre le traçage curl utilisé pour repérer et aplatir une chaîne de redirections.

Comment trouver et aplatir une chaîne de redirections ?

Tracez-la avec une commande avant d'en débattre. curl -sIL -w '%{http_code} %{url_effective}\n' -o /dev/null <url> parcourt la chaîne et affiche ce qu'il a trouvé, et curl -s -o /dev/null -w '%{http_code} %{redirect_url}\n' <url> montre un saut à la fois quand vous voulez voir exactement quel serveur passe la main à quel autre.

Aplatir relève surtout de la comptabilité. Pointez chaque règle de redirection vers l'URL finale plutôt que vers la règle suivante, pour qu'un ancien /blog/post aille droit vers https://www.example.com/blog/post/ en un seul 301 au lieu de traverser trois règles. Gardez la query string dans la valeur de Location sur chaque règle capable d'en porter une. Sautez votre propre raccourcisseur sur les réseaux qui emballent déjà les liens, puisqu'un t.co pointant vers un bit.ly pointant vers un traqueur fait trois sauts qui aboutissent tous à la même page.

Questions fréquentes

Une chaîne de redirections nuit-elle au SEO ?

Les longues chaînes pèsent plus sur l'exploration que sur le classement. La documentation de Google dit que ses robots suivent jusqu'à 10 sauts de redirection par défaut et que le contenu des URL qui redirigent est ignoré : les sauts au-delà ne sont jamais atteints et ceux en deçà gaspillent de la capacité d'exploration. Le guide de déménagement de site de Google demande de ne pas dépasser trois.

Combien de redirections font trop ?

Plus de trois dépasse ce que Google recommande. Les plafonds durs sont de 20 sauts pour les navigateurs qui implémentent le Fetch Standard et de 10 pour les robots de Google, mais la recommandation de la documentation de déménagement de site de Google est « ideally no more than 3 and fewer than 5. »

Une 301 transmet-elle plus de valeur qu'une 302 dans une chaîne ?

Google traite les deux différemment comme signaux de canonicalisation. Sa documentation décrit la 301 comme un signal fort indiquant que la cible de la redirection devrait être canonique et la 302 comme un signal faible, la 308 équivalant à la 301 et la 307 à la 302. Le saut coûte le même aller-retour dans les deux cas.

Les paramètres UTM survivent-ils à une redirection ?

Seulement quand la cible de la redirection les inclut. HTTP oblige un agent utilisateur à hériter du fragment d'origine quand Location n'en a pas, mais n'a aucune règle de ce genre pour la query string : une redirection vers un chemin nu jette donc tous les paramètres UTM de l'URL entrante.

Puis-je empêcher X, Facebook ou Pinterest d'ajouter un saut ?

Non. Le centre d'aide de X dit clairement que vous ne pouvez pas désactiver le raccourcissement des liens t.co, et les shims de Facebook et Pinterest sont un comportement serveur sur leurs propres domaines. Les seuls sauts que vous pouvez retirer sont ceux de votre côté du relais.

Quelle est la différence entre une chaîne de redirections et une boucle de redirection ?

Une chaîne aboutit à une vraie page et une boucle jamais. RFC 9110 demande aux clients de « detect and intervene in cyclical redirections (i.e., 'infinite' redirection loops) », ce qui explique qu'une boucle apparaisse comme une erreur du navigateur plutôt que comme une page lente.

Qu'est-ce qui compte comme un saut dans une chaîne de redirections ?

Un saut est une seule réponse HTTP 3xx portant un en-tête Location, du type que RFC 9110 recense sous 301, 302, 303, 307 et 308. Une 301 de http://example.com/sale vers https://example.com/sale est un saut, pas une chaîne. Une chaîne ne commence que lorsqu'une seconde réponse 3xx suit la première.

Un fragment d'URL survit-il à une chaîne de redirections ?

Le fragment survit lorsque l'en-tête Location n'en porte pas lui-même. RFC 9110 exige qu'un user agent hérite dans ce cas du fragment de l'URL d'origine. La query string ne bénéficie d'aucune règle de ce genre, ce qui explique pourquoi le fragment et un paramètre UTM se comportent différemment dans la même chaîne.

Pourquoi le trafic issu d'une chaîne de redirections apparaît-il comme direct dans les statistiques ?

Parce que le referrer peut se perdre en route, pas parce qu'une chaîne le supprime d'elle-même. RFC 9110 demande à l'agent utilisateur de retirer Referer à chaque saut et de le remplacer par une valeur adaptée à la nouvelle requête, donc l'en-tête survit à une redirection à moins que quelque chose d'autre ne le fasse disparaître. C'est une politique de referrer restrictive ou un passage de HTTPS à HTTP qui laisse la dernière requête sans referrer, et l'outil d'analyse enregistre alors la session comme directe au lieu de l'attribuer à la plateforme qui a envoyé le clic.

AdaptlyPost
AdaptlyPost

Commencez votre essai gratuit de 7 jours

Analyses multiplateforme

Boîte sociale

Assistant IA

La directive return de nginx conserve-t-elle la query string ?

Pas d'elle-même. Nginx ne documente l'ajout des paramètres de requête que pour la directive rewrite, donc return 301 https://example.com/new; envoie exactement ce qui est écrit et abandonne ce que l'URL du visiteur portait. Ajouter $request_uri à la cible, comme dans return 301 https://example.com$request_uri;, est ce qui transmet le chemin et la query.

Cet article vous a-t-il été utile ?

Dites-nous ce que vous en pensez !

Nous voir plus souvent sur Google

Un clic définit AdaptlyPost comme source préférée. Nos articles remontent alors dans vos À la une, en mode IA et dans les aperçus IA.

Avant de partir...

AdaptlyPost

AdaptlyPost

Planifiez vos contenus sur toutes les plateformes

Gérez tous vos comptes de réseaux sociaux en un seul endroit avec AdaptlyPost.

Analyses multiplateforme

Boîte sociale

Assistant IA

Termes connexes du glossaire

Articles Connexes