Rendimiento y mantenimiento

Error 504 Gateway timeout: qué es y cómo solucionarlo

El error 504 Gateway Timeout ocurre cuando un servidor intermediario no recibe respuesta a tiempo del servidor de origen; esta guía te explica cómo diagnosticarlo y resolverlo.

Overhead view of a laptop showing data visualizations and charts on its screen.

El error 504 Gateway Timeout indica que un servidor intermediario (proxy, CDN, balanceador de carga o Nginx actuando como reverse proxy) esperó una respuesta del servidor de origen y no la recibió dentro del tiempo límite. El problema no está en tu navegador: está en la comunicación entre servidores.

A diferencia del error 500, que es genérico, el 504 apunta directamente a un problema de tiempo de respuesta en la cadena de servidores. A continuación te explicamos las causas y las soluciones paso a paso.

¿Por qué ocurre el error 504?

El error 504 aparece cuando el servidor "del medio" (gateway) está esperando que el servidor "de atrás" (origen) responda, y ese tiempo de espera se agota. Esto puede ocurrir por varias razones:

  • El servidor de origen está caído o sobrecargado: no puede procesar nuevas peticiones a tiempo.
  • Timeouts mal configurados: el gateway tiene un límite de tiempo muy corto para una tarea que necesita más tiempo (por ejemplo, generar un reporte grande o procesar una importación).
  • Consultas lentas a la base de datos: un query que tarda 60+ segundos puede agotar el timeout del proxy antes de que PHP termine.
  • Tráfico pico inesperado: un aluvión de visitas satura el servidor de origen y hace que las respuestas lleguen tarde o nunca.
  • Problemas de red entre servidores: latencia alta o pérdida de paquetes en la infraestructura del hosting.

Cómo solucionar el error 504 paso a paso

Paso 1: Verifica si el problema es temporal

Recarga la página después de 30 segundos. Los errores 504 ocasionales —causados por un pico de tráfico momentáneo o un reinicio de servicio— se resuelven solos en segundos o pocos minutos.

Si el error persiste, pasa al siguiente paso.

Paso 2: Revisa los logs del servidor

Los logs de error de Nginx o Apache muestran exactamente qué servicio upstream no respondió y cuánto tiempo esperó. Busca líneas como:

upstream timed out (110: Connection timed out) while reading response header from upstream

Esto confirma que Nginx (como reverse proxy) esperó demasiado a PHP-FPM o a Apache en el backend.

Paso 3: Aumenta los timeouts en Nginx o Apache

Si el proceso legítimamente necesita más tiempo (un import masivo, la generación de un PDF grande, etc.), aumenta los límites.

En Nginx (bloque location o server):

proxy_connect_timeout 120s;
proxy_send_timeout    120s;
proxy_read_timeout    120s;

En Apache como proxy inverso:

ProxyTimeout 120

También ajusta el timeout de PHP-FPM para que sea igual o mayor:

request_terminate_timeout = 120s

Paso 4: Revisa el rendimiento de la base de datos

Una consulta lenta es frecuentemente la causa raíz. Activa el slow query log de MySQL/MariaDB:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 5

Si encuentras queries que tardan más de 5 segundos, revisa los índices de esas tablas. Un EXPLAIN sobre el query lento te dirá si está haciendo un full table scan.

Paso 5: Verifica los recursos del servidor

Un servidor con CPU al 100% o memoria agotada no puede procesar peticiones a tiempo. Comprueba el uso de recursos:

top
free -h
df -h

Si el servidor está saturado de forma habitual, es momento de escalar: más RAM, un plan de hosting superior, o mover procesos pesados a colas de trabajo asíncronas.

Error 504 en WordPress: causas específicas

En WordPress, el 504 suele aparecer al:

  • Importar un archivo XML grande (importador nativo o WooCommerce).
  • Instalar o actualizar muchos plugins a la vez.
  • Ejecutar plugins que hacen peticiones a APIs externas lentas (pasarelas de pago, CRMs).
  • Usar un page builder que regenera CSS/JS de forma masiva.

Además de aumentar los timeouts de PHP, también puedes añadir en wp-config.php:

define('WP_HTTP_BLOCK_EXTERNAL', false);
define('WP_MEMORY_LIMIT', '256M');
set_time_limit(300);

Si el problema viene de una API externa lenta, considera implementar un sistema de caché para esas llamadas o procesarlas en segundo plano.

Diferencia entre error 502 y error 504

Código Significado Causa típica
502 Bad Gateway Respuesta inválida del servidor upstream PHP-FPM caído, respuesta malformada
504 Gateway Timeout Sin respuesta en tiempo límite del upstream Proceso lento, servidor saturado, timeout bajo

Ambos son errores del lado del servidor, pero el 504 señala específicamente un problema de tiempo de espera.

Si estos errores aparecen con frecuencia, puede ser señal de que tu sitio necesita una revisión técnica profunda. En elenlace.com ofrecemos diagnósticos de rendimiento y planes de mantenimiento que previenen este tipo de caídas.

Para más contexto sobre cómo mantener tu sitio rápido y estable, consulta nuestras guías de rendimiento web.

Conclusiones clave

  • El error 504 es un problema de tiempo de respuesta entre servidores, no un error del usuario ni del navegador.
  • Lo primero es revisar los logs: identifican el servicio upstream que no respondió a tiempo.
  • Aumentar los timeouts en Nginx/Apache y en PHP-FPM resuelve los casos donde el proceso necesita más tiempo legítimamente.
  • Las consultas lentas a la base de datos son una causa raíz frecuente; el slow query log es tu aliado.
  • Un servidor con recursos agotados producirá errores 504 de forma habitual hasta que se escale la infraestructura.

¿El error 504 sigue apareciendo en tu sitio? Contáctanos en elenlace.com y nuestro equipo identifica la causa raíz y te propone una solución definitiva.

Preguntas frecuentes

¿El error 504 es culpa de mi proveedor de hosting?

No siempre. Puede deberse a un script PHP lento, a una consulta de base de datos mal optimizada o a un pico de tráfico no previsto. El hosting es responsable de la infraestructura base; tú (o tu desarrollador) eres responsable de que el código responda en tiempo razonable. Los logs aclaran quién es el responsable en cada caso.

¿El error 504 afecta el SEO?

Si ocurre de forma puntual y breve, el impacto en SEO es mínimo. Si Googlebot encuentra errores 504 repetidamente al intentar rastrear tus páginas, puede reducir el crawl budget y, con el tiempo, afectar tu posicionamiento. La estabilidad del servidor es un factor indirecto de SEO.

¿Cómo sé si el error 504 lo está causando Cloudflare?

Si usas Cloudflare como proxy, los errores 504 pueden venir de dos lugares: de Cloudflare esperando a tu servidor de origen, o de tu servidor en sí. Cloudflare muestra su propio diseño de página de error 504 cuando el timeout es suyo. Si la página de error tiene el estilo de tu hosting o de Nginx/Apache, el fallo está en tu infraestructura, no en Cloudflare.

¿Qué timeout es razonable para un sitio web normal?

Para páginas de contenido estándar, 30 segundos es más que suficiente. Para operaciones pesadas como importaciones o generación de reportes, 120-300 segundos puede ser necesario. Si un proceso legítimo necesita más de 5 minutos, considera moverlo a una cola de trabajo asíncrona (cron job, worker) en lugar de ejecutarlo dentro de una petición HTTP.

Para saber más

Otros proveedores y guías que vale la pena comparar:

← Todos