Erro 504 Gateway Timeout: o que é e como resolver

O erro 504 Gateway Timeout acontece quando um servidor que funciona como intermediário (um gateway ou proxy) não recebe a resposta de outro servidor dentro do tempo esperado, e desiste de aguardar. Em termos simples: um servidor ficou esperando outro responder, o tempo se esgotou, e o resultado é o erro 504. É um erro de servidor (da família 5xx) — na maioria das vezes o problema está do lado do site ou da hospedagem, não do seu computador. Você pode vê-lo também como “504 Gateway Time-out”, “Gateway Timeout Error” ou “HTTP Error 504” — é o mesmo erro.

1. Você acessa o site
O navegador envia a requisição ao servidor gateway
2. O gateway repassa o pedido
Ele encaminha a requisição ao servidor de origem (upstream)
3. O upstream não responde a tempo
Sobrecarga, lentidão ou falha de rede estouram o tempo limite
504
4. O gateway retorna o erro 504
Cansado de esperar, ele devolve “Gateway Timeout” ao navegador
O fluxo do erro 504: o gateway repassa o pedido, o servidor de origem demora além do tempo limite, e o gateway desiste retornando o erro.

502 vs 503 vs 504

Os três são erros de servidor (5xx) e costumam ser confundidos, mas têm causas diferentes:

Erro O que significa Causa típica
502 Bad Gateway O gateway recebeu uma resposta inválida do servidor de origem. Resposta corrompida ou serviço caído.
503 Service Unavailable O servidor está temporariamente indisponível. Sobrecarga ou manutenção.
504 Gateway Timeout O gateway não recebeu resposta a tempo do servidor de origem. Lentidão ou falta de resposta do upstream.

Em resumo: no 502 a resposta veio, mas inválida; no 503 o servidor avisou que está fora; no 504 o servidor simplesmente demorou demais e o intermediário desistiu de esperar.

504 ou 524? A diferença importa se você usa Cloudflare

Se o seu site passa por uma CDN, vale conhecer essa distinção antes de mexer em qualquer configuração — ela indica onde está o problema.

O 504 é um código HTTP padrão, que qualquer proxy reverso pode retornar. Já o 524 (A timeout occurred) é um código próprio do Cloudflare, e significa uma coisa específica: o Cloudflare conseguiu falar com o seu servidor, mas ele não respondeu dentro do tempo limite.

O teste é direto:

  • Você vê 524 → é o Cloudflare esperando a sua origem. O problema está na lentidão do seu servidor.
  • Você vê 504 mesmo com o Cloudflare desativado → é configuração do seu Nginx, Apache ou PHP-FPM.

E há uma limitação importante: nos planos Free, Pro e Business do Cloudflare, o tempo limite é de 100 segundos e não pode ser aumentado. Se o seu backend demora mais que isso, as únicas saídas são otimizar o processamento, mover a tarefa demorada para execução em segundo plano, ou migrar para o plano Enterprise.

Principais causas do erro 504

Antes das causas, vale entender o caminho que a requisição percorre — porque o 504 pode nascer em qualquer elo:

Navegador → CDN (Cloudflare) → Proxy reverso (Nginx) → Aplicação (PHP-FPM) → Banco de dados

Essa cadeia é a versão prática do modelo OSI: cada elo atua numa camada diferente, e identificar em qual delas a falha aconteceu é o que torna o diagnóstico objetivo.

Qualquer elo lento gera o erro, e quem devolve o 504 é sempre o elo imediatamente à frente do que travou. Por isso identificar a camada é o primeiro passo: os cabeçalhos de resposta mostram qual servidor gerou o erro. Na prática, os culpados mais frequentes são a aplicação e o banco de dados.

CDN mal configurada — em alguns casos a rede de distribuição de conteúdo pode disparar o 504.

Sobrecarga do servidor de origem — a causa mais comum. Picos de tráfego, recursos esgotados (CPU, RAM) ou processos PHP no limite fazem o servidor demorar a responder.

Falhas de rede entre os servidores — perda de pacotes, lentidão de roteamento ou falha de conexão entre o gateway e o servidor de origem.

Problemas de DNS — especialmente após uma migração de servidor ou troca de domínio, quando o DNS ainda não propagou (pode levar até 24 horas) ou aponta para o endereço errado.

Proxy ou firewall mal configurado — regras que interrompem ou atrasam a comunicação entre os servidores.

Consultas lentas ao banco de dados ou scripts demorados — uma importação grande no WordPress, um relatório pesado, uma query não otimizada.

Chamadas a APIs externas travadas — gateways de pagamento, integrações de newsletter, login social. O PHP fica esperando a resposta de um servidor de fora, e a página trava junto. É uma das causas menos óbvias e mais frequentes em lojas virtuais.

Consultas MySQL sem índice — especialmente em WooCommerce com muitos pedidos, onde uma tabela mal indexada transforma um carregamento simples numa espera de vários segundos.

Ataque DDoS — uma enxurrada de requisições esgota os recursos e a origem fica lenta demais para responder ao tráfego legítimo dentro da janela do proxy.

Como resolver — se você é o visitante

Embora o 504 seja quase sempre um problema do servidor, vale descartar causas locais antes:

  • Recarregue a página — o 504 muitas vezes é momentâneo. Pressione F5 ou Ctrl + R (Cmd + R no Mac). Espere um ou dois minutos e tente de novo.
  • Limpe o cache e os cookies do navegador, ou teste em uma aba anônima.
  • Tente outro navegador ou dispositivo para isolar o problema.
  • Reinicie o modem/roteador — falhas de conexão local podem contribuir.
  • Troque o DNS para um público, como o do Google (8.8.8.8) ou Cloudflare (1.1.1.1), e limpe o cache de DNS do sistema (ipconfig /flushdns no Windows).

Como resolver — se você é o dono do site

Como o 504 é um erro de servidor, é aqui que mora a solução real:

  • Verifique a carga do servidor — CPU, memória e número de processos. Sobrecarga é a causa nº1. Os logs de erro (Apache em /var/log/apache2/, Nginx em /var/log/nginx/) costumam apontar o motivo.
  • Reinicie os serviços — reiniciar o servidor web ou o servidor de origem libera processos travados e conexões presas.
  • Aumente os tempos limite (timeout) — se requisições legítimas estão sendo cortadas por demorarem além do padrão, aumente as diretivas de timeout.

Vale um aviso: aumentar o timeout compra tempo, mas nunca cura código lento. Se uma página legítima demora 200 segundos, o problema é a página — o timeout maior só evita que ela seja interrompida enquanto você corrige a causa real.

# Nginx (nginx.conf ou o server block do site) proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300;
No Apache, ajuste a diretiva Timeout no httpd.conf. Depois, recarregue o servidor (systemctl reload nginx ou apache2).
  • Verifique o DNS — se o 504 surgiu após uma migração ou troca de domínio, confirme se o DNS propagou e aponta para o servidor certo.
  • Aumente os processos PHP — peça ao seu provedor para aumentar o número de PHP threads, para o site executar mais requisições ao mesmo tempo.
  • Verifique o firewall — regras mal configuradas podem bloquear a comunicação entre servidores.
  • Teste sem a CDN — desative temporariamente para descartar a CDN como causa.
  • No WordPress: desative os plugins (renomeie a pasta wp-content/plugins), troque para um tema padrão, e otimize consultas lentas ao banco. Importações grandes costumam estourar o tempo limite.

PHP-FPM: a causa nº 1 em sites WordPress

Na maioria dos sites WordPress modernos, o 504 nasce aqui — e entender o mecanismo evita muito tempo perdido.

O Nginx não executa PHP: ele repassa a requisição ao PHP-FPM, que mantém um número limitado de workers. Quando todos estão ocupados, cada nova requisição entra numa fila esperando um worker liberar. Esse tempo de fila conta para o timeout do Nginx — e é assim que o 504 aparece mesmo com o PHP funcionando normalmente.

A regra que resolve a maior parte dos casos: o fastcgi_read_timeout do Nginx precisa ser maior ou igual ao max_execution_time do PHP. Se o Nginx desiste antes de o PHP terminar, o 504 é garantido, por mais que o script fosse concluir.

# Nginx — no bloco location do PHP
fastcgi_read_timeout 300;

# PHP-FPM — no arquivo do pool (www.conf)
request_terminate_timeout = 300

E no PHP, o max_execution_time correspondente — nosso guia sobre max_execution_time mostra onde alterar.

Depois de mudar, reinicie o serviço: systemctl restart php8.2-fpm (ajuste para a sua versão) e recarregue o Nginx.

⚠️ Nunca use max_execution_time = 0 em produção. Sem limite, um script travado segura o worker indefinidamente — e com o pool cheio, o site inteiro para.

💡
O erro apareceu depois de migrar o site?

Se o 504 começou logo após uma migração de servidor ou troca de hospedagem, a causa mais provável é o DNS ainda não propagado. A propagação pode levar até 24 horas. Antes de mexer em qualquer configuração, espere o DNS propagar e confirme se os registros apontam para o servidor novo.

⚠️
504 frequente prejudica o SEO

Um 504 isolado não é problema, mas erros 504 recorrentes atrapalham o rastreamento do Google: páginas deixam de ser indexadas e o ranking pode cair com o tempo. Monitore os erros de rastreamento no Google Search Console e, se forem frequentes, trate a causa (quase sempre, recursos de servidor insuficientes).

Servidor sobrecarregado é a causa nº1 do 504

Se o seu site vive estourando o tempo limite, normalmente faltam recursos. Na Homehost você tem servidores no Brasil, recursos escaláveis e suporte humano em português para manter seu site no ar — sem ficar refém de timeouts.

Conhecer a hospedagem Homehost

Perguntas frequentes

O que significa o erro 504 Gateway Timeout?

Significa que um servidor intermediário (gateway ou proxy) não recebeu a resposta de outro servidor dentro do tempo esperado e desistiu de aguardar. É um erro de servidor da família 5xx, geralmente ligado a sobrecarga, lentidão ou falha de comunicação entre servidores.

O erro 504 é problema do meu computador ou do site?

Quase sempre é do site ou do servidor — o 504 é um erro do lado do servidor. Ainda assim, vale recarregar a página, limpar o cache e testar outro navegador ou rede para descartar causas locais antes de concluir que o problema é do site.

Qual a diferença entre 502, 503 e 504?

No 502 Bad Gateway, o servidor intermediário recebeu uma resposta inválida do servidor de origem. No 503, o servidor está temporariamente indisponível (sobrecarga ou manutenção). No 504, o servidor de origem simplesmente demorou demais para responder e o intermediário desistiu de esperar.

Qual a diferença entre erro 504 e 524?

O 504 é um código HTTP padrão que qualquer proxy reverso pode retornar. O 524 é específico do Cloudflare e significa que ele conseguiu contato com a sua origem, mas ela não respondeu dentro do tempo limite — 100 segundos nos planos Free, Pro e Business, valor que não pode ser aumentado nesses planos. Se você vê 504 mesmo com o Cloudflare desativado, o problema está no seu servidor.

Por que o PHP-FPM causa erro 504?

Porque o Nginx não executa PHP: ele repassa a requisição ao PHP-FPM, que tem um número limitado de workers. Quando todos estão ocupados, as novas requisições entram numa fila, e esse tempo de espera conta para o timeout do Nginx. A regra prática é manter o fastcgi_read_timeout do Nginx maior ou igual ao max_execution_time do PHP.

Aumentar o timeout resolve o erro 504?

Só temporariamente. Aumentar o fastcgi_read_timeout ou o proxy_read_timeout evita que requisições legítimas sejam cortadas, mas não torna o site mais rápido. Se a página demora demais, a causa real é uma consulta lenta, um plugin pesado, uma API externa travada ou falta de recursos — e é isso que precisa ser corrigido.

O erro 504 apareceu depois que migrei meu site. Por quê?

Provavelmente é o DNS ainda não propagado. Após uma migração de servidor ou troca de hospedagem, os registros DNS levam até 24 horas para propagar pelo mundo. Espere a propagação completar e confirme se os registros apontam para o servidor novo.

Como saber qual servidor gerou o erro 504?

Pelos cabeçalhos de resposta, que indicam qual camada devolveu o erro. A cadeia costuma ser navegador → CDN → proxy reverso → aplicação → banco de dados, e quem devolve o 504 é sempre o elo imediatamente à frente do que travou. Desativar a CDN temporariamente também ajuda a isolar: se o erro continua sem ela, a causa está no seu servidor.

O erro 504 prejudica o SEO?

Um 504 ocasional não prejudica. Mas erros 504 frequentes atrapalham o rastreamento do Google — páginas podem deixar de ser indexadas e o ranking pode cair. Monitore pelo Google Search Console e trate a causa, que costuma ser falta de recursos no servidor.

Veja também

O erro 504 é um dos códigos de status HTTP da classe 5XX (erros do servidor). Veja também os primos da mesma família: 500 Erro Interno do Servidor, 502 Bad Gateway e 503 Serviço Indisponível.

Se o erro que você vê não é de servidor, mas de conexão interrompida no navegador, veja também o ERR_CONNECTION_CLOSED.

Conclusão

O erro 504 Gateway Timeout é a forma do servidor dizer que um intermediário esperou outro servidor responder e o tempo se esgotou. Por ser um erro de servidor, na maioria das vezes a solução está do lado do site: aliviar a sobrecarga, aumentar os tempos limite, verificar o DNS após uma migração, otimizar consultas lentas ou aumentar os recursos. Como visitante, recarregar a página e limpar o cache resolvem os casos momentâneos. E se o 504 se repete com frequência, costuma ser o sinal mais claro de que o servidor não dá conta da demanda — hora de considerar uma hospedagem com mais recursos, como os planos da Homehost.

Este artigo foi útil?

Obrigado pela resposta!
Picture of Gustavo Gallas

Gustavo Gallas

Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do Bóris, seu pet de estimação. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos técnicos.

Contato: gustavo.blog@homehost.com.br

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!