Que signifie l'erreur 504 Gateway Timeout sur un site web et comment la résoudre ?

L'erreur 504 Gateway Timeout signale qu'un serveur intermédiaire (reverse proxy, répartiteur de charge ou CDN) a attendu trop longtemps la réponse du serveur applicatif et a interrompu la connexion. Contrairement à l'erreur 502, la communication avait bien été établie : c'est le temps de traitement qui a dépassé le délai autorisé. Le site n'est donc pas forcément hors service, il est bloqué sur une opération trop lente.

Les causes les plus fréquentes sont identifiables méthodiquement :

  • une requête SQL lente ou une table volumineuse non indexée ;
  • un appel à une API externe qui ne répond plus (paiement, cartographie, flux) ;
  • une tâche planifiée ou un import massif déclenché pendant une visite ;
  • la saturation du pool PHP-FPM : toutes les instances occupées, les suivantes attendent ;
  • un pic de trafic ou une attaque automatisée sur des URL coûteuses (recherche interne, filtres) ;
  • une extension défaillante introduite par une mise à jour récente.

La démarche de diagnostic est toujours la même : consulter les journaux du serveur web et de PHP aux horodatages concernés, activer le journal des requêtes lentes de la base, vérifier la charge CPU et mémoire, puis reproduire l'erreur sur une URL précise. Augmenter les délais d'attente côté proxy ou PHP soulage temporairement mais ne traite jamais la cause.

Une erreur 504 récurrente est le symptôme d'un site sous-dimensionné ou mal optimisé, pas d'un incident isolé. Si vos 504 reviennent sans explication claire, faites appel à notre service de dépannage de site internet.