504 Timeout do gateway

O que significa 504 Gateway Timeout, como servidores upstream lentos o acionam, como o Googlebot trata timeouts e quais são as consequências para crawl budget e indexação.

Publicado pela primeira vez: 28 de jun. de 2026 · Última atualização: 9 de ago. de 2026 · Avançado
Idiomas
1 sinal de evidência nesta página

Um 504 Gateway Timeout significa que um gateway ou proxy (CDN, balanceador de carga, proxy reverso) não recebeu a tempo uma resposta do servidor upstream atrás dele. É um timeout — diferente de um 502 (resposta inválida) ou de um 503 (indisponibilidade explícita). Não é uma penalidade do Google; é um problema de acessibilidade. 504s isolados são tentados novamente, mas timeouts sustentados ficam ao lado de 429/500/503 como os erros que fazem o Googlebot reduzir o ritmo e, se persistirem, remover páginas do índice. Identifique qual salto realmente expirou antes de corrigir qualquer coisa — o tempo de resposta do servidor (TTFB) é uma forte alavanca preventiva para origens lentas, mas aumentar o valor do timeout também não é uma correção.

TL;DR — Um 504 é um gateway/proxy informando que o servidor upstream não respondeu dentro da janela de timeout — um timeout, diferente de um 502 (resposta inválida) ou de um 503 (indisponibilidade explícita). É um problema de acessibilidade, não uma penalidade. Timeouts ficam no mesmo grupo que 429/500/503: o Googlebot reduz o ritmo quando os vê, e 504s persistentes trazem risco de desindexação. A correção duradoura é o tempo de resposta do servidor (TTFB), não um valor de timeout maior — aumentar o timeout geralmente mascara um upstream lento e pode piorar a situação sob carga.

Onde um 504 se origina na cadeia de solicitações

Um caminho moderno de solicitação se parece aproximadamente com: navegador → CDN/borda → balanceador de carga → proxy reverso (por exemplo, Nginx) → servidor da aplicação (PHP-FPM, Node etc.) → banco de dados/APIs de terceiros. Um 504 é gerado pelo componente que estava esperando o componente atrás dele quando seu timeout expirou. Essa é a primeira pergunta de diagnóstico: 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/borda expirando ao esperar a origem → a correção é o desempenho da origem ou aumentar cuidadosamente o timeout do upstream da CDN (veja abaixo).
  • Balanceador de carga expirando ao esperar o servidor da aplicação → verifique a saúde do servidor da aplicação e o autoscaling.
  • Proxy reverso expirando ao esperar o processo da aplicação → examine proxy_read_timeout / fastcgi_read_timeout do Nginx e a consulta lenta ou o processo que está realmente atrás dele.

Acertar a camada importa, porque “corrigir o timeout na borda” e “corrigir a consulta lenta ao banco na origem” são trabalhos completamente diferentes.

O que causa 504s

O código de status por si só não prova uma causa — ele apenas informa que um gateway expirou enquanto esperava um upstream. Estes são os suspeitos habituais que vale verificar, não fatos que o 504 já estabeleceu; confirme com logs e rastreamentos antes de agir com base em um deles:

  • Consultas lentas ao banco ou chamadas de API upstream. Uma única consulta sem índice ou uma dependência de terceiros lenta pode empurrar o tempo de resposta para além do timeout.
  • Sobrecarga do servidor/aplicação e esgotamento de recursos. Sob carga concorrente suficiente, as solicitações entram em fila, os processos workers ficam ocupados e as respostas deixam de chegar a tempo.
  • Valores de timeout mal configurados entre Nginx, Apache, balanceador de carga ou CDN — muitas vezes desencontrados entre camadas, fazendo uma desistir antes da outra.
  • Picos de tráfego, enxames de bots ou DDoS que sobrecarregam temporariamente a capacidade.

504s são frequentemente intermitentes e dependem da carga

É isso que os torna difíceis. Diferentemente de uma interrupção completa, um 504 costuma aparecer apenas sob carga — o que significa que um monitor de disponibilidade que faz ping durante uma janela tranquila pode mostrar 100% verde enquanto o Googlebot, rastreando em rajadas mais pesadas, coleta timeouts silenciosamente. Na inspeção de URL do Google Search Console, isso pode aparecer como uma condição “Hostload exceeded”, e não como um erro constante e limpo. Se o monitoramento diz que está tudo bem, mas o Crawl Stats discorda, 504s dependentes da carga são um suspeito importante.

Como o Googlebot (e o Bingbot) lidam com timeouts

O Google não trata um 504 como um julgamento da qualidade do conteúdo — é um sinal de disponibilidade, e a resposta é uma limitação automática. A documentação de rastreamento é explícita: “Googlebot will scale back its crawling if it detects that your servers are having trouble responding to crawl requests.” (tradução) «O Googlebot reduzirá o rastreamento se detectar que seus servidores estão tendo dificuldade para responder às solicitações de rastreamento.» O guia de crawl budget para sites grandes diz o mesmo em termos de orçamento: “If the site slows down or responds with server errors, the limit goes down and Google crawls less.” (tradução) «Se o site ficar lento ou responder com erros de servidor, o limite diminuirá e o Google rastreará 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

A formulação mais recente que liga isso diretamente a respostas lentas ou que expiram vem do explicador Inside Googlebot de março de 2026 do Google, no qual Gary Illyes é citado dizendo: “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.” (tradução) «Se o servidor tiver dificuldade para entregar bytes, nossos rastreadores recuarão automaticamente para evitar sobrecarregar sua infraestrutura, o que reduzirá sua frequência de rastreamento.» (Conforme a cobertura do Search Engine Land — vale confirmar a gravação ou transcrição original se você citar isso em outro lugar.) Um 504 é essa dificuldade tornada visível.

Uma nuance importante: o Google nem sempre um “504” literal como seu navegador. Se o timeout ocorre antes de o Googlebot receber qualquer linha de status, ele é registrado como erro de timeout/rede no Crawl Stats, não como um 5XX limpo. Mas, quando um proxy intermediário ou CDN expira e gera sua própria resposta 504, o Googlebot recebe um erro de servidor 5XX padrão. De qualquer forma, o efeito é idêntico: taxa de rastreamento limitada e, se persistir, remoção do índice.

O Bing documenta timeouts como sua própria categoria de erro de rastreamento, separada dos erros de servidor — o Bingbot para de tentar acessar páginas quando as respostas são lentas demais — e sua recomendação permanente é verificar o tempo de resposta do servidor, manter o software atualizado, otimizar recursos lentos e ler os logs em busca de padrões sistêmicos, não de soluços isolados. O Bing não publicou o mesmo nível de detalhe do Google sobre recuo e recuperação, então trate os dois como amplamente comparáveis na intenção, não como comportamentos comprovadamente idênticos.

O ciclo de feedback: reduzir o ritmo e depois recuperar

A parte tranquilizadora: este ciclo é automático e autocorretivo. O Google reduz o ritmo quando vê erros e timeouts e depois volta a aumentar gradualmente o rastreamento quando as respostas estão saudáveis. Não há um botão manual de “deslimitar” que você precise pressionar quando o problema subjacente é corrigido — como John Mueller observou, “Once things settle down on the server, the crawl rate will return to normal automatically.” (tradução) «Quando as coisas se estabilizarem no servidor, a taxa de rastreamento voltará ao normal automaticamente.» Ele também destacou a assimetria: a redução acontece rapidamente para resolver um problema imediato; o aumento é feito com cautela.

É a duração que transforma um soluço em um problema de indexação

504s curtos e ocasionais — alguns durante um pico, resolvidos rapidamente — são tentados novamente e em grande parte tolerados. O que traz risco de desindexação é um padrão sustentado de timeouts durante uma janela prolongada. A mecânica documentada de “volte mais tarde” do Google — em que você retorna intencionalmente 503 ou 429 durante uma sobrecarga — descreve um horizonte de aproximadamente dois dias antes de as URLs começarem a sair, mas esse número específico é documentado nominalmente para 503/429, não para 504. A orientação mais ampla do Google para 5xx diz que a taxa de rastreamento cai proporcionalmente à quantidade de URLs com erro e se recupera gradualmente quando as respostas ficam saudáveis, sem nomear um horizonte fixo para 504. Estender o valor de dois dias ao 504 é uma inferência razoável, não um fato documentado — trate assim: 504s breves são suportáveis, e um padrão sustentado ao longo de dias é a faixa de preocupação, não uma data de disparo garantida.

Por que isso importa mais em sites grandes e de ecommerce

Se você tem um site pequeno cujas páginas são rastreadas no mesmo dia em que são publicadas, quase nunca perceberá isso. Mas em sites grandes ou que mudam rapidamente — grandes catálogos de ecommerce, notícias, marketplaces — o crawl budget já é uma restrição, e uma onda de 504s durante a carga máxima pode impedir o rastreamento de páginas que realmente precisam ser rastreadas novamente. Timeouts e crawl budget são a mesma conversa em escala.

O tempo de resposta do servidor e o TTFB são uma forte alavanca preventiva — para causas na origem

Este é um ponto que a maioria dos artigos sobre 504 ignora: esperar os erros aparecerem e depois procurar nos logs é reativo. Monitorar continuamente o tempo de resposta do servidor, para perceber a deriva antes que ela se transforme em timeout, é proativo. Um servidor que está lento, mas ainda não expira hoje se torna um servidor que gera 504 amanhã sob um pouco mais de carga ou uma dependência um pouco mais lenta. Observar TTFB (time to first byte) como sinal contínuo de alerta antecipado — não apenas como métrica pós-incidente — é como detectar essa deriva.

A ressalva: o monitoramento de TTFB aborda lentidão na origem. Ele não detectará uma CDN expirando ao esperar uma origem saudável, um balanceador de carga configurado para desistir cedo demais ou um problema no caminho de rede entre saltos — primeiro é necessário identificar o salto emissor (a seção “Onde um 504 se origina” acima ou a árvore de decisão abaixo). TTFB é uma correção real e duradoura para o caso comum de um upstream genuinamente lento; não é universal. Depois de confirmar que a origem é o gargalo, otimize com cache (de página, de objetos e da CDN), consultas mais rápidas e índices adequados no banco, autoscaling para a carga e ajustes sensatos no upstream da CDN.

Por que “apenas aumente o timeout” é o instinto errado

Aumentar proxy_read_timeout ou o timeout do upstream da CDN pode impedir que o 504 apareça — mas não torna a resposta do upstream mais rápida. Pior: uma janela de timeout maior sob carga faz as solicitações se acumularem e manterem processos workers e conexões ocupados por mais tempo, o que pode piorar uma espiral de sobrecarga. Aumentar o timeout às vezes é a escolha certa (para uma operação genuinamente longa e bem compreendida), mas como reflexo ele mascara o problema real.

Quando a indisponibilidade é planejada ou você está deliberadamente reduzindo a carga, a ferramenta certa não é deixar as páginas retornarem 504 — é retornar um 503 (com um cabeçalho Retry-After) para enviar aos mecanismos de busca um “volte mais tarde” limpo e intencional, em vez de um timeout confuso.

Diagnosticando um 504 na prática

Identifique o salto emissor antes de adivinhar a causa — essa é a diferença entre corrigir o problema real e corrigir um sintoma:

  • Reproduza e identifique qual salto respondeu. Carregue no navegador; use curl e observe time_starttransfer para o TTFB; passe por um rastreador como Ahrefs Site Audit ou Screaming Frog para ver se o problema é no site inteiro ou isolado. Se puder, teste diretamente na origem (ignorando CDN/proxy) para verificar se a própria origem conclui.
  • Leia os logs. Os logs do servidor e do proxy informam qual camada expirou e, idealmente, por quê — a consulta lenta, o upstream travado, o pool de workers esgotado. Correlacione por horário e ID de solicitação entre as camadas em vez de presumir.
  • Confira o Search Console. O Crawl Stats mostra picos de códigos de resposta e o tempo médio de resposta; o relatório Page Indexing e a inspeção de URL mostram se o Google está encontrando timeouts (incluindo “Hostload exceeded”).

É importante conciliar as ferramentas: um 504 no navegador, um 5xx no Ahrefs Site Audit e um timeout no GSC podem descrever a mesma origem lenta subjacente, vista de pontos diferentes. Não presuma que três ferramentas significam três problemas.

Códigos relacionados

Um 504 vive em uma pequena família. Um 500 é um erro de servidor genérico sem código mais específico; um 502 é uma resposta upstream inválida/corrompida; um 503 é uma indisponibilidade explícita e muitas vezes intencional. Saber qual você está realmente retornando — e retornar o correto de propósito durante uma indisponibilidade planejada — é metade da batalha.

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.