504 Gateway Timeout — réponse HTTP

Ce que signifie une 504 Gateway Timeout, comment les serveurs en amont lents la déclenchent, comment Googlebot traite les délais d’attente et quelles sont les conséquences pour le budget d’exploration et l’indexation.

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

Une 504 Gateway Timeout signifie qu’une passerelle ou un proxy (CDN, répartiteur de charge ou proxy inverse) n’a pas reçu à temps la réponse du serveur en amont. C’est un délai d’attente — différent d’une 502 (réponse incorrecte) ou d’une 503 (indisponibilité explicite). Ce n’est pas une pénalité Google, mais un problème d’accessibilité. Les 504 isolées sont réessayées ; des délais persistants font partie, avec les 429/500/503, des erreurs qui amènent Googlebot à ralentir son exploration et, si elles persistent, à retirer des pages de l’index. Identifiez le relais qui a réellement expiré avant toute correction : le temps de réponse serveur (TTFB) est un levier préventif important pour les origines lentes, mais augmenter la valeur du délai n’est pas une correction en soi.

TL;DR — Une 504 indique qu’une passerelle ou un proxy informe que le serveur en amont n’a pas répondu dans la fenêtre prévue — un délai d’attente, distinct d’une 502 (mauvaise réponse) ou d’une 503 (indisponibilité explicite). C’est un problème d’accessibilité, pas une pénalité. Les délais d’attente rejoignent les 429/500/503 : Googlebot ralentit quand il les rencontre, et des 504 persistantes peuvent mener à une désindexation. La correction durable est le temps de réponse serveur (TTFB), pas une valeur de délai plus longue : l’augmenter masque généralement l’amont lent et peut aggraver la situation sous charge.

Où une 504 apparaît-elle dans la chaîne de requête ?

Un chemin de requête moderne ressemble à ceci : navigateur → CDN/edge → répartiteur de charge → proxy inverse (par exemple Nginx) → serveur applicatif (PHP-FPM, Node, etc.) → base de données / API tierces. Une 504 est générée par le composant qui attendait celui situé derrière lui lorsque son délai a expiré. C’est la première question à poser au diagnostic : Evidence for this claim A 504 response means a gateway or proxy did not receive a timely response from an upstream server. Scope: RFC 9110 defines the timeout semantics; it does not determine why the upstream response was delayed. Confidence: high · Verified: IETF: RFC 9110 §15.6.5 — 504 Gateway Timeout

  • Le CDN/edge expire en attendant l’origine → corrigez les performances de l’origine ou augmentez prudemment le délai amont du CDN.
  • Le répartiteur de charge expire en attendant le serveur applicatif → vérifiez la santé du serveur et la mise à l’échelle automatique.
  • Le proxy inverse expire en attendant le processus applicatif → examinez proxy_read_timeout, fastcgi_read_timeout et la requête lente ou le processus qui se trouve réellement derrière.

Il est important d’identifier la couche correcte : « corriger le délai sur l’edge » et « corriger la requête lente en base de données à l’origine » sont deux interventions complètement différentes.

Quelles sont les causes des 504 ?

Le code d’état ne prouve pas la cause : il indique seulement qu’une passerelle a expiré en attendant un amont. Voici les suspects habituels à vérifier, et non des faits déjà établis par la 504 ; confirmez-les avec les journaux et les traces avant d’agir :

  • Requêtes de base de données lentes ou appels d’API en amont. Une requête sans index ou une dépendance tierce lente peut faire dépasser le délai au temps de réponse.
  • Surcharge de l’application et épuisement des ressources. Sous une charge concurrente élevée, les requêtes s’empilent, les processus ouvriers se remplissent et les réponses n’arrivent plus à temps.
  • Valeurs de délai mal configurées entre Nginx, Apache, le répartiteur de charge et le CDN — souvent avec des couches désynchronisées, de sorte que l’une abandonne avant l’autre.
  • Pics de trafic, afflux de robots ou DDoS qui dépassent temporairement la capacité.

Les 504 sont souvent intermittentes et dépendantes de la charge

C’est ce qui les rend difficiles à repérer. Contrairement à une panne franche, une 504 apparaît souvent uniquement sous charge : un moniteur de disponibilité qui interroge le site pendant une accalmie peut afficher 100 % de réussite tandis que Googlebot, lors de rafales d’exploration plus intenses, accumule discrètement les délais. Dans l’inspection d’URL de la Search Console, cela peut apparaître comme « Hostload exceeded » plutôt que comme une erreur constante. Si votre surveillance semble parfaite mais que les statistiques d’exploration divergent, les 504 dépendantes de la charge sont une hypothèse prioritaire.

Comment Googlebot (et Bingbot) traitent-ils les délais ?

Google ne traite pas une 504 comme un jugement sur la qualité du contenu : c’est un signal de disponibilité, auquel il répond par une limitation automatique. Sa documentation d’exploration dit explicitement : “Googlebot will scale back its crawling if it detects that your servers are having trouble responding to crawl requests.” (traduction) « Googlebot ralentira son exploration s’il détecte que vos serveurs ont du mal à répondre aux requêtes d’exploration. » Le guide du budget d’exploration pour les grands sites formule la même idée : “If the site slows down or responds with server errors, the limit goes down and Google crawls less.” (traduction) « Si le site ralentit ou répond avec des erreurs serveur, la limite baisse et Google explore moins. » Evidence for this claim Google reduces crawling when server errors or slow responses indicate a site is having trouble responding. Scope: Google's documentation supports automatic crawl throttling for server trouble; it does not attribute a specific 504 to any particular bottleneck. Confidence: high · Verified: Google: Troubleshoot crawling errors

La formulation la plus récente reliant directement ce phénomène aux réponses lentes ou expirées vient de l’explication Inside Googlebot de Google publiée en mars 2026. Gary Illyes y est cité : “If your server is struggling to serve bytes, our crawlers will automatically back off to avoid overloading your infrastructure, which will drop your crawl frequency.” (traduction) « Si votre serveur peine à fournir les octets, nos robots ralentissent automatiquement pour éviter de surcharger votre infrastructure, ce qui réduit votre fréquence d’exploration. » Cette citation vient de la couverture de Search Engine Land ; vérifiez l’enregistrement ou la transcription d’origine avant de la citer ailleurs. Une 504 rend cette difficulté visible.

Un point subtil mérite d’être compris : Google ne voit pas toujours un « 504 » littéral comme votre navigateur. Si le délai survient avant que Googlebot reçoive une ligne d’état, il est enregistré comme une erreur de délai ou de réseau dans les statistiques d’exploration, plutôt que comme une erreur 5XX nette. En revanche, lorsqu’un proxy intermédiaire ou un CDN expire et génère sa propre réponse 504, Googlebot reçoit une erreur serveur 5XX standard. Dans les deux cas, l’effet est similaire : fréquence d’exploration réduite et, si le problème persiste, retrait de l’index.

Bing documente les délais comme une catégorie distincte des erreurs serveur. Bingbot cesse de tenter l’accès aux pages lorsque les réponses sont trop lentes. Sa recommandation permanente consiste à vérifier le temps de réponse, maintenir le logiciel serveur à jour, optimiser les ressources lentes et lire les journaux pour trouver les tendances systémiques plutôt que les incidents uniques. Bing n’a pas publié le même niveau de détail sur le ralentissement puis la reprise que Google ; considérez donc l’intention comme comparable, sans affirmer un comportement identique.

La boucle de ralentissement puis de reprise

La bonne nouvelle est que cette boucle est automatique et autorégulée. Google réduit l’exploration lorsqu’il voit des erreurs et des délais, puis la réaugmente progressivement lorsque les réponses redeviennent saines. Aucun bouton manuel de « déblocage » n’est nécessaire une fois la cause corrigée. John Mueller l’a résumé ainsi : “Once things settle down on the server, the crawl rate will return to normal automatically.” (traduction) « Une fois la situation stabilisée sur le serveur, la fréquence d’exploration reviendra automatiquement à la normale. » Il a aussi souligné l’asymétrie : le ralentissement est rapide pour résoudre un problème immédiat, tandis que la reprise est prudente.

C’est la durée qui transforme un incident en problème d’indexation

Des 504 courtes et occasionnelles — quelques erreurs pendant un pic, vite résolues — sont réessayées et généralement tolérées. C’est la répétition persistante des délais sur une période prolongée qui présente un risque de désindexation. Les mécanismes documentés de « revenez plus tard », lorsqu’on renvoie volontairement une 503 ou une 429 pendant une surcharge, décrivent un horizon d’environ deux jours avant que des URL commencent à sortir de l’index. Ce nombre est documenté pour les 503/429 nommément, pas pour les 504. Les recommandations générales de Google sur les 5xx indiquent que le rythme baisse selon la proportion d’URL en erreur et revient progressivement lorsque les réponses redeviennent saines, sans horizon fixe pour les 504. Étendre le délai de deux jours aux 504 est une inférence raisonnable, pas un fait documenté : retenez que des 504 brèves sont récupérables, mais qu’une tendance persistante sur plusieurs jours doit inquiéter.

Pourquoi le sujet compte davantage pour les grands sites et l’e-commerce

Sur un petit site dont les pages sont explorées le jour même de leur publication, vous le remarquerez à peine. Sur un grand site ou un site qui change vite — catalogue e-commerce, actualités ou place de marché — le budget d’exploration est déjà une contrainte. Une vague de 504 pendant un pic peut empêcher l’exploration de pages qui doivent réellement être revisitées. À grande échelle, délais et budget d’exploration relèvent de la même conversation.

Le temps de réponse et le TTFB sont des leviers préventifs forts pour les causes côté origine

La plupart des articles sur les 504 oublient un point : attendre les erreurs puis chercher dans les journaux est réactif. Surveiller continuellement le temps de réponse serveur permet de voir la dérive avant qu’elle ne devienne un délai d’attente. Un serveur lent sans encore expirer aujourd’hui peut générer des 504 demain, sous une charge légèrement supérieure ou avec une dépendance un peu plus lente. Suivre le TTFB (temps jusqu’au premier octet) comme signal d’alerte précoce, et pas seulement comme métrique d’après-incident, permet de détecter cette dérive.

La réserve : la surveillance du TTFB traite la lenteur côté origine. Elle ne détectera pas un CDN qui expire face à une origine saine, un répartiteur configuré pour abandonner trop tôt ou un problème de réseau entre deux relais. Il faut d’abord identifier le relais émetteur (section « Où une 504 apparaît-elle ? » ou arbre de décision ci-dessous). Le TTFB est une correction durable lorsque l’amont est réellement lent, pas une solution universelle. Une fois l’origine identifiée comme goulot d’étranglement, optimisez la mise en cache (page, objet et edge CDN), les requêtes et index de base de données, la mise à l’échelle sous charge et les réglages amont du CDN.

Pourquoi « augmenter le délai » est un mauvais réflexe

Augmenter proxy_read_timeout ou le délai amont du CDN peut faire disparaître l’affichage de la 504, mais cela n’accélère pas la réponse de l’amont. Pire, une fenêtre plus longue sous charge fait s’accumuler les requêtes et immobilise plus longtemps les processus ouvriers et les connexions, ce qui peut aggraver une spirale de surcharge. Augmenter le délai peut parfois être justifié pour une opération réellement longue et bien comprise ; comme réflexe, cela masque le problème.

Lorsque l’indisponibilité est planifiée ou que vous réduisez volontairement la charge, le bon outil n’est pas de laisser les pages expirer en 504 : renvoyez une 503 avec l’en-tête Retry-After. Vous envoyez ainsi aux moteurs de recherche un « revenez plus tard » propre et volontaire, plutôt qu’un délai d’attente confus.

Diagnostiquer une 504 en pratique

Identifiez le relais émetteur avant de supposer une cause : c’est la différence entre corriger le problème réel et corriger un symptôme :

  • Reproduisez l’erreur et identifiez le relais qui répond. Chargez la page dans un navigateur, utilisez curl et observez time_starttransfer pour le TTFB, puis lancez un robot comme Ahrefs Site Audit ou Screaming Frog afin de voir si l’erreur est globale ou isolée. Si possible, testez directement l’origine (en contournant le CDN/proxy) pour vérifier qu’elle termine la requête.
  • Lisez les journaux. Les journaux du serveur et du proxy indiquent quelle couche a expiré et, idéalement, sur quoi : requête lente, amont bloqué ou pool de processus épuisé. Faites la corrélation par horodatage et identifiant de requête entre les couches, sans supposer.
  • Vérifiez la Search Console. Les statistiques d’exploration montrent les pics de codes de réponse et le temps de réponse moyen ; le rapport d’indexation et l’inspection d’URL indiquent si Google rencontre des délais, notamment « Hostload exceeded ».

La mise en regard des outils compte : une 504 dans un navigateur, une erreur 5xx dans Ahrefs Site Audit et un délai dans la Search Console peuvent décrire la même origine lente observée depuis des points de vue différents. Trois outils ne signifient pas nécessairement trois problèmes.

Codes associés

Une 504 appartient à une petite famille. Une 500 est une erreur serveur générique sans code plus précis ; une 502 est une réponse amont incorrecte ou incohérente ; une 503 est une indisponibilité explicite, souvent volontaire. Savoir lequel vous renvoyez réellement — et renvoyer le bon code intentionnellement pendant une maintenance — est déjà une grande partie de la solution.

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.