L’erreur 504 Gateway Timeout signifie qu’un serveur intermédiaire a attendu la réponse du serveur d’origine plus longtemps que son délai autorisé. Visiteur, patientez puis réessayez. Propriétaire, lisez le journal d’erreurs, cherchez le script ou la requête SQL lente, puis ajustez les délais de nginx ou d’Apache seulement si la lenteur est justifiée.
Contrairement à la 502, où la réponse est invalide ou refusée, la 504 vient d’une attente trop longue : la passerelle (nginx, Apache en proxy, Cloudflare, un répartiteur de charge) a transmis la demande, mais le serveur qui fabrique la page n’a pas terminé à temps. Les causes les plus courantes sont un script PHP long, une requête SQL lente, un serveur saturé, ou un service externe qui ne répond plus.
Les étapes 1 et 2 s’adressent à la personne qui visite un site, les étapes 3 à 8 à la personne qui le possède ou l’administre.
Patienter puis recharger la page
Si vous visitez un site. Attendez une minute, puis rechargez. Une 504 survient souvent pendant un pic de charge ou une opération lourde, et elle passe d’elle-même. Sur une page de commande ou de paiement, ne validez pas deux fois : consultez d’abord votre messagerie ou votre compte pour savoir si l’opération a abouti.
Essayer depuis un autre réseau
Si vous visitez un site. Ouvrez le site en navigation privée, puis depuis la 4G ou la 5G de votre téléphone, sans VPN. Si la page s’affiche, le problème vient de votre accès ou d’un cache. Sinon, il vient du site : écrivez à son éditeur avec l’adresse de la page et l’heure de l’erreur.
Déterminer quel maillon renvoie la 504
Si c’est votre site. Lisez la page d’erreur : elle porte souvent le nom de nginx, d’Apache ou de Cloudflare. Chronométrez ensuite la requête avec curl -s -o /dev/null -w "%{http_code} %{time_total}\n" https://votredomaine.fr/page-lente/. Si le temps total est proche d’un délai rond (soixante secondes, par exemple), un délai d’attente est dépassé. Si une seule page est concernée, le problème est dans cette page ; si tout le site l’est, regardez la charge du serveur.
Lire le journal d’erreurs
Si c’est votre site. Sur nginx, tail -n 50 /var/log/nginx/error.log doit faire apparaître une ligne du type « upstream timed out (110: Connection timed out) while reading response header from upstream ». Elle précise l’adresse demandée et le service concerné. Sur Apache, consultez le journal d’erreurs indiqué par ErrorLog. Pour PHP-FPM, journalctl -u php-fpm --since "1 hour ago" (le nom du service varie avec la version) signale les processus tués ou bloqués.
Ajuster les délais d’attente de nginx
Si c’est votre site. Selon la manière dont nginx transmet la requête, les directives sont fastcgi_read_timeout (PHP-FPM) ou proxy_read_timeout (application derrière un proxy). Leur valeur par défaut est de soixante secondes. Pour une tâche réellement longue, comme un export, relevez la valeur dans le bloc location concerné seulement, pas dans toute la configuration. Validez avec nginx -t, puis rechargez avec systemctl reload nginx. Un délai plus long soulage le symptôme, pas la cause.
Ajuster les délais d’Apache et de PHP
Si c’est votre site. Sur Apache, la directive Timeout limite l’attente des échanges réseau ; derrière un proxy ou PHP-FPM en FastCGI, ProxyTimeout s’applique aussi. Côté PHP, max_execution_time limite la durée d’un script, et request_terminate_timeout celle d’une requête dans le pool PHP-FPM. Ces valeurs doivent rester cohérentes entre elles : la plus courte coupe en premier. Rechargez le service après chaque modification.
Chercher les requêtes lentes et les scripts trop longs
Si c’est votre site. Dans MySQL ou MariaDB, la commande SHOW FULL PROCESSLIST; affiche les requêtes en cours et leur durée. Pour garder une trace, activez le journal des requêtes lentes avec slow_query_log et long_query_time. Des index manquants, une table gonflée de journaux ou un plugin qui interroge sans limite sont des causes classiques. Examinez aussi les tâches planifiées, les imports et les appels à des API externes. Déplacez les traitements longs en arrière-plan plutôt que d’allonger les délais. Le guide sur un serveur surchargé approfondit ce volet.
Distinguer 504 et 524 avec Cloudflare
Si c’est votre site. Cloudflare affiche une 524 lorsqu’il a bien établi la connexion avec votre serveur, mais que celui-ci n’a pas répondu avant le délai de Cloudflare ; il affiche une 504 lorsque la passerelle en amont a elle-même expiré. Dans le premier cas, accélérez ou déplacez en tâche de fond le traitement concerné. Dans le second, contrôlez les délais de votre propre proxy. Pour tester sans Cloudflare, appelez directement l’adresse du serveur d’origine.
Questions fréquentes
Que signifie une erreur 504 Gateway Timeout ?
Elle signifie qu’un serveur placé entre vous et le site, proxy, CDN ou répartiteur de charge, n’a pas reçu de réponse du serveur d’origine dans le temps imparti. Le problème ne vient pas de votre appareil : il se règle côté site ou hébergeur.
Comment corriger une 504 sur WordPress ?
Identifiez d’abord ce qui est lent : une page précise, l’administration, une extension. Désactivez les extensions récentes, vérifiez la base de données et les tâches planifiées, puis ajustez les délais de nginx ou d’Apache si le traitement est légitimement long. La cause est rarement WordPress lui-même.
Faut-il augmenter proxy_read_timeout pour corriger une 504 ?
Seulement si le traitement est long par nature, comme un export volumineux. Pour une page ordinaire, un délai plus grand masque un défaut : requête SQL lente, service externe en panne, serveur saturé. Mieux vaut chercher la cause dans les journaux avant de toucher à la configuration.
Quelle différence entre une 504 et une 524 ?
La 524 est propre à Cloudflare : la connexion avec votre serveur est établie, mais la réponse HTTP n’arrive pas avant le délai de Cloudflare. La 504 est la réponse générique d’une passerelle dont l’attente est épuisée. Dans les deux cas, regardez ce qui ralentit le serveur d’origine.
Une erreur 504 est-elle dangereuse pour mon référencement ?
Une 504 ponctuelle n’a pas d’effet durable. Si elle se répète sur de nombreuses pages pendant plusieurs jours, Google peut réduire son rythme d’exploration et retirer temporairement des pages de ses résultats. Corrigez la cause et vérifiez ensuite le rapport d’indexation de la Search Console.
Sources
- 504 Gateway Timeout — MDN Web Docs
- Module ngx_http_proxy_module — nginx.org
- Module ngx_http_fastcgi_module — nginx.org
- Error 524 — Cloudflare Support