Ir al contenido

Glosario Error 504

¿Qué es el Error 504 (Gateway Timeout)?

  • SEO Técnico
Definición

El error 504 (Gateway Timeout) es el código de estado HTTP que devuelve un servidor que actúa como pasarela o proxy cuando no recibe a tiempo la respuesta del servidor que tiene detrás. En español se traduce como «tiempo de espera de la puerta de enlace agotado». El fallo está entre dos servidores: la pasarela esperó hasta su límite y cortó.

Una puerta cerrada en primer plano y, detrás a la derecha, otra puerta más pequeña; el camino de puntos que viene de ella se desvanece antes de llegar, y encima hay un cronómetro naranja, sobre fondo azul oscuro.
En esta página 12
  1. Origen del término
  2. Cómo funciona
  3. Tipos y variantes
  4. Ejemplos
  5. Cómo se mide
  6. Ventajas y desventajas
  7. Diferencias con otros conceptos
  8. Críticas y límites
  9. Cómo se aplica paso a paso
  10. Buenas prácticas
  11. Errores frecuentes
  12. Cómo se hizo esta entrada
En breve

Error 504: un proxy o una CDN no recibió a tiempo la respuesta del servidor de origen. Qué límite de tiempo saltó y qué hace Google con el error.

Una puerta cerrada en primer plano y, detrás a la derecha, otra puerta más pequeña; el camino de puntos que viene de ella se desvanece antes de llegar, y encima hay un cronómetro naranja, sobre fondo azul oscuro.

Origen del término

El 504 apareció en el RFC 2068, la especificación de HTTP/1.1 de enero de 1997. El RFC 1945 de HTTP/1.0, de mayo de 1996, ya tenía el 502, pero no el 504. Hoy lo define el RFC 9110, de junio de 2022, en el apartado 15.6.5: la pasarela «did not receive a timely response» del servidor que necesitaba.

La cadena de pasarelas está explicada en la entrada sobre el error 502. El texto varía según el software (nginx titula su página «504 Gateway Time-out»), pero el código es el mismo.

Cómo funciona

Cada capa que reenvía una petición decide cuánto espera a la siguiente. Si la aplicación tarda más, esa capa corta y responde con un 504. Cloudflare cita como motivos una consulta de datos grande, un proceso largo o un servidor sin recursos.

Valores por defecto según cada fabricante (consultados el 13.11.2026):

  • nginx: 60 segundos en proxy_read_timeout y fastcgi_read_timeout, contados entre dos lecturas.
  • Apache httpd: ProxyTimeout toma el valor de TimeOut, 60 segundos.
  • AWS Application Load Balancer: 60 segundos de inactividad (idle timeout) y 10 para abrir la conexión.
  • Amazon CloudFront: 30 segundos de espera por la respuesta del origen; en peticiones GET y HEAD lo vuelve a intentar hasta tres veces.
  • Cloudflare: 125 segundos; en el plan Enterprise, hasta 6.000.
  • PHP: 30 segundos en max_execution_time, que fuera de Windows mide tiempo de CPU; la espera a la base de datos no cuenta.

Gana el límite más corto. Con nginx a 60 segundos y CloudFront a 30, corta antes CloudFront. En una petición POST, el visitante ve su 504 a los 30 segundos; en GET y HEAD, CloudFront repite el intento hasta tres veces y el 504 llega hacia los 90. Subir el límite en una capa no sirve si delante hay otra que corta antes.

¿Qué capa corta primero?

Cloudflare responde de otra forma: cuando se agotan sus 125 segundos, devuelve un 524, un código propio que el RFC 9110 no define.

Tipos y variantes

Una misma capa puede dar el 504 por motivos distintos. Para su balanceador, AWS enumera estos: no abre la conexión en 10 segundos, el destino no responde antes del tiempo de inactividad, una función Lambda no contesta o el destino anuncia más bytes de los que envía.

CloudFront también devuelve un 504 cuando un cortafuegos bloquea su tráfico hacia el origen o el origen no es accesible desde internet. Ahí no hay aplicación lenta: la petición no llega.

En Cloudflare, un 504 con su logotipo viene del servidor de origen; una página en blanco sin logotipo la generó Cloudflare.

Ejemplos

Ejemplo de cálculo: una tienda online con Cloudflare delante y nginx con PHP-FPM detrás exporta los pedidos del año, y la consulta tarda 90 segundos sin enviar nada. A los 60, nginx devuelve un 504, que aparece con el logotipo de Cloudflare porque viene del origen.

El administrador sube fastcgi_read_timeout a 180 segundos y la exportación funciona. Cuando el archivo crece y la consulta pasa de 125 segundos, el error vuelve como 524, porque ahora salta el límite de Cloudflare. Cloudflare propone para esos procesos un subdominio sin proxy.

Cómo se mide

La duración delata la capa. curl con la opción -w y las variables %{http_code} y %{time_total} muestra código y segundos. Con los valores por defecto, un 504 a los 30 segundos en una petición POST, o hacia los 90 en GET y HEAD por los tres intentos, apunta a CloudFront, uno a los 60 a nginx o a un balanceador de AWS, y un 524 hacia los 125 a Cloudflare. AWS propone medir además el tiempo hasta el primer byte, el TTFB, en cada servidor.

El registro lo confirma: cuando se agota el plazo, nginx anota «upstream timed out», según su código fuente.

En Search Console, las estadísticas de rastreo separan «Error del servidor (5XX)», donde cae el 504, de los casos en que «se ha agotado el tiempo de espera de la solicitud de la página».

Ventajas y desventajas

Un límite largo deja terminar procesos lentos; uno corto enseña antes el error. AWS recomienda que el tiempo de inactividad de la aplicación sea mayor que el del balanceador: si la aplicación cierra antes la conexión, el balanceador puede devolver un 502.

Para el SEO, el 504 sigue la regla general de los 5xx: la documentación de Google sobre códigos de estado (4 de febrero de 2026) describe aparte el 500, el 502 y el 503, pero no el 504. Los rastreadores bajan el ritmo, ignoran el contenido y conservan las URL indexadas, «but eventually dropped», sin plazo. El error que dura días se trata en la entrada sobre el error 503.

Distinto es que el servidor no conteste a Googlebot. Google trata los «network timeouts», las conexiones reiniciadas y los errores de DNS de forma parecida a los 5xx, pero sin respuesta no hay código de estado. Según su página sobre errores de red, el rastreo se frena de inmediato y las URL indexadas que no se alcanzan salen del índice «within days».

Diferencias con otros conceptos

CódigoQuién espera a quiénDónde está definido
504 Gateway TimeoutLa pasarela espera al origen y se agota el plazoRFC 9110, apartado 15.6.5
502 Bad GatewayLa pasarela recibe del origen una respuesta no válidaRFC 9110, apartado 15.6.3
524 A timeout occurredCloudflare espera al origen más de 125 segundosSolo Cloudflare, fuera del estándar
408 Request TimeoutEl servidor espera la petición completa del clienteRFC 9110, apartado 15.5.9

Fuente: RFC 9110 (junio de 2022); Cloudflare, «Error 524» (consultado el 13.11.2026).

El 500 es el fallo genérico del servidor, y el 503, sobrecarga o mantenimiento.

Críticas y límites

El RFC 9110 pide una respuesta «timely», pero no fija segundos. Con los valores por defecto, una respuesta que tarda 45 segundos da un 504 detrás de CloudFront y llega con normalidad detrás de Cloudflare.

Cloudflare define el 502 y el 504 de forma más amplia que el RFC: como «unable to establish contact» con el servidor de origen.

Cómo se aplica paso a paso

  • Mide con curl cuántos segundos tarda el 504 y compáralos con los límites de cada capa.
  • Busca la línea de esa hora en el registro del proxy y la petición lenta en el de la aplicación.
  • Saca las tareas largas de la petición web, a una cola o a un cron, y consulta su estado por sondeo.
  • Si una operación larga debe ir en la misma conexión, envía al menos un byte antes de que venza la inactividad, como recomienda AWS.
  • Ajusta los límites solo después, de la aplicación hacia fuera, para que ninguna capa exterior corte antes.
  • Tras el arreglo, revisa en Search Console el estado del host.
  • Si solo visitas la página: recarga más tarde; si a otras personas les funciona, revisa tu VPN, proxy o DNS, como indica MDN.

Buenas prácticas

  • Registra en el origen el tiempo de respuesta de cada petición, como recomienda Cloudflare.
  • Apunta en un documento el límite real de cada capa, de la CDN a PHP.

Errores frecuentes

  • Subir el límite de nginx con un CloudFront delante que corta a los 30 segundos.
  • Buscar un 504 cuando Cloudflare muestra un 524.
  • Dar por hecho que max_execution_time de PHP corta a los 30 segundos de reloj.
  • Suponer que Google da un número fijo de días antes de retirar URL con 504.

Cómo se hizo esta entrada

Esta entrada se redactó en noviembre de 2026 con ayuda de IA, a partir de los RFC, la documentación de Google y Search Console y la de MDN, nginx, Apache, AWS, Cloudflare y PHP. Los límites se comprobaron el 13.11.2026. No contiene datos de clientes.

Manuel Riveiro Rodriguez CEO & Digital Strategist

Una auditoría técnica revisa esto y el resto en un solo paso.

Solicitar auditoría

Preguntas frecuentes

¿Es culpa mía un error 504?

El código lo genera un servidor de la web que visitas. MDN menciona una excepción: si la página funciona para otras personas, revisa tu VPN, proxy o DNS.

¿Se soluciona solo un error 504?

Puede ocurrir si la causa era un pico de carga; MDN escribe que la web puede volver a funcionar más tarde. Si llega siempre tras los mismos segundos, una petición supera el límite de una capa.

¿Qué es el error 504 en Google?

Es la misma respuesta vista por Googlebot. Google la trata como cualquier 5xx: frena el rastreo y, si persiste, retira las URL del índice, sin plazo fijo.

¿Qué diferencia hay entre un 502 y un 504?

En el 502 la pasarela recibe una respuesta no válida; en el 504 no recibe ninguna a tiempo. La comparación completa está en la entrada sobre el error 502.

¿Por qué aparece un 504 en una app o servicio?

Las apps, de un juego a la banca en línea, piden sus datos a servidores con pasarelas y límites de tiempo, como una web. Desde fuera solo queda esperar y reintentar.

Fuentes

  1. IETF, RFC 9110 «HTTP Semantics», junio de 2022, apartados 15.5.9 (408), 15.6.3 (502) y 15.6.5 (504) (en inglés).
  2. IETF, RFC 2068 «Hypertext Transfer Protocol -- HTTP/1.1», enero de 1997, apartado 10.5.5 (en inglés).
  3. IETF, RFC 1945 «Hypertext Transfer Protocol -- HTTP/1.0», mayo de 1996 (en inglés).
  4. Google, «How HTTP status codes affect Google's crawlers», actualizado el 4 de febrero de 2026 (en inglés).
  5. Google, «Debug network and DNS errors for Google's crawlers», actualizado el 18 de diciembre de 2025 (en inglés).
  6. Ayuda de Search Console, «Informe "Estadísticas de rastreo"».
  7. MDN, «504 Gateway Timeout», modificada el 22 de junio de 2026 (en inglés).
  8. nginx, «Module ngx_http_proxy_module», directiva proxy_read_timeout (en inglés).
  9. nginx, «Module ngx_http_fastcgi_module», directiva fastcgi_read_timeout (en inglés).
  10. nginx, código fuente ngx_http_upstream.c: mensaje «upstream timed out» y respuesta 504 (en inglés).
  11. nginx, código fuente ngx_http_special_response.c: página «504 Gateway Time-out» (en inglés).
  12. Apache HTTP Server 2.4, «mod_proxy», directiva ProxyTimeout (en inglés).
  13. Apache HTTP Server 2.4, «core», directiva TimeOut (en inglés).
  14. AWS, «Troubleshoot your Application Load Balancers», apartado HTTP 504 (en inglés).
  15. AWS, «Edit attributes for your Application Load Balancer», Connection idle timeout (en inglés).
  16. AWS, «HTTP 504 status code (Gateway Timeout)», Amazon CloudFront (en inglés).
  17. AWS, «Origin settings», Amazon CloudFront, Response timeout (en inglés).
  18. Cloudflare, «Error 502 or 504», actualizado el 12 de octubre de 2026 (en inglés).
  19. Cloudflare, «Error 524», actualizado el 23 de julio de 2026 (en inglés).
  20. Cloudflare, «Connection limits», actualizado el 22 de octubre de 2026 (en inglés).
  21. Manual de PHP, «Configuración en tiempo de ejecución», directiva max_execution_time.