ERR_TOO_MANY_REDIRECTS: Como Corrigir (Todos os Navegadores)

O Que É ERR_TOO_MANY_REDIRECTS?
ERR_TOO_MANY_REDIRECTS é um erro do navegador que ocorre quando um site fica preso em um loop infinito de redirecionamento. Em vez de carregar a página, o navegador fica alternando entre URLs — e após atingir o limite de redirecionamentos, desiste e exibe este erro.
Cada navegador possui um limite de redirecionamentos para evitar que loops infinitos consumam recursos. Quando uma página excede esse limite, a conexão é encerrada com uma mensagem de erro.
| Navegador | Mensagem de Erro | Limite de Redirecionamentos |
|---|---|---|
| Chrome | This page isn't working — ERR_TOO_MANY_REDIRECTS | 20 redirecionamentos |
| Firefox | The page isn't redirecting properly | 20 redirecionamentos |
| Safari | Safari Can't Open the Page — too many redirects occurred | 16 redirecionamentos |
| Edge | This page isn't working — ERR_TOO_MANY_REDIRECTS | 20 redirecionamentos |
Os códigos de status HTTP em um loop de redirecionamento geralmente são 301 (redirecionamento permanente) ou 302 (redirecionamento temporário). Um loop típico funciona assim: seu navegador solicita a URL A, o servidor responde com um 301 para a URL B, a URL B responde com um 301 de volta para a URL A, e o ciclo se repete até o navegador atingir seu limite.
O Que Causa Loops de Redirecionamento?
Loops de redirecionamento acontecem quando duas ou mais regras de redirecionamento entram em conflito. O servidor envia o navegador para uma URL, e essa URL envia o navegador de volta. Estas são as causas mais comuns:
Configuração incorreta de SSL/HTTPS — A causa mais comum. Seu servidor força HTTP para HTTPS, mas seu CDN ou load balancer se conecta à origem via HTTP, criando um loop: CDN → HTTP → servidor redireciona para HTTPS → CDN remove HTTPS → HTTP → loop
Cloudflare Flexible SSL — O modo Flexible SSL do Cloudflare envia requisições para a origem via HTTP. Se a origem também tem um redirecionamento HTTP para HTTPS, você obtém um loop infinito entre o Cloudflare e o servidor
Regras conflitantes no .htaccess — Múltiplas regras de redirecionamento no
.htaccessque se contradizem, como uma regra forçando www e outra forçando sem www simultaneamenteURLs incompatíveis no WordPress — O Endereço do WordPress (URL) e o Endereço do Site (URL) em Configurações > Geral não correspondem, ou um usa HTTP enquanto o outro usa HTTPS
Cookies antigos do navegador — Cookies antigos contendo instruções de redirecionamento ou dados de sessão que forçam o navegador a acessar uma URL que não existe mais ou foi movida
Redirecionamentos em cache no CDN ou proxy — Seu CDN armazenou em cache um redirecionamento 301 antigo que agora conflita com a configuração atual do servidor
Conflitos na configuração do servidor — Arquivos de configuração do Nginx ou Apache com blocos de redirecionamento concorrentes, como redirecionar tanto no bloco server quanto no .htaccess simultaneamente
Como Diagnosticar um Loop de Redirecionamento
Antes de tentar correções, identifique a cadeia exata de redirecionamento. Isso revela exatamente quais URLs estão envolvidas e quais regras de redirecionamento estão causando o loop.
Método 1: Use curl para Rastrear Redirecionamentos
A maneira mais rápida de ver uma cadeia de redirecionamento é com o curl no terminal. A flag -I busca apenas os cabeçalhos, -L segue os redirecionamentos, e --max-redirs limita quantos serão seguidos:
# Trace redirect chain (limit to 10 hops)
curl -ILs --max-redirs 10 https://example.com 2>&1 | grep -i 'HTTP/\|location:'
# Example output showing a redirect loop:
# HTTP/2 301
# location: http://example.com/
# HTTP/1.1 301 Moved Permanently
# Location: https://example.com/
# HTTP/2 301
# location: http://example.com/
# (repeats...)Se você vir as mesmas duas URLs alternando nos cabeçalhos Location, você confirmou um loop de redirecionamento. Observe os códigos de status HTTP — 301 significa redirecionamento permanente (armazenado em cache pelos navegadores), 302 significa temporário (não armazenado em cache).
Método 2: Aba Network do DevTools do Navegador
Você também pode rastrear redirecionamentos visualmente no DevTools do Chrome:
Passo 1 — Abra o DevTools do Chrome com
F12ouCtrl+Shift+I(Mac:Cmd+Option+I)Passo 2 — Vá para a aba Network e marque Preserve log (isso mantém os registros entre redirecionamentos)
Passo 3 — Carregue a página que dispara o erro
Passo 4 — Observe a sequência de requisições. Cada redirecionamento aparece como uma entrada separada com status 301 ou 302. A coluna Location mostra para onde cada redirecionamento aponta
A aba Network mostra a cadeia completa de redirecionamentos em ordem cronológica. Você verá o padrão — normalmente duas ou três URLs se repetindo em ciclo. Use o Verificador de Cabeçalhos HTTP do DNS Robot para inspecionar os cabeçalhos de resposta de fora do cache do seu navegador.
Método 3: Verificador Online de Redirecionamentos
Se você não tem acesso ao terminal, use o Verificador de Redirecionamentos do DNS Robot para rastrear a cadeia completa de redirecionamentos. Insira a URL e ele mostrará cada salto, código de status e destino final — ou confirmará que existe um loop. Isso é útil porque verifica a partir de uma localização neutra, sem que os cookies do seu navegador afetem o resultado.
Correção 1: Limpar Cookies e Cache do Navegador
Comece pela correção mais simples. Cookies antigos ou redirecionamentos em cache no navegador podem causar loops mesmo quando a configuração do servidor está correta. Isso é especialmente comum após a migração de um site de HTTP para HTTPS — cookies antigos podem ainda referenciar URLs HTTP.
Limpar Cookies no Chrome
Limpe os cookies do site específico em vez de todos os cookies — isso preserva seus logins em outros sites:
Passo 1 — Clique no ícone de cadeado (ou ícone de ajuste) na barra de endereço ao lado da URL
Passo 2 — Clique em Configurações do site
Passo 3 — Clique em Limpar dados para remover cookies e dados em cache apenas daquele site
Passo 4 — Recarregue a página
# Chrome keyboard shortcut to open Clear Browsing Data:
# Windows/Linux: Ctrl + Shift + Delete
# macOS: Cmd + Shift + DeleteAlternativamente, acesse chrome://settings/clearBrowserData, selecione Cookies e outros dados do site e Imagens e arquivos em cache, defina o período para Todo o período e clique em Limpar dados.
Limpar Cookies no Firefox e Safari
Firefox: Pressione Ctrl+Shift+Delete (Mac: Cmd+Shift+Delete), selecione Cookies e Cache, defina o período para Tudo e clique em Limpar agora.
Safari: Vá em Safari > Ajustes > Privacidade > Gerenciar dados do site, pesquise o domínio afetado, selecione-o e clique em Remover. Em seguida, limpe o cache com Cmd+Option+E.
Correção 2: Verificar Configuração de SSL/HTTPS
A configuração incorreta de SSL é a causa número 1 de loops de redirecionamento. O cenário mais comum é um conflito entre seu CDN/proxy e seu servidor de origem sobre usar HTTP ou HTTPS.
O que geralmente acontece é o seguinte: seu CDN se conecta à origem via HTTP (porque ele cuida da terminação SSL), mas a origem tem um redirecionamento de HTTP para HTTPS. A origem envia o CDN de volta para HTTPS, o CDN remove o HTTPS e envia HTTP novamente — loop infinito.
Verifique seu certificado SSL — Use o Verificador de SSL do DNS Robot para verificar se seu certificado é válido, não está expirado e cobre o domínio correto
Compatibilize os protocolos — Se seu CDN termina o SSL, remova o redirecionamento HTTP para HTTPS na origem, ou configure o CDN para se conectar à origem via HTTPS
Verifique as configurações de forçar HTTPS — Se você tem tanto um redirecionamento no servidor (Nginx/Apache) QUANTO um forçar HTTPS no CDN, remova um deles
Verifique o cabeçalho X-Forwarded-Proto — Quando atrás de um proxy, sua origem deve verificar este cabeçalho em vez do protocolo bruto da conexão para determinar se a requisição original era HTTPS
Correção 3: Corrigir Loops de Redirecionamento do Cloudflare
O Cloudflare é o gatilho mais comum para ERR_TOO_MANY_REDIRECTS por causa de como seus modos SSL funcionam. A correção depende de qual modo de criptografia SSL/TLS você está usando.
| Modo SSL | Como se Conecta à Origem | Causa Loop Quando... |
|---|---|---|
| Flexible | HTTP (sem criptografia) | A origem tem redirecionamento HTTP→HTTPS |
| Full | HTTPS (sem validação de certificado) | A origem redireciona HTTPS→HTTP |
| Full (Strict) | HTTPS (valida o certificado) | A origem redireciona HTTPS→HTTP |
A correção para 90% dos loops de redirecionamento do Cloudflare: altere o modo de criptografia SSL/TLS de Flexible para Full ou Full (Strict). Isso diz ao Cloudflare para se conectar à origem via HTTPS, eliminando o loop HTTP para HTTPS.
Passo a Passo para Corrigir no Cloudflare
Passo 1 — Faça login no painel do Cloudflare
Passo 2 — Selecione seu domínio
Passo 3 — Vá em SSL/TLS > Overview
Passo 4 — Altere o modo de criptografia para Full (Strict) se você tem um certificado SSL válido na origem, ou Full se tem um certificado auto-assinado
Passo 5 — Vá em SSL/TLS > Edge Certificates e verifique se Always Use HTTPS está ativado. Se sua origem já redireciona para HTTPS, desative isso para evitar um redirecionamento duplo
Passo 6 — Verifique as Page Rules e Redirect Rules em busca de redirecionamentos de URL conflitantes
Passo 7 — Limpe o cache do Cloudflare: vá em Caching > Configuration > Purge Everything
Correção 4: Corrigir Regras de Redirecionamento no .htaccess (Apache)
Em servidores Apache, o .htaccess é o local mais comum para regras de redirecionamento — e o local mais comum para loops de redirecionamento se originarem. Regras conflitantes, redirecionamentos duplicados ou verificações de condição ausentes podem criar loops.
Verifique redirecionamentos HTTPS duplicados — Se seu painel de hospedagem (cPanel, Plesk) força HTTPS, remova o redirecionamento manual do .htaccess
Verifique as condições RewriteCond — Toda RewriteRule que redireciona deve ter uma RewriteCond que impede que ela dispare em URLs que já correspondem. Sem isso, a regra dispara em cada requisição, incluindo a redirecionada
Atenção à flag [L] — A flag
[L]significa 'última regra', mas apenas para a passagem atual. Se outro.htaccessexistir em um subdiretório, ele executa novamente. Use[END]no Apache 2.4+ em vez dissoVerifique os cabeçalhos de proxy — Atrás de um CDN, use
%{HTTP:X-Forwarded-Proto}em vez de%{HTTPS}para detectar o protocolo original
# Correct HTTPS redirect behind Cloudflare/CDN:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]Se você não tem certeza de qual regra causa o loop, renomeie temporariamente o .htaccess para .htaccess.bak e teste se o site carrega. Se carregar, o problema está no seu arquivo .htaccess. Reative as regras uma de cada vez até encontrar a regra que causa o problema.
Correção 5: Corrigir Loops de Redirecionamento no WordPress
Loops de redirecionamento no WordPress geralmente vêm de três fontes: URLs incompatíveis nas Configurações, conflitos de plugins ou valores incorretos no wp-config.php. Se você não consegue acessar o painel do WordPress por causa do loop, será necessário corrigir diretamente no banco de dados ou nos arquivos de configuração.
Verificar Configurações de URL do WordPress
O WordPress tem duas configurações de URL que devem corresponder: Endereço do WordPress (URL) e Endereço do Site (URL) em Configurações > Geral. Se um usa http:// e o outro usa https://, ou um tem www. e o outro não, você terá um loop de redirecionamento.
Se você não consegue acessar o painel, defina as URLs diretamente no wp-config.php:
// Add these lines to wp-config.php (above "That's all, stop editing!"):
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
// If behind a reverse proxy (Cloudflare, Nginx proxy):
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}Desativar Plugins para Encontrar Conflitos
Plugins de redirecionamento e cache são frequentemente os culpados. Plugins como Redirection, Yoast SEO, Really Simple SSL, WP Super Cache e W3 Total Cache podem adicionar regras de redirecionamento que conflitam com as configurações do servidor ou CDN.
Se você não consegue acessar o painel, desative todos os plugins via FTP ou SSH:
# Rename the plugins folder to disable all plugins at once:
cd /var/www/html/wp-content/
mv plugins plugins.bak
# If the site loads, rename it back and disable plugins one by one:
mv plugins.bak plugins
# Then rename individual plugin folders to find the culprit:
mv plugins/really-simple-ssl plugins/really-simple-ssl.bakSe desativar os plugins corrigir o erro, reative-os um por um para identificar o plugin conflitante. Os mais comuns são plugins de SSL que adicionam redirecionamentos HTTP para HTTPS quando o servidor ou CDN já cuida disso.
Correção 6: Corrigir Redirecionamentos no Servidor (Nginx e Apache)
Arquivos de configuração do servidor podem conter regras de redirecionamento que conflitam com redirecionamentos no nível da aplicação (WordPress, .htaccess) ou configurações do CDN.
Nginx: Verificar Conflitos de Redirecionamento
Loops de redirecionamento no Nginx normalmente acontecem quando o bloco server HTTP redireciona para HTTPS, mas algo no bloco HTTPS redireciona de volta para HTTP. Verifique a configuração do seu site:
# Correct Nginx HTTPS redirect (separate server blocks):
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
# SSL certificate configuration here
# DO NOT add another redirect to HTTPS here
}
# If behind Cloudflare/proxy, check real protocol:
server {
listen 80;
server_name example.com;
if ($http_x_forwarded_proto != 'https') {
return 301 https://example.com$request_uri;
}
}Apache: Verificar Redirecionamentos no VirtualHost
No Apache, verifique tanto a configuração do VirtualHost quanto o .htaccess. Um redirecionamento na configuração do VirtualHost mais um redirecionamento no .htaccess cria um redirecionamento duplo que pode gerar um loop:
# Check Apache config for redirect rules:
grep -r 'Redirect\|RewriteRule' /etc/apache2/sites-enabled/
grep -r 'Redirect\|RewriteRule' /etc/httpd/conf.d/
# Check .htaccess:
cat /var/www/html/.htaccess | grep -i 'rewrite\|redirect'Remova redirecionamentos duplicados — mantenha o redirecionamento em apenas um local. A melhor prática é lidar com redirecionamentos HTTPS na configuração do VirtualHost (não no .htaccess), pois as regras do VirtualHost são processadas uma vez por requisição, enquanto o .htaccess é processado em cada requisição.
Correção 7: Solução de Problemas Específicos do Navegador
Se o erro aparece apenas em um navegador, o problema provavelmente é um redirecionamento em cache ou conflito de extensão, e não um problema no servidor.
Chrome: Limpar HSTS e Pool de Sockets
O Chrome armazena em cache políticas HSTS (HTTP Strict Transport Security) que forçam HTTPS. Se um site anteriormente enviou um cabeçalho HSTS mas não usa mais HTTPS corretamente, o Chrome continuará redirecionando para HTTPS mesmo após limpar os cookies.
Limpar cache HSTS — Acesse
chrome://net-internals/#hsts, insira o domínio em Delete domain security policies e clique em DeleteLimpar pools de sockets — Acesse
chrome://net-internals/#socketse clique em Flush socket pools para limpar conexões em cacheLimpar cache DNS — Acesse
chrome://net-internals/#dnse clique em Clear host cacheTestar no modo Anônimo — Abra uma janela Anônima (
Ctrl+Shift+N) e teste a URL. Se funcionar no modo Anônimo mas não na janela normal, um redirecionamento em cache ou extensão é a causa
Correções para Firefox e Safari
Firefox: Digite about:config na barra de endereço, pesquise network.http.redirection-limit e verifique se está definido como 20 (padrão). Se uma extensão alterou para um número muito baixo, os redirecionamentos podem falhar prematuramente. Também tente limpar os dados do site: Configurações > Privacidade e Segurança > Gerenciar Dados > pesquise o domínio > Remover Selecionados.
Safari: O Safari mostra "too many redirects occurred" e oferece um erro menos detalhado que o Chrome. Vá em Safari > Ajustes > Privacidade > Gerenciar Dados do Site, encontre o domínio e remova seus dados. Se o problema persistir, tente Safari > Limpar Histórico (escolha todo o histórico).
Como Prevenir Loops de Redirecionamento
Após corrigir o erro imediato, siga estas práticas para evitar que loops de redirecionamento aconteçam novamente:
Redirecione em apenas um local — Escolha uma camada para o redirecionamento HTTPS: o CDN, o servidor web ou a aplicação. Nunca redirecione em múltiplas camadas simultaneamente
Use 302 durante testes — Enquanto faz debug, use redirecionamentos 302 (temporários) em vez de 301 (permanentes). Os navegadores armazenam 301 em cache agressivamente, dificultando testar alterações. Mude para 301 quando confirmar que o redirecionamento funciona corretamente
Sempre teste com curl — Após adicionar uma regra de redirecionamento, execute
curl -ILs https://seusite.com | grep -i 'HTTP/\|location:'para verificar se a cadeia resolve para uma resposta final 200Monitore com ferramentas — Use o Verificador de Cabeçalhos HTTP do DNS Robot regularmente para verificar se seu site retorna uma resposta limpa 200 sem redirecionamentos inesperados
Documente seus redirecionamentos — Mantenha um registro de todas as regras de redirecionamento na configuração do servidor, .htaccess, regras do CDN e configurações da aplicação. Quando múltiplos membros da equipe gerenciam um site, redirecionamentos não documentados são a causa número 1 de loops
Limpe o cache do CDN após alterações — Após modificar qualquer regra de redirecionamento, limpe o cache do CDN imediatamente. Redirecionamentos 301 em cache podem persistir por dias
Impacto dos Loops de Redirecionamento no SEO
Loops de redirecionamento prejudicam diretamente seus rankings de busca. O rastreador do Google (Googlebot) segue até 10 redirecionamentos por URL antes de desistir. Se o Googlebot encontra um loop de redirecionamento, marca a página como erro de rastreamento e para de indexá-la.
De acordo com a documentação do Google sobre redirecionamentos, as cadeias de redirecionamento devem ser o mais curtas possível. Cada salto extra adiciona aproximadamente 100-500ms de latência e desperdiça seu orçamento de rastreamento — o número de páginas que o Google rastreará no seu site por dia.
Perda de indexação — Páginas presas em loops de redirecionamento não são indexadas e desaparecem completamente dos resultados de busca
Desperdício de orçamento de rastreamento — O Googlebot gasta seu orçamento limitado de rastreamento seguindo redirecionamentos em vez de rastrear conteúdo real
Penalidade de velocidade da página — Cada redirecionamento 301 adiciona um round-trip completo (100-500ms). Três redirecionamentos podem adicionar mais de um segundo ao tempo de carregamento
Diluição de link equity — Backlinks apontando para uma URL em redirecionamento perdem aproximadamente 1-5% do valor de PageRank por salto
Perguntas Frequentes
Verifique sua cadeia de redirecionamentos agora
Use o Verificador de Redirecionamentos gratuito do DNS Robot para rastrear cada salto na sua cadeia de redirecionamentos e identificar loops instantaneamente. Verifique também seus cabeçalhos HTTP e status do certificado SSL.
Try Redirect CheckerFrequently Asked Questions
ERR_TOO_MANY_REDIRECTS significa que seu navegador detectou um loop infinito de redirecionamento. O site continua enviando seu navegador de um lado para o outro entre URLs sem nunca carregar uma página. Chrome e Firefox permitem até 20 redirecionamentos antes de exibir este erro, enquanto o Safari permite cerca de 16.