Too Many Redirects — Loop de redirecionamento no WordPress
O que é o erro Too Many Redirects?
O erro “ERR_TOO_MANY_REDIRECTS” ou “Too many redirects” ocorre quando o navegador detecta que está sendo redirecionado infinitamente entre páginas. O WordPress redireciona para uma URL, essa URL redireciona para outra, que redireciona de volta para a primeira — criando um loop que nunca termina.
O navegador interrompe esse processo após um número determinado de redirecionamentos (geralmente 20) e exibe a mensagem de erro. Isso impede completamente o acesso ao site.
Causas mais comuns
URLs incorretas no banco de dados
A causa mais frequente é ter a URL do site configurada com http:// no banco de dados enquanto o servidor força o uso de https:// (ou vice-versa). O WordPress redireciona para https, mas a URL salva no banco aponta de volta para http, criando o loop.
Configuração incorreta do SSL/HTTPS
Quando o SSL está configurado incorretamente — especialmente em CDNs como o Cloudflare — pode ocorrer um loop entre o servidor de origem e o CDN. Isso acontece principalmente quando o modo SSL do Cloudflare está configurado como “Flexible” em vez de “Full”.
.htaccess com regras conflitantes
Múltiplas regras de redirecionamento no .htaccess que se contradizem também podem causar loops. Isso é comum quando plugins de SEO ou segurança adicionam regras sem verificar se já existem regras similares.
Corrigindo as URLs no banco de dados
O primeiro passo é verificar e corrigir as URLs salvas no banco de dados. Acesse o phpMyAdmin, selecione o banco de dados do WordPress e execute:
SELECT option_name, option_value
FROM wp_options
WHERE option_name IN ('siteurl', 'home');
Ambos os valores devem começar com https:// se o site usa SSL. Para corrigir:
UPDATE wp_options
SET option_value = 'https://seusite.com'
WHERE option_name = 'siteurl' OR option_name = 'home';
Forçando as URLs via wp-config.php
Uma solução rápida é forçar as URLs corretas diretamente no wp-config.php, o que sobrescreve os valores do banco de dados:
define('WP_HOME', 'https://seusite.com');
define('WP_SITEURL', 'https://seusite.com');
Após verificar que o site voltou ao normal, você pode remover essas linhas e corrigir os valores diretamente no banco de dados.
Corrigindo a configuração do Cloudflare
Se o site usa Cloudflare, acesse o painel do Cloudflare, vá em SSL/TLS → Overview e altere o modo de encriptação de “Flexible” para “Full” ou “Full (Strict)”. O modo Flexible é a causa mais comum de loops de redirecionamento em sites com HTTPS ativo.
Limpando cookies e cache
Após corrigir o problema, limpe os cookies do navegador e o cache do site. Redirecionamentos podem ser armazenados em cache pelo navegador ou por plugins de cache, fazendo o erro persistir mesmo após a correção. No WordPress, acesse o painel do seu plugin de cache e clique em “Limpar cache”.
Causa
O erro Too Many Redirects ocorre quando o WordPress entra em um loop infinito de redirecionamentos. As causas mais comuns são: URLs incorretas no banco de dados (siteurl e home com http enquanto o servidor força https), configuração incorreta do SSL/HTTPS, plugin de cache com redirecionamento em loop, ou código incorreto no .htaccess que cria redirecionamento circular.
Como resolver
Limpe os cookies e cache do navegador e tente novamente.
Acesse o phpMyAdmin e verifique os valores de siteurl e home na tabela wp_options:
SELECT option_value FROM wp_options WHERE option_name = 'siteurl';Se estiver usando HTTPS, garanta que ambos comecem com https://: UPDATE wp_options SET option_value = 'https://seusite.com' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://seusite.com' WHERE option_name = 'home';Adicione temporariamente ao wp-config.php para forçar as URLs: define('WP_HOME', 'https://seusite.com');
define('WP_SITEURL', 'https://seusite.com');Verifique o .htaccess e remova qualquer regra de redirecionamento duplicada. Desative todos os plugins via FTP renomeando a pasta plugins.
Se usar CDN ou proxy (Cloudflare), verifique se o modo SSL está como "Full" e não "Flexible".
Após resolver, remova as linhas do wp-config.php adicionadas no passo 4.
define('WP_HOME', 'https://seusite.com');
define('WP_SITEURL', 'https://seusite.com');