Erreur 504 Gateway Timeout : Comment résoudre cette erreur ?

Table des matières

Des visiteurs vous indiquent que votre site Internet WordPress répond de manière intempestive avec une erreur 504 (Gateway Timeout) ? Pas de panique, il s’agit d’une erreur classique qui est facilement corrigeable avec quelques modifications de paramètres, ou en changeant tout simplement vos options WordPress.

Que signifie l’erreur 504 ?

L’erreur 504 WordPress correspond à une erreur du protocole HTTP de type Gateway Timeout. Cela indique un problème ou un dysfonctionnement au niveau de la connexion réseau, soit au niveau d’un serveur proxy, soit au niveau d’une passerelle. Cette erreur signifie que le requérant n’a pas reçu de réponse du serveur en amont à temps afin de terminer la requête. Le délai d’attente maximal a ainsi été dépassé.

Les vérifications possibles pour mieux comprendre l’apparition de l’erreur 504

Pour trouver la cause de l’erreur 504 au niveau de votre serveur WordPress, le mieux est de pouvoir vérifier le journal des erreurs afin d’identifier rapidement l’origine. Si votre hébergeur n’a pas activé par défaut le journal des erreurs Apache ou Nginx, vous pouvez toujours utiliser la fonction de journalisation des erreurs PHP sur hPanel ou cPanel, si disponible. 

Si votre hébergeur ne propose pas de journalisation des erreurs PHP, il vous est toujours possible d’activer le mode de débogage de WordPress, où il vous faut simplement ajouter dans le fichier wp-config.php les lignes suivantes :


define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Cela vous permettra de récupérer les traces dans le fichier /wp-content/debug.log et de déterminer si les messages de débogage apparaissent ou non sur les pages HTML.

Il faut savoir aussi que certaines extensions, notamment celles qui sont obsolètes et celles qui sont liées à la mise en cache, peuvent causer l’erreur 504 Gateway Timeout. Responsables de l’augmentation de la charge de travail au niveau du serveur PHP, ces plugins peuvent augmenter les délais de réponse du serveur et déclencher l’erreur. Pour en être sûr, il vous suffira de désactiver les plugins en renommant le dossier plugins situé dans le répertoire /wp-content/ (via un client FTP classique, par exemple). Si l’erreur n’apparaît plus, il vous suffira de trouver le plugin responsable de cette erreur en restaurant le nom de dossier plugins et en désactivant les plugins un par un.

Quelles sont les corrections possibles concernant l’erreur 504 ?

Pour corriger l’erreur 504, ou la rendre moins fréquente, vous pouvez augmenter la limite de temps d’exécution maximale de PHP. Si les scripts PHP prennent plus de temps que la durée définie dans la configuration, l’erreur peut être déclenchée. Pour cela, il vous suffit d’aller sur la page de configuration du module PHP (accessible via l’interface d’administration de votre hébergeur ou en éditant le fichier .htaccess) et de changer la valeur du paramètre max-execution-time. Par défaut il est à 30, vous pouvez l’augmenter à 50 voire 100 pour corriger le problème.

Le souci peut également venir du côté client. Des navigateurs comme Google Chrome peuvent stocker en cache un DNS obsolète, ou corrompu, pouvant entraîner l’erreur 504. Le problème DNS peut également venir du côté serveur si les adresses IP ne sont pas résolues.

Si l’hébergement de votre site WordPress a été déplacé (serveur différent), il est aussi possible que le changement d’IP (et de résolution DNS) ne se soit pas entièrement propagé au niveau mondial. Il faut savoir que la propagation DNS peut prendre jusqu’à 2 jours pour se terminer entièrement.

Côté client, la solution est de vider le cache DNS pour que celui-ci se reconstruise avec la nouvelle résolution de nom.

Quelles sont les bonnes pratiques à appliquer pour ne plus avoir d’erreur 504 ?

Le meilleur moyen d’éviter une erreur 504 est d’augmenter le Timeout de votre serveur Apache ou de votre serveur Nginx, qui héberge le site WordPress.

Pour Apache, il vous suffit d’appliquer le paramètre suivant dans le httpd.conf :

  • Timeout 800

 Pour Nginx, appliquez les paramètres suivants dans le fichier /etc/nginx/conf.d/timeout.conf :

  • proxy_connect_timeout 800;
  • proxy_send_timeout 800;
  • proxy_read_timeout 800;
  • send_timeout 800;

Que ce soit Apache ou Nginx, dans php.ini, appliquez le paramètre suivant :

  • max_execution_time 500

Vous ne devriez plus avoir d’erreur 504.

Besoin d'une aide ?

Contactez-nous directement par téléphone au 07 80 98 57 57 ou par formulaire.

Optimiser et sécuriser son site WordPress
e-book : optimiser et sécuriser son site WordPress
eBook offert !