Error 504 Gateway Timeout

Qué significa un 504 Gateway Timeout, cómo lo provocan los servidores upstream lentos, cómo trata Googlebot los timeouts y sus consecuencias para el presupuesto de rastreo y la indexación.

Publicado por primera vez: 28 jun 2026 · Última actualización: 6 ago 2026 · Avanzado
Idiomas
1 señal de evidencia en esta página

Un 504 Gateway Timeout significa que un gateway o proxy (CDN, load balancer, reverse proxy) no obtuvo una respuesta a tiempo del servidor upstream que tiene detrás. Es un timeout, distinto de un 502 (respuesta defectuosa) o de un 503 (indisponibilidad explícita). No es una penalización de Google; es un problema de accesibilidad. Los 504 aislados se reintentan, pero los timeouts sostenidos están junto a los 429/500/503 entre los errores que hacen que Googlebot reduzca el ritmo y, si persisten, retire páginas del índice. Identifique qué salto agotó realmente el tiempo antes de arreglar nada: el tiempo de respuesta del servidor (TTFB) es una palanca preventiva potente para los origins lentos, pero subir el valor del timeout no es una solución en ningún caso.

TL;DR — Un 504 es un gateway/proxy indicándole que el servidor upstream no respondió dentro de la ventana de timeout: un timeout, distinto de un 502 (respuesta defectuosa) o de un 503 (indisponibilidad explícita). Es un problema de accesibilidad, no una penalización. Los timeouts están en el mismo grupo que los 429/500/503: Googlebot reduce el ritmo cuando los detecta, y unos 504 sostenidos arriesgan la desindexación. La solución duradera es el tiempo de respuesta del servidor (TTFB), no un valor de timeout más alto: subir el timeout suele enmascarar un upstream lento y puede empeorar las cosas bajo carga.

Dónde se origina un 504 en la cadena de solicitudes

Una ruta de solicitud moderna se parece aproximadamente a esto: navegador → CDN/edge → load balancer → reverse proxy (por ejemplo, Nginx) → servidor de aplicación (PHP-FPM, Node, etc.) → base de datos / APIs de terceros. Un 504 lo genera el componente que estaba esperando al que tenía detrás cuando expiró su timeout. Esa es la primera pregunta diagnóstica: Evidence for this claim A 504 response means a gateway or proxy did not receive a timely response from an upstream server. Scope: RFC 9110 defines the timeout semantics; it does not determine why the upstream response was delayed. Confidence: high · Verified: IETF: RFC 9110 §15.6.5 — 504 Gateway Timeout

  • CDN/edge agotando el tiempo con el origin → la solución es el rendimiento del origin, o subir el timeout de upstream del CDN (con cuidado; véase más abajo).
  • Load balancer agotando el tiempo con el servidor de aplicación → revise el estado del servidor de aplicación y el autoescalado.
  • Reverse proxy agotando el tiempo con el proceso de la aplicación → mire proxy_read_timeout / fastcgi_read_timeout de Nginx y la consulta o el proceso lento que en realidad está detrás.

Acertar con la capa importa, porque «arreglar el timeout en el edge» y «arreglar la consulta lenta a base de datos en el origin» son trabajos completamente distintos.

Diagnóstico del timeout 504

El código de estado por sí solo no demuestra una causa: solo indica que un gateway agotó el tiempo esperando a un upstream. Estos son los sospechosos habituales que conviene comprobar, no hechos que el 504 ya haya establecido; confírmelos con logs y trazas antes de actuar sobre alguno:

  • Consultas lentas a base de datos o llamadas a APIs upstream. Una sola consulta sin índice o una dependencia de terceros con retardo puede llevar el tiempo de respuesta más allá del timeout.
  • Sobrecarga del servidor o de la aplicación y agotamiento de recursos. Con suficiente carga concurrente, las solicitudes se encolan, los procesos de trabajo se llenan y las respuestas dejan de llegar a tiempo.
  • Valores de timeout mal configurados en Nginx, Apache, el load balancer o el CDN, a menudo descoordinados entre capas, de forma que una se rinde antes que otra.
  • Picos de tráfico, avalanchas de bots o DDoS que desbordan temporalmente la capacidad.

Diagnóstico del timeout 504

Esto es lo que los hace desagradables. A diferencia de una caída total, un 504 aparece con frecuencia solo bajo carga, lo que significa que un monitor de disponibilidad que hace ping durante una ventana tranquila puede mostrar el 100 % en verde mientras Googlebot, que rastrea en ráfagas más intensas, acumula timeouts en silencio. En URL Inspection (Herramienta de inspección de URLs) de Google Search Console esto puede aparecer como una condición “Hostload exceeded” en lugar de un error limpio y constante. Si su monitorización dice que todo va bien pero Crawl Stats (Informe “Estadísticas de rastreo”) no está de acuerdo, los 504 dependientes de la carga son un sospechoso principal.

Cómo gestionan los timeouts Googlebot (y Bingbot)

Google no trata un 504 como un juicio sobre la calidad del contenido: es una señal de disponibilidad, y la respuesta es una limitación automática del rastreo. Su documentación sobre rastreo es explícita: “Googlebot will scale back its crawling if it detects that your servers are having trouble responding to crawl requests.” (traducción) «Googlebot reducirá su rastreo si detecta que sus servidores tienen problemas para responder a las solicitudes de rastreo.» La guía de presupuesto de rastreo para sitios grandes dice lo mismo en términos de presupuesto: “If the site slows down or responds with server errors, the limit goes down and Google crawls less.” (traducción) «Si el sitio se ralentiza o responde con errores de servidor, el límite baja y Google rastrea menos.» Evidence for this claim Google reduces crawling when server errors or slow responses indicate a site is having trouble responding. Scope: Google's documentation supports automatic crawl throttling for server trouble; it does not attribute a specific 504 to any particular bottleneck. Confidence: high · Verified: Google: Troubleshoot crawling errors

El planteamiento más reciente que conecta esto directamente con respuestas lentas o con timeout procede del explicativo Inside Googlebot de Google de marzo de 2026, donde se cita a Gary Illyes diciendo: “If your server is struggling to serve bytes, our crawlers will automatically back off to avoid overloading your infrastructure, which will drop your crawl frequency.” (traducción) «Si su servidor tiene dificultades para servir bytes, nuestros rastreadores se echarán atrás automáticamente para evitar sobrecargar su infraestructura, lo que reducirá su frecuencia de rastreo.» (Según la cobertura de Search Engine Land; conviene confirmarlo con la grabación o la transcripción original si lo cita en otro sitio.) Un 504 es esa dificultad hecha visible.

Un matiz que conviene entender: Google no siempre ve un «504» literal como lo ve su navegador. Si el timeout ocurre antes de que Googlebot reciba cualquier línea de estado, se registra como un error de timeout o de red en Crawl Stats (Informe “Estadísticas de rastreo”) en lugar de como un 5XX limpio. Pero cuando un proxy o CDN intermediario agota el tiempo y genera su propia respuesta 504, Googlebot recibe un error de servidor 5XX estándar. En cualquier caso el efecto es idéntico: frecuencia de rastreo limitada y, si se mantiene, retirada del índice.

Bing documenta los timeouts como una categoría propia de error de rastreo, separada de los errores de servidor —Bingbot deja de intentar acceder a las páginas cuando las respuestas son demasiado lentas— y su recomendación habitual es comprobar el tiempo de respuesta del servidor, mantener actualizado el software del servidor, optimizar los recursos lentos y leer los logs del servidor buscando patrones sistémicos en lugar de episodios aislados. Bing no ha publicado el mismo nivel de detalle sobre limitación y recuperación que Google, así que considere que ambos son ampliamente comparables en su intención, no que esté confirmado que se comporten de forma idéntica.

El bucle de retroalimentación de limitar y luego recuperar

La parte tranquilizadora: este bucle es automático y autocorrectivo. Google reduce el ritmo cuando ve errores y timeouts, y después vuelve a aumentar el rastreo de forma gradual en cuanto las respuestas vuelven a ser saludables. No hay ningún botón manual de «quitar la limitación» que haya que pulsar una vez corregido el problema de fondo: como señaló John Mueller, “Once things settle down on the server, the crawl rate will return to normal automatically.” (traducción) «Una vez que las cosas se calmen en el servidor, la frecuencia de rastreo volverá a la normalidad automáticamente.» También señaló la asimetría: la reducción del ritmo se produce rápido para resolver un problema inmediato; el aumento posterior se hace con cautela.

La duración es lo que convierte un episodio aislado en un problema de indexación

Los 504 breves y ocasionales —unos pocos durante un pico, resueltos rápidamente— se reintentan y en gran medida se toleran. Lo que arriesga la desindexación es un patrón sostenido de timeouts durante una ventana prolongada. La mecánica documentada de «vuelve más tarde» de Google —en la que se devuelve intencionadamente un 503 o un 429 durante una sobrecarga— describe un horizonte de aproximadamente dos días antes de que las URL empiecen a caer, pero esa cifra concreta está documentada para el 503/429 por su nombre, no para el 504. La guía más amplia de Google sobre 5xx dice que la frecuencia de rastreo baja de forma proporcional al número de URL que devuelven errores y se recupera gradualmente en cuanto las respuestas son saludables, sin nombrar un horizonte fijo para el 504 en concreto. Extender la cifra de dos días al 504 es una inferencia razonable, no un hecho documentado: interprételo así: los 504 breves son sobrellevables, y un patrón sostenido durante días es el rango en el que debería preocuparse, no una fecha de activación garantizada.

Por qué esto importa más en sitios grandes y de ecommerce

La solución debe ser medible: pruebe el origin, compare el TTFB y compruebe los códigos devueltos en condiciones reales (referencia de este apartado 39)..

El tiempo de respuesta del servidor y el TTFB son una palanca preventiva potente — para las causas del lado del origin

Este es un punto que la mayoría de los artículos sobre el 504 pasan por alto: esperar a que aparezcan los errores y luego rebuscar en los logs es reactivo. Monitorizar el tiempo de respuesta del servidor de forma continua, para ver la deriva antes de que se convierta en un timeout, es proactivo. Un servidor que hoy es lento pero todavía no agota el tiempo será mañana un servidor que genera 504 con algo más de carga o con una dependencia algo más lenta. Vigilar el TTFB (time to first byte, tiempo hasta el primer byte) como señal continua de alerta temprana —no solo como métrica post mortem— es la forma de detectar esa deriva.

La advertencia: la monitorización del TTFB aborda la lentitud del lado del origin. No detectará un CDN que agota el tiempo con un origin saludable, un load balancer mal configurado que se rinde demasiado pronto, ni un problema en la ruta de red entre saltos; para eso hace falta identificar primero el salto que emite el error (la sección «Dónde se origina un 504» de más arriba, o el árbol de decisión de más abajo). El TTFB es una solución real y duradera para el caso común de un upstream genuinamente lento; no es universal. Una vez que haya confirmado que el origin es el cuello de botella, optimice con caché (de página, de objetos y de CDN), consultas a base de datos más rápidas e indexación adecuada, autoescalado para la carga y un ajuste sensato del upstream del CDN.

Por qué «simplemente subir el timeout» es el instinto equivocado

Aumentar proxy_read_timeout o el timeout de upstream del CDN puede evitar que aparezca el 504, pero no hace que la respuesta del upstream sea más rápida. Peor aún: bajo carga, una ventana de timeout más larga significa que las solicitudes se acumulan y ocupan procesos de trabajo y conexiones durante más tiempo, lo que puede agravar una espiral de sobrecarga en lugar de mejorarla. Subir el timeout es de vez en cuando la decisión correcta (para una operación genuinamente larga y bien comprendida), pero como reflejo enmascara el problema real.

Cuando la caída es planificada o se está desechando carga deliberadamente, la herramienta correcta no es dejar que las páginas devuelvan 504, sino devolver un 503 (con una cabecera Retry-After) para enviar a los motores de búsqueda un «vuelve más tarde» limpio e intencionado en lugar de un timeout desordenado.

Diagnosticar un 504 en la práctica

Identifique el salto que emite el error antes de conjeturar una causa: esa es la diferencia entre arreglar el problema real y arreglar un síntoma:

  • Reprodúzcalo e identifique qué salto respondió. Cárguelo en un navegador; llámelo con curl y observe time_starttransfer para el TTFB; páselo por un rastreador como Ahrefs Site Audit o Screaming Frog para ver si es un problema de todo el sitio o aislado. Si puede, pruebe directamente contra el origin (evitando el CDN/proxy) para ver si el propio origin completa la respuesta.
  • Lea los logs. Los logs del servidor y del proxy le dicen qué capa agotó el tiempo y, en el mejor caso, esperando qué: la consulta lenta, el upstream atascado, el pool de procesos de trabajo agotado. Correlacione por marca de tiempo e ID de solicitud entre capas en lugar de suponerlo.
  • Revise Search Console. Crawl Stats (Informe “Estadísticas de rastreo”) muestra los picos de códigos de respuesta y el tiempo medio de respuesta; el Page Indexing report (Informe “Indexación de páginas”) y URL Inspection (Herramienta de inspección de URLs) indican si Google se está topando con timeouts (incluido “Hostload exceeded”).

Reconciliar las herramientas importa: un 504 en el navegador, un 5xx en Ahrefs Site Audit y un timeout en GSC pueden describir todos el mismo origin lento subyacente visto desde puntos de observación distintos. No dé por hecho que tres herramientas significan tres problemas.

Códigos relacionados

Un 504 vive en una familia pequeña. Un 500 es un error de servidor genérico sin un código más específico; un 502 es una respuesta del upstream defectuosa o corrupta; un 503 es un «no disponible» explícito y a menudo intencionado. Saber cuál está devolviendo realmente —y devolver el correcto a propósito durante una caída planificada— es media batalla ganada.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.