El error 504 Gateway Timeout es uno de los errores HTTP 5xx más comunes a los que se enfrentan los propietarios y visitantes de sitios web. Para muchos blogs y plataformas de comercio electrónico, saber cómo solucionar errores de servidor como éste es crucial para evitar que sus visitantes, ganados con tanto esfuerzo, reboten hacia sitios de la competencia.

Como el error 504 Gateway Timeout no te dice por qué se ha producido, es difícil determinar la causa del tiempo de espera del servidor. Este artículo te ayudará a entenderlo en detalle, a aprender a diagnosticar su causa y a solucionarlo.

Después de probar las distintas soluciones mencionadas en el post, tu sitio debería estar funcionando en poco tiempo.

¿Te parece interesante? ¡Vamos a ello!

Echa un vistazo a nuestro videotutorial para solucionar el error 504 Gateway Timeout en tu sitio web

Para simplificarlo aún más, este error se produce cuando intervienen dos servidores en el procesamiento de una solicitud. El primer servidor (normalmente el servidor principal) agota el tiempo de espera, esperando una respuesta del segundo servidor (servidor ascendente).

Código de error 504 Error Gateway Timeout
Tipo de error Del lado del servidor
Variaciones del error 504 Gateway Timeout504 Gateway Timeout NGINX
NGINX 504 Gateway Timeout
Gateway Timeout Error
Error 504
HTTP Error 504
HTTP Error 504 — Gateway Timeout
HTTP 504
504 Error
Gateway Timeout (504)
Causas del error Problemas de conectividad del servidor
Problemas de conectividad de la red
Problemas de DNS
Problemas con el cortafuegos

Así es como funciona el proceso: cada vez que visitas un sitio web en tu navegador, éste envía una petición al servidor web donde está alojado el sitio. El servidor procesa la petición y responde con los recursos solicitados.

Ilustración del funcionamiento de las peticiones y respuestas HTTP
Cómo funcionan las peticiones y respuestas HTTP.

La respuesta del servidor incluye uno de los muchos códigos de estado HTTP para indicar el estado de la respuesta al navegador. Pero no todos estos códigos de estado HTTP son errores. Por ejemplo, un código de estado 200 OK significa que el servidor procesó la solicitud con éxito y «Todo está bien».

La clase 5xx de códigos de estado HTTP indica que algo va mal en el servidor, el servidor es consciente de ello y no puede llevar a cabo la solicitud del cliente. Por ello, también se denominan códigos de estado 5xx de error del servidor.

Oficialmente, se especifican cinco códigos de estado bajo la clase 5xx (500, 501, 502, 503, 504). También puedes encontrarte con muchos códigos no oficiales (506, 507, 509, 520, etc.).

El error 504 Gateway Timeout se manifiesta de varias formas. Aquí tienes algunas formas en las que suele aparecer:

El 'ERROR HTTP 504' en el navegador Chrome.
El ‘ERROR HTTP 504’ en el navegador Chrome.

El error 504 Gateway Timeout es similar al error 502 Bad Gateway, que indica que el primer servidor recibió una respuesta no válida del segundo servidor (servidor upstream).

El código de estado '504 GATEWAY TIMEOUT' en Chrome DevTools.
El código de estado ‘504 GATEWAY TIMEOUT’ en Chrome DevTools.

Variaciones del Error 504 Gateway Timeout

El navegador muestra cualquier error 504 Gateway Timeout en su interior, como cualquier otro error. Como hay varios sistemas operativos, servidores web, navegadores y agentes de usuario, puede aparecer de múltiples formas.

A continuación se muestran algunas variaciones comunes del mensaje de error 504 con las que te puedes encontrar:

  • 504 Gateway Timeout
  • 504 Gateway Timeout NGINX
  • NGINX 504 Gateway Timeout
  • Gateway Timeout Error
  • Error 504
  • HTTP Error 504
  • HTTP Error 504 — Gateway Timeout
  • HTTP 504
  • 504 Error
  • Gateway Timeout (504)
  • Esta página no funciona — El dominio ha tardado demasiado en responder
  • 504 Gateway Time-out — El servidor no ha respondido a tiempo
  • La solicitud de la página se ha cancelado porque ha tardado demasiado en completarse
  • Visitantes del sitio: Se ha producido un problema al atender tu solicitud, inténtalo de nuevo en unos minutos.
  • Propietarios del sitio: Se ha agotado el tiempo de espera de la pasarela. Deberías visitar tu registro de errores para obtener más información.
  • Una pantalla en blanco

Todas las respuestas de error anteriores, aunque redactadas de forma diferente, apuntan al mismo error de servidor 504 Gateway Timeout.

Los servidores web y los sitios web pueden personalizar la forma en que muestran el error 504 Gateway Timeout a los usuarios. ¡Algunas pueden ser geniales! Es una táctica excelente para calmar la decepción de sus visitantes.

Página de error HTTP 504 personalizada de GitHub.
Página de error HTTP 504 personalizada de GitHub.

¿Cuáles Son las Causas del Error 504 Gateway Timeout?

Como el error 504 se debe a un tiempo de espera entre servidores, el problema probablemente no esté en el dispositivo del cliente ni en su conexión a Internet. Eso también incluye tu dispositivo y tu conexión.

Un error 504 de tiempo de espera entre servidores indica que el servidor web está esperando demasiado tiempo para responder desde otro servidor y está «agotando el tiempo de espera». Puede haber muchas razones para este tiempo de espera: el otro servidor no funciona correctamente, está sobrecargado o caído.

El otro servidor no tiene por qué ser siempre externo (por ejemplo, CDN, pasarela API). También puede ser una entidad similar a un servidor dentro del servidor web principal (por ejemplo, un servidor proxy inverso, un servidor de base de datos).

Impacto SEO del Error 504 Gateway Timeout

Todos los errores 5xx impiden que se cargue una página web, lo que los hace perjudiciales para la experiencia del usuario. Por ello, los motores de búsqueda como Google se toman en serio estos errores. Si el error persiste durante mucho tiempo, puede llevar incluso a desindexar la página web de los resultados del motor de búsqueda.

Por ejemplo, cuando las arañas de Google se encuentren con un error 503 Servicio No Disponible, entenderán que se trata de un problema temporal, ya que se utiliza principalmente para activar el modo de mantenimiento del sitio. Por lo tanto, intentarán rastrear la página de nuevo más tarde.

Un error 504 Gateway Timeout no es necesariamente temporal, ya que puede deberse a múltiples razones. Si tu sitio no funciona durante unos minutos, y si las arañas intentan rastrearlo varias veces cada minuto, intentarán servir la página desde su caché. Ni siquiera se darían cuenta.

Pero si tu sitio está inactivo durante 6 horas o más, Google considerará el error 504 como un problema grave que afecta a todo el sitio y que debes solucionar lo antes posible. Esto puede afectar negativamente a tu SEO.

Viendo los errores de rastreo en Google Search Console
Viendo los errores de rastreo en Google Search Console

Google Search Console es una de las mejores herramientas SEO para controlar los errores HTTP 5xx de tu sitio web.

¿Cómo Solucionar el Error 504 Gateway Timeout?

Sin conocer detalles exactos sobre el sitio, como la configuración del servidor, el plan de alojamiento, los plugins de terceros y el tráfico que atrae, puede resultarte frustrante y abrumador solucionar un error 504 Gateway Timeout.

Dado que intervienen muchas variables, te recomiendo que empieces por solucionar los problemas del lado del cliente, que son bastante raros, y luego pases a solucionar los problemas del lado del servidor. Suelen ser los culpables de los errores 504.

1. Prueba a Recargar la Página Web

Una de las primeras cosas que puedes intentar cuando te encuentres con un error 504 de tiempo de espera de la pasarela es esperar unos minutos e intentar recargar la página.

Puedes pulsar el atajo de teclado F5 para actualizar/recargar la página web en la mayoría de los navegadores. Para eliminar la caché del navegador de la página antes de recargarla, puedes pulsar en su lugar la combinación de teclas CTRL+F5.

Actualizar una página web en el navegador Chrome
Actualizar una página web en el navegador Chrome

Ya que estás, también puedes probar a cargar la página en un navegador diferente para descartar que ese sea el problema. Como la mayoría de los errores 504 se deben a una sobrecarga temporal de los servidores, esta solución debería hacer que el sitio volviera a funcionar correctamente.

Si esperar y volver a cargar el sitio no soluciona el problema del error 504, puedes comprobar si un sitio está caído para todo el mundo o sólo para ti. Dos herramientas online útiles para comprobar si un sitio está caído son Down for Everyone or Just Me y Is It Down Right Now?

Comprobando si Kinsta.com está caído para todos o sólo para mí
Comprobando si Kinsta.com está caído para todos o sólo para mí

2. Reinicia Tus Dispositivos de Red

A veces, los problemas con tus dispositivos de red, como el módem o el router, pueden provocar un error 504 de tiempo de espera de la puerta de enlace. Reiniciar estos dispositivos podría ayudarte a solucionar el problema.

Aunque puedes apagar todos estos dispositivos de red en cualquier orden, el orden en que los vuelves a encender es importante. Normalmente, enciende estos dispositivos desde «fuera hacia dentro», siguiendo el orden de conexión del proveedor de servicios de internet a tu dispositivo cliente principal.

3. Comprueba la Configuración del Proxy

Un servidor proxy se sitúa entre tu dispositivo e Internet. Se utiliza sobre todo para mejorar la privacidad online ocultando información privada (por ejemplo, la ubicación del dispositivo) a sitios y servidores web (por ejemplo, utilizando una VPN).

Aunque es raro que los servidores proxy causen un error 504, a veces puede deberse a una configuración incorrecta del servidor proxy. Puedes desactivar el servidor proxy e intentar recargar la página web para ver si se soluciona el error.

Cambiar la configuración del "Proxy" en Windows 10
Cambiar la configuración del «Proxy» en Windows 10

La mayoría de los clientes no utilizan un servicio proxy, así que puedes saltarte este paso si estás seguro de que no utilizas ningún servidor proxy. Sin embargo, es posible que lo hayas configurado sin siquiera saberlo. Te sugiero que compruebes la configuración del proxy de tu dispositivo y de tu navegador para descartar esta causa.

4. Comprueba si hay Problemas de DNS

El error 504 Tiempo de espera de la pasarela también puede deberse a problemas de DNS en el lado del servidor o en el lado del cliente (o en ambos).

La razón más probable de un problema de DNS del lado del servidor es que el FQDN (nombre de dominio completo) no resuelva la dirección IP correcta o que el Servidor DNS no responde. Normalmente, esto ocurre cuando acabas de migrar tu sitio a un nuevo servidor o alojamiento. Por tanto, es importante esperar a que los registros DNS del dominio se propaguen completamente, lo que puede tardar hasta 24 horas.

Puedes utilizar herramientas gratuitas como whatsmydns.net DNS Checker o DNSMap para ver si tus DNS se han propagado por todo el mundo.

Comprobar la propagación DNS de tu dominio en whatsmydns.net
Comprobar la propagación DNS de tu dominio en whatsmydns.net

Para solucionar problemas de DNS del lado del cliente, puedes probar a vaciar tu caché DNS local. Es como limpiar la caché de tu navegador, salvo que en este caso estás limpiando la caché DNS del sistema operativo.

Si utilizas Windows, puedes vaciar la caché DNS abriendo el símbolo del sistema e introduciendo la siguiente directiva:

ipconfig /flushdns
Purgar la caché DNS con el símbolo del sistema en Windows
Purgar la caché DNS con el símbolo del sistema en Windows

Si ha funcionado, deberías ver el mensaje «Se ha vaciado correctamente la caché del resolver DNS».

Para las últimas versiones de macOS, puedes abrir el Terminal y ejecutar el siguiente comando:

sudo killall -HUP mDNSResponder

No verás ninguna notificación en macOS cuando finalice el proceso, pero puedes cambiarlo añadiendo al comando tu mensaje personalizado.

sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully

Si utilizas versiones anteriores de macOS, el comando que debes introducir varía en función de la versión de macOS que estés ejecutando. Para más detalles, puedes consultar el tutorial en profundidad de Kinsta sobre la eliminación de DNS en la sección de macOS.

Si utilizas el sistema operativo Linux, el proceso es bastante similar al de macOS, ya que incluso Linux utiliza el Terminal como interfaz de línea de comandos. Como hay muchas distribuciones de Linux, el comando exacto que tienes que ejecutar puede variar de una distribución a otra. Puedes consultar la guía de Kinsta para obtener más información.

Por último, puedes cambiar temporalmente tus servidores DNS del lado del cliente. Por defecto, tu ISP te asigna automáticamente los servidores DNS. Pero puedes cambiarlos por IPs DNS públicas temporalmente.

Algunos servidores DNS fiables que puedes probar son Google Public DNS, Cloudflare 1.1.1.1, Quad9 DNS y Cisco OpenDNS.

Configuración de servidores DNS personalizados en Windows 10
Configuración de servidores DNS personalizados en Windows 10

5. Desactiva Temporalmente la CDN de Tu Sitio Web

A veces, el problema también puede estar en tu red de distribución de contenidos (CDN). Si no se puede acceder al servidor de origen de un sitio, la mayoría de las CDN intentarán servir la página web completa desde su caché.

Pero la mayoría de las CDN no activan esta función por defecto, ya que es complejo almacenar en caché los activos dinámicos de la mayoría de los sitios (por ejemplo, el panel de administración de WordPress).

Establecer la regla de página "Cachear todo" en Cloudflare
Establecer la regla de página «Cachear todo» en Cloudflare

Una forma sencilla de solucionar este problema es desactivar temporalmente tu CDN. Por ejemplo, si utilizas el plugin gratuito de WordPress CDN Enabler para vincular los activos de tu sitio a las URL de la CDN, puedes desactivar el plugin y probar a recargar tu sitio.

Lo mismo ocurre con cualquier otro plugin que utilices para conectarte a tu CDN (por ejemplo, WP Rocket, Breeze, W3 Total Cache).

Si no puedes acceder al panel de administración de tu sitio, puedes desactivar el plugin mediante SFTP renombrando el nombre de la carpeta del plugin.

Desactiva todos los plugins mediante SFTP renombrando el nombre de la carpeta de plugins
Desactiva todos los plugins mediante SFTP renombrando el nombre de la carpeta de plugins

Las CDN como Cloudflare o Sucuri, que proporcionan servicios de proxy completo, tienen cortafuegos adicionales entre sus servidores edge y tu servidor de origen. Por lo tanto, es posible que te encuentres con errores HTTP 5xx con más frecuencia al utilizarlos. La mayoría de ellos almacenan en caché los errores 5xx devueltos por tu servidor de origen, por lo que es fácil solucionarlos.

El plan gratuito de Cloudflare es propenso a arrojar un error 5xx. Por desgracia, como es un servicio proxy completo, no hay una forma rápida de desactivarlo. Pero antes de culpar a Cloudflare por ello, debes saber que Cloudflare muestra dos variaciones del error 504 Gateway Timeout.

504 Gateway Timeout en Cloudflare (Variación 1)

Cloudflare te mostrará una pantalla de error 504 Gateway Timeout personalizada cuando el servidor de origen de tu sitio responda con una respuesta HTTP 504 estándar.

Pantalla personalizada de Error 504 de Cloudflare
Pantalla personalizada de Error 504 de Cloudflare

En este caso, el problema reside en tu servidor web y no en Cloudflare. Puedes intentar arreglarlo con las otras soluciones que se mencionan a continuación o ponerte en contacto con el soporte de tu proveedor de alojamiento para obtener ayuda técnica.

504 Gateway Timeout at Cloudflare en Cloudflare (Variación 2)

Si Cloudflare provoca el error 504 Gateway Timeout, la pantalla de error mencionará «cloudflare», que actualmente es el nombre de servidor estándar para todos los activos de Cloudflare. Normalmente, la pantalla de error aparecerá como se indica a continuación:

Pantalla de error de 504 Gateway Timeout causado por Cloudflare
Pantalla de error de 504 Gateway Timeout causado por Cloudflare

Dado que el propio Cloudflare no responde, aquí no verás ninguna pantalla de error con la marca Cloudflare.

Lo más probable es que Cloudflare ya sea consciente del problema y esté trabajando en una solución. Puedes confirmarlo consultando la página web del Estado del Sistema de Cloudflare. También puedes ponerte en contacto con el servicio de soporte de Cloudflare para obtener una solución más rápida.

Comprueba el Estado del Sistema de Cloudflare en cloudflarestatus.com
Comprueba el Estado del Sistema de Cloudflare en cloudflarestatus.com

504 Gateway Timeout en Cloudflare Debido a Cargas Grandes

El tamaño de los archivos que subes a tu sitio web también puede ser un motivo de los tiempos de espera del servidor. Cloudflare limita el tamaño de los archivos subidos (por solicitud HTTP POST) a sólo 100 MB, tanto en los planes gratuitos como en los Pro.

Límites del "Tamaño Máximo de Subida" de Cloudflare para varios planes
Límites del «Tamaño Máximo de Subida» de Cloudflare para varios planes

El problema puede estar en tu proveedor de alojamiento o en Cloudflare. Puedes averiguar la causa exacta omitiendo Cloudflare con tu archivo de hosts DNS y volviendo a intentar la carga.

Si utilizas Cloudflare con WordPress, te recomiendo que utilices su plugin gratuito y excluyas las URL críticas de la caché (como el panel de administración de WordPress). Puedes consultar el post detallado de Kinsta sobre cómo configurar los ajustes de Cloudflare para WordPress.

Lectura recomendada: Cómo Configurar Cloudflare APO para WordPress.

6. Comprueba los Problemas del Servidor con tu Alojamiento

Los problemas del servidor son una de las razones más comunes por las que aparece el error 504 Gateway Timeout. Dado que la mayoría de los sitios de WordPress están alojados en servidores web Nginx o Apache, Nginx o Apache están esperando una respuesta de algo y se agotan los tiempos de espera.

Muchos clientes acuden a Kinsta exactamente por este problema que tienen en otros servidores. La conversación es más o menos así:

Tenemos unos 100.000 visitantes al mes con más de 200.000 visitas. Actualmente, nos alojamos en ____ y experimentamos errores 504 constantemente debido a la sobrecarga del servidor. No me gusta cómo ha tratado el problema ____, y también nos han aconsejado que pronto tendremos que pasarnos a sus planes dedicados, lo que creo que no es necesario.

Los sitios con mucho tráfico y los sitios de comercio electrónico son más propensos a recibir errores 504 por sobrecarga del servidor, ya que generan muchas peticiones no almacenables en caché. Sin embargo, este problema puede producirse en cualquier sitio, incluidos los blogs sencillos. Muchos proveedores te pedirán que pases a un plan de nivel superior para solucionar el problema, lo que en la mayoría de los casos es innecesario.

Kinsta utiliza alojamientos administrados por LXD y contenedores de software LXC orquestados para cada sitio. Así, cada sitio se aloja en su propio contenedor aislado con acceso a todo el software necesario para su funcionamiento (Linux, Nginx, PHP, MySQL). Los recursos son 100% privados y no se comparten con ningún otro sitio, ni siquiera con tus sitios.

La mayoría de los alojamientos que ofrecen planes de alojamiento compartido no tienen esta capacidad. Por lo tanto, un sitio con mucho tráfico alojado en el mismo servidor que el tuyo puede hacer que tu sitio también arroje un error 504.

Además de aislar cada sitio en su contenedor, Kinsta también ha diseñado su infraestructura para gestionar fácilmente miles de conexiones simultáneas. Kinsta incluso aloja las bases de datos MySQL en localhost, no en un servidor remoto. Esto significa que no hay latencia entre máquinas, lo que se traduce en consultas más rápidas y menos posibilidades de que se produzcan timeouts.

Muchos clientes que migran a Kinsta observan enormes disminuciones en los tiempos de carga totales.

Un aumento del 212,5% en el rendimiento tras cambiar a C2.
Un aumento del 212,5% en el rendimiento tras cambiar a C2.

Un servidor sobrecargado no es la única causa de un tiempo de espera del servidor. Puede haber muchas otras razones para el error 504:

Infraestructura de Servidor Lenta

Puede que el servidor que utilizas para alojar tu sitio no tenga recursos suficientes para soportar la carga. Es como jugar a un videojuego moderno y con muchos gráficos en un PC de hace una década.

El servidor se cuelga intentando servir el sitio web. La única solución a este problema es cambiar a un servidor con mejor infraestructura. Por esta razón, incluso el plan de alojamiento más básico de Kinsta podrá gestionar un sitio estático con un tráfico medio.

Necesita más PHP Workers

Los PHP workers se utilizan para ejecutar el código de tu sitio. Un sitio de comercio electrónico que recibe 50.000 visitas al mes necesita muchos más recursos que un simple blog con la misma cantidad de tráfico. Si todos los PHP workers del servidor están ocupados, acumularán una cola.

Cuando la cola se hace demasiado grande, el servidor desatiende las solicitudes antiguas, lo que puede hacer que el servidor lance un error 504 gateway. Puedes preguntar a tu alojamiento sobre la posibilidad de aumentar el número de PHP workers. Esto permitirá a tu sitio ejecutar múltiples peticiones simultáneamente.

Problemas con el Cortafuegos

El cortafuegos de tu servidor podría tener algunos errores o una configuración incorrecta. Quizás, algunas de sus reglas impiden que el servidor establezca una conexión correctamente. Para saber si tu cortafuegos es el culpable, puedes comprobar los registros de errores de tu servidor.

Problemas de Conectividad de Red

Los problemas de conectividad entre el servidor proxy y el servidor web pueden provocar retrasos en la respuesta a las peticiones HTTP. Si utilizas un equilibrador de carga, también podría haber problemas de conectividad de red con él.

Tiempos de Espera HTTP

Los tiempos de espera HTTP pueden producirse cuando una conexión entre el servidor web y el cliente se mantiene abierta durante demasiado tiempo. En los sitios de WordPress, esto suele ocurrir cuando se ejecutan importaciones de WordPress. Una forma de resolver este problema es cambiar a una conexión a Internet más rápida.

También puedes utilizar una herramienta compatible con WP-CLI para ejecutar los scripts directamente en el servidor, evitando por completo la conexión HTTP. Por ejemplo, puedes utilizar el comando wp import WP-CLI para ejecutar el plugin WordPress Importer directamente a través de la interfaz de línea de comandos.

Importante: Los errores 504 Gateway Timeout tienen un aspecto similar a los errores 503 Servicio No Disponible o errores 502 Bad Gateway. Pero todos son diferentes. Si estás experimentando un error 504 en Kinsta, abre un ticket de soporte para que solucionen tu problema inmediatamente.

Para controlar por tu cuenta el tiempo de inactividad de tu sitio web, puedes utilizar una herramienta como updown.io. Comprobará periódicamente el estado de tu sitio web (o de cualquier URL) enviándole una petición HTTP. Puedes establecer la frecuencia de comprobación entre 15 segundos y 1 hora. Si tu sitio web no responde correctamente, te lo notificará por correo electrónico o SMS.

Monitoriza tu sitio web fácilmente con updown.io
Monitoriza tu sitio web fácilmente con updown.io

Con cada cuenta de updown.io obtendrás una generosa cantidad de créditos gratuitos, pero si buscas alternativas más baratas, puedes echar un vistazo a WebGazer o UptimeRobot. Estas dos herramientas te ayudarán a controlar el tiempo de actividad de tu sitio web cada 5 minutos de forma gratuita. Es suficiente para la mayoría de los propietarios de sitios web.

Panel de control de la herramienta de monitorización de sitios web WebGazer
Panel de control de la herramienta de monitorización de sitios web WebGazer

Monitorizar tu sitio web te dará una idea de la frecuencia con la que se cae. Esto es especialmente útil si utilizas un proveedor de alojamiento compartido. La mayoría de los proveedores de aplicaciones, bases de datos y WordPress administrado (como Kinsta) se encargan de ello automáticamente. De ahí que siempre sea recomendable recurrir a ellos.

Para una explicación detallada, consulta el post de Kinsta sobre la importancia del alojamiento administrado de WordPress.

7. Comprueba si hay Spam, Bots o Ataques DDoS

Los atacantes malintencionados pueden hacer que tu servidor web se ralentice enviando demasiadas peticiones y/o que consuman muchos recursos. Si tu sitio recibe spam de bots o sufre un ataque DDoS, puede saturar tu servidor y provocar errores de 504 Gateway Timeout para muchos usuarios auténticos.

Puedes examinar el tráfico y las analíticas de tu servidor para ver si detectas algún patrón irregular en el tráfico del sitio. Si utilizas Kinsta para alojar tu sitio, puedes ver estos datos fácilmente accediendo a tu panel de MyKinsta Analytics.

Captura de Pantalla: Analíticas a Nivel de Sitio en MyKinsta.
Analíticas a Nivel de Sitio en MyKinsta.

Comienza tu investigación mirando las IPs de los principales clientes. Te dará una idea de quién genera el máximo número de peticiones, y desde dónde. Si de repente tu servidor consume un ancho de banda enorme o atrae mucho tráfico, este informe te resultará muy útil.

Captura de Pantalla: IPs de clientes principales mostradas en el panel de Analíticas de MyKinsta.
IPs de clientes principales mostradas en el panel de Analíticas de MyKinsta.

A continuación, puedes consultar el informe Análisis de Caché. Aquí puedes ver cuántas solicitudes están eludiendo la caché, o no la están recibiendo, o están siendo servidas desde la caché. Por razones de rendimiento y estabilidad, debes almacenar en caché el mayor número posible de solicitudes, pero no siempre es posible conseguirlo.

Por ejemplo, los sitios de WooCommerce generan muchas peticiones no almacenables en caché para funciones como el carrito de la compra y el proceso de pago.

La pantalla "Análisis de Caché" en MyKinsta
La pantalla «Análisis de Caché» en MyKinsta

Por último, puedes utilizar un plugin de seguridad para reforzar la seguridad de tu sitio web detectando y bloqueando el tráfico/IP preocupantes. También puedes pedir a tu proveedor de alojamiento que bloquee determinadas IP.

Dependiendo de la duración y magnitud del ataque, éste podría ser un proceso interminable de poner IPs en la lista negra, ya que muchos atacantes cambian sus IPs y direcciones proxy después de ser bloqueados.

Nota: Kinsta no permite a sus clientes instalar plugins de seguridad, ya que pueden afectar enormemente al rendimiento del sitio, especialmente a su capacidad de escaneado. Como Kinsta utiliza equilibradores de carga con Google Cloud Platform, el bloqueo de IPs no siempre funcionaría como se pretende.

Puedes utilizar soluciones de seguridad dedicadas, como Cloudflare o Sucuri, para proteger tus sitios de ataques DDoS y spambots. Para más información, puedes consultar los artículos de Kinsta sobre cómo instalar Cloudflare en tu sitio y cómo Sucuri ayudó a detener un ataque DDoS en seco.

8. Repara Tu Base de Datos de WordPress Dañada

A veces, el error 504 Gateway Timeout puede deberse a una base de datos corrupta, especialmente en sitios WordPress. Normalmente, esto se debe a tablas o archivos de base de datos corruptos. A veces, también puede deberse a un problema grave de seguridad, como que hayan pirateado tu sitio o tu base de datos.

Reparar una base de datos corrupta de WordPress depende del problema. Plugins como WP-DBManager facilitan el diagnóstico de problemas en la base de datos y su reparación. Para empezar, te recomiendo que leas el tutorial detallado de Kinsta sobre cómo reparar problemas con la base de datos de WordPress.

9. Comprueba los Plugins y Temas de tu Sitio

En la mayoría de los casos, los plugins y temas de terceros no causan errores 504. Pero existe una pequeña posibilidad de que provoquen tiempos de espera en el servidor, normalmente al poner en cola muchas peticiones no almacenadas en caché generadas por el plugin/tema. Como esto ocupa muchos PHP workers de tu servidor, puede provocar errores 504.

Un buen ejemplo de este problema es WooCommerce, un plugin que se instala para añadir funcionalidad de comercio electrónico a los sitios de WordPress.

La forma más sencilla de solucionar este problema es desactivar todos tus plugins. Recuerda que no perderás ningún dato si simplemente desactivas un plugin.

Si puedes acceder a tu panel de administración, ve a la pantalla Plugins, selecciona Desactivar en el menú de acciones masivas, marca todos los plugins y pulsa el botón Aplicar. Esto desactivará todos tus plugins.

Desactivar plugins en WordPress
Desactivar todos los plugins de WordPress a través del panel de administración de WP

Si no puedes acceder a tu área de administración, puedes desactivar los plugins a través de SFTP utilizando el método descrito anteriormente. Sólo tienes que cambiar el nombre de la carpeta principal de plugins para desactivar todos los plugins en bloque.

Una vez que hayas desactivado todos los plugins, comprueba si tu sitio se carga correctamente. Si funciona, debes activar cada plugin, probando el sitio después de activar cada plugin.

Por último, asegúrate de que tus plugins, temas y core de WordPress están actualizados. Asegúrate también de que tu servidor ejecuta la versión recomendada de PHP.

Si esto te parece demasiado abrumador, siempre puedes pedir ayuda a tu proveedor de alojamiento. Kinsta utiliza Kinsta APM y otras técnicas de solución de problemas para ayudar a los clientes a determinar qué plugin, consulta o script puede causar el error.

En el peor de los casos, como una consulta ineficiente o un código defectuoso en un plugin/tema, puedes recurrir a un desarrollador de WordPress para que solucione el problema.

10. Comprueba los Registros de Errores

Consultar los registros de errores puede ser muy útil para solucionar y depurar errores 504 en tu sitio. Esto puede ayudarte a reducir un problema en tu sitio rápidamente, especialmente si es consecuencia de un plugin exigente en tu sitio.

Si eres cliente de Kinsta, puedes ver fácilmente los errores registrados en el panel MyKinsta. Empieza seleccionando Sitios WordPress en el menú de la barra lateral, elige el sitio que quieras examinar y, a continuación, selecciona Registros para abrir la página del visor de registros.

Captura de Pantalla: Visualización del registro de errores en el panel de control de MyKinsta.
Visualización del registro de errores en el panel de control de MyKinsta.

Si tu alojamiento no dispone de una herramienta de registro, puedes activar el modo de depuración de WordPress añadiendo el siguiente código a tu archivo wp-config.php:

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

La constante WP_DEBUG activa o desactiva el modo de depuración de WordPress. Tiene dos constantes complementarias opcionales que pueden ampliar sus funciones. La constante WP_DEBUG_LOG ordena que todos los errores se guarden en un archivo debug.log dentro del directorio /wp-content/. Si no ves este archivo, siempre puedes crear uno.

La constante WP_DEBUG_DISPLAY controla si los registros de depuración se muestran en la página HTML. Si se define como falso, se ocultarán todos los errores, pero podrás revisarlos más tarde, ya que también has definido WP_DEBUG_LOG como verdadero.

Importante: Si tienes WP_DEBUG activado en el entorno Kinsta, dirigirá todos los errores al archivo debug.log y no al error.log del panel MyKinsta.

También puedes descargar los archivos de registro de errores de WordPress sin procesar a través de SFTP. Normalmente, puedes encontrar los registros de errores en el directorio root de tu servidor, en una carpeta llamada «logs».

Acceder a la carpeta de registros de errores de WordPress mediante SFTP
Acceder a la carpeta de registros de errores de WordPress mediante SFTP

Los usuarios de Kinsta también pueden activar el modo de depuración de WordPress desde su panel de control MyKinsta. Para ello, ve a Sitios > Herramientas > Depuración de WordPress y haz clic en el botón Activar. Esto te permitirá ver los errores y avisos de PHP sin habilitar el modo de depuración a través de SSH o SFTP.

Por último, puedes comprobar los archivos de registro del servidor. Dependiendo del servidor que utilices para alojar tu sitio de WordPress, suelen encontrarse en estas ubicaciones:

  • Apache: /var/log/apache2/error.log/
  • Nginx: /var/log/nginx/error.log/

Puedes consultar la documentación relacionada con el registro de Apache o Nginx para obtener más información.

11. Configura Correctamente Apache o Nginx

Puedes editar los archivos de configuración de tu servidor para aumentar los límites de recursos para determinadas directivas. Esto puede ayudarte a resolver el error 504 Gateway Timeout.

Para Servidores Web Apache

En primer lugar, añade el siguiente código a tu httpd.conf:

TimeOut 600

Esta configuración define cuánto tiempo esperará el servidor a ciertas peticiones antes de marcarlo como un problema de tiempo de espera de la red. Su valor por defecto es de 60 segundos (versión Apache 2.4).

Sólo puedes añadir esta directiva en tu archivo httpd.conf, no en tu archivo .htaccess. Como la mayoría de los proveedores de alojamiento compartido no te permiten modificar el archivo httpd.conf, puedes probar a aumentar el valor de la directiva LimitRequestBody en tu archivo .htaccess.

A continuación, añade la siguiente línea a tu archivo php.ini:

max_execution_time 300

El valor por defecto de la directiva max_execution_time de PHP es de 30 segundos. Aumentarlo permitirá que los scripts PHP de tu sitio se ejecuten durante más tiempo.

Para Servidores Web Nginx

Si ejecutas tus sitios WordPress en Nginx + FastCGI Process Manager (PHP-FPM) o utilizas Nginx como proxy inverso para Apache, puedes modificar la configuración del servidor para evitar los errores 504 Gateway Timeout.

Error 504 Gateway Timeout en Nginx + FastCGI (PHP-FPM)

En primer lugar, debes editar el archivo de configuración de tu pool PHP-FPM. Puedes encontrarlo en la ubicación /etc/php7.4/fpm/pool.d/www.conf de tu servidor Nginx (la ruta exacta puede variar en función de la versión de PHP). Alternativamente, puedes ejecutar el siguiente comando en tu terminal para editar el archivo de configuración del grupo PHP-FPM:

sudo nano /etc/php/7.2/fpm/pool.d/www.conf

A continuación, establece la siguiente directiva:

request_terminate_timeout = 300

Después de esto, debes editar tu archivo php.ini. Puedes localizarlo en /etc/php.ini. Abre el archivo y añade/cambia el valor de la directiva max_execution_time a 300 segundos.

max_execution_time = 300

Por último, añade el siguiente código al bloque de ubicación de tu archivo nginx.conf:

location ~ .php$ {
...
fastcgi_read_timeout 300;
}

Recarga Nginx y PHP-FPM para que los cambios surtan efecto.

sudo service nginx reload
sudo service php7.4-fpm reload

El código exacto para recargar PHP-FPM variará en función de la versión de PHP instalada en tu servidor. Prueba tu sitio para ver si se ha solucionado el problema.

Error 504 Gateway Timeout en el Proxy Nginx

Si utilizas Nginx como servidor proxy inverso para Apache, puedes hacerlo más indulgente con los tiempos de espera del servidor añadiendo las siguientes directivas a tu archivo nginx.conf:

proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;

No olvides recargar Nginx después de hacer los cambios.

sudo service nginx reload

Otros Errores HTTP como el 504 Gateway Timeout

Como hemos mencionado anteriormente en el artículo, muchos otros errores HTTP 5xx son como el error 504 Gateway Timeout. Esto se debe a que todos ocurren en el lado del servidor. Estos errores incluyen:

Otros errores HTTP causados por problemas del lado del cliente, como el error 404 No encontrado, son también como el error 504. Puedes consultar la guía y la lista detalladas de códigos de estado HTTP de Kinsta para obtener más información.

Resumen

Tu sitio puede verse afectado por el error 504 Gateway Timeout debido a múltiples razones. En este artículo has aprendido a solucionarlos todos. Normalmente, estos errores se deben a problemas del servidor, en cuyo caso puedes ponerte en contacto con tu proveedor de alojamiento y resolverlo rápidamente.

Sin embargo, también debes comprender que este error puede deberse a plugins de terceros, temas, servicios, consultas ineficaces a la base de datos, o a una combinación de dos o más de estos elementos. Si estás sobrecargando los recursos de tu servidor (por ejemplo, los PHP workers), es recomendable optimizar el rendimiento de tu sitio.

Si sigues observando que tu sitio web no funciona correctamente, es muy posible que necesites actualizar tu plan de alojamiento o el número de PHP workers. Te recomiendo que consideres esta opción sólo después de haber agotado todas las demás soluciones descritas en este artículo.

Desde simples sitios estáticos hasta complejos sitios de comercio electrónico y de membresía, los planes de alojamiento escalables de Kinsta están diseñados para adaptarse a todo tipo de sitios web. Para saber más sobre nuestro alojamiento escalable en la nube, consulta este artículo sobre las cosas más importantes que debes saber sobre Kinsta!

¿Nos hemos dejado algo? Si todavía te resulta difícil solucionar el error 504 Gateway Timeout en tu sitio web, deja un comentario a continuación.

Salman Ravoof

Salman Ravoof es desarrollador web autodidacta, escritor, creador y un gran admirador del Software Libre y de Código Abierto (FOSS, Free and Open Source Software). Además de la tecnología, le apasionan la ciencia, la filosofía, la fotografía, las artes, los gatos y la comida. Obtén más información sobre él en su sitio web, y conecta con Salman en X.