Logo
WP Fix by Blimx

ERR_TOO_MANY_REDIRECTS — Causas y Arreglos en WordPress

Actualizado:
AccessErrors

Qué te dice el navegador

ERR_TOO_MANY_REDIRECTS (o su primo de Firefox "page isn't redirecting properly") significa que el navegador hizo más de 20 saltos de redirect intentando cargar tu sitio. Se rindió.

Para WordPress, esto casi siempre rastrea a una de cinco causas. Este artículo diagnostica cada una.

El comando diagnóstico

Antes de cambiar algo, ve la cadena de redirect:

curl -IL https://yoursite.com/

El -L sigue redirects. El output muestra cada redirect:

HTTP/2 301
location: https://www.yoursite.com/

HTTP/2 301
location: https://yoursite.com/

HTTP/2 301
location: https://www.yoursite.com/

En este ejemplo, el sitio redirige de no-www a www, después de vuelta a no-www, infinitamente.

El patrón de la cadena de redirect apunta a la causa.

Causa 1 — mismatch siteurl/home con www/no-www

Tienes https://www.yoursite.com configurado en siteurl pero Apache/Nginx redirige www a no-www. WordPress responde con redirect a www. Apache redirige de vuelta. Bucle.

Diagnóstico

wp option get siteurl
wp option get home
curl -I https://yoursite.com/      # sin www
curl -I https://www.yoursite.com/  # con www

Si siteurl es www pero el servidor redirige www→no-www (o viceversa), esta es tu causa.

Arreglo

Decide qué versión es canónica (recomendamos no-www para sitios nuevos, www para legacy).

wp option update siteurl https://yoursite.com
wp option update home https://yoursite.com

En Apache/Nginx, redirige la otra versión a canónica. Asegura que WordPress y servidor coinciden.

Causa 2 — Modo SSL Cloudflare = Flexible

Cloudflare → SSL/TLS → Overview. Si "Flexible" está seleccionado:

  • Visitante → HTTPS → Cloudflare
  • Cloudflare → HTTP → Origen
  • Origen (WordPress) ve HTTP, redirige a HTTPS
  • Cloudflare → HTTP → Origen (otra vez)
  • Bucle

Diagnóstico

Revisa el modo SSL/TLS de Cloudflare. Si Flexible, esta es tu causa.

Arreglo

Cambia a "Full" o "Full (strict)":

  • Full — Cloudflare acepta cualquier cert (incluyendo self-signed)
  • Full (strict) — requiere cert válido en origen

Para producción, usa Full (strict) con Let's Encrypt o Cloudflare Origin CA.

Causa 3 — Plugin Force HTTPS Y redirect a nivel servidor conflictuando

Tienes un plugin (Really Simple SSL, WP Force SSL) haciendo redirect HTTPS a nivel PHP Y Apache .htaccess haciendo redirect HTTPS a nivel servidor. Redirigen la dirección equivocada relativa entre sí.

Diagnóstico

# Revisa plugins
wp plugin list --status=active | grep -i ssl

# Revisa .htaccess
grep -i "RewriteRule.*https" /var/www/yoursite/.htaccess

Si ambos tienen lógica de redirect HTTPS, conflicto posible.

Arreglo

Elige uno. Recomendamos a nivel servidor (.htaccess o Nginx) y deshabilita el plugin.

Apache .htaccess:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Después desactiva el plugin SSL.

Causa 4 — Headers de reverse proxy equivocados

Estás detrás de un load balancer o reverse proxy. El LB termina HTTPS, envía HTTP a tu servidor con X-Forwarded-Proto: https. Pero WordPress no confía en el header por defecto, ve HTTP, redirige a HTTPS, LB envía HTTP de nuevo. Bucle.

Diagnóstico

curl -I https://yoursite.com/
# Revisa los headers Server y CF-Connecting-IP

Si estás detrás de un load balancer (AWS ALB, Cloudflare, Sucuri), esto es sospechoso.

Arreglo

En wp-config.php, ARRIBA de la línea require_once ABSPATH . 'wp-settings.php';:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}

Esto dice a WordPress que trate peticiones con X-Forwarded-Proto: https como HTTPS internamente.

Causa 5 — Plugin o tema añadiendo su propio redirect

Un plugin (a menudo Multi-site Plugin, Geographic Redirect, Coming Soon Mode) hace redirects a nivel PHP en cada petición. Configurado mal, hace bucle.

Diagnóstico

grep -rE "wp_redirect|wp_safe_redirect|header\s*\(\s*['"]Location:" wp-content/plugins/ | head -30

Busca plugins haciendo redirects sin condiciones apropiadas.

Arreglo

Deshabilita plugins uno a la vez hasta que el bucle pare:

mv wp-content/plugins wp-content/plugins-disabled
mkdir wp-content/plugins

# Prueba

Si el sitio funciona con todos los plugins off, re-habilita uno a la vez. El que cause el bucle es tu culpable.

Para plugin Coming Soon Mode específicamente, asegura que no redirige cuando el usuario está logueado.

Bonus: Causa 6 — Bucle de RewriteRule en .htaccess

Tu .htaccess tiene reglas de reescritura que envían /page//page y /page/page/. Bucle.

Diagnóstico

cat /var/www/yoursite/.htaccess

Busca cualquier RewriteRule cuyo target pudiera disparar otra RewriteRule.

Arreglo

Reemplaza .htaccess con bloque default de WordPress:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Si tenías reglas custom, añádelas de vuelta una a la vez, probando.

El checklist diagnóstico de 5 minutos

1. curl -IL <yoursite> — anota cadena de redirect
2. wp option get siteurl, home — compara con cadena
3. ¿Modo SSL Cloudflare = ? (Flexible es la causa si sí)
4. ¿.htaccess tiene redirects custom?
5. ¿Plugin activo haciendo redirects?
6. ¿Detrás de load balancer? ¿X-Forwarded-Proto?

Cada paso descarta una causa. Para el paso 6 lo has identificado.

Errores comunes durante diagnóstico de bucle de redirect

  • Limpiar cache — no arregla el problema de config
  • Reinstalar plugin SSL — solo ayuda si el plugin era la causa
  • Intentar constantes `wp-config.php` aleatorias — sin diagnóstico, lo empeora
  • Reiniciar Apache/Nginx — no cambia config; mismo bucle vuelve

Cuándo llamar a un especialista

Los bucles de redirect son rompecabezas diagnósticos. Los resolvemos en 15-45 minutos vía la aproximación de curl chain arriba. Para sitios fronteados por Cloudflare, a veces coordinamos con su equipo de soporte para cambios de config en el edge.

Arreglo bucle redirect en horas. Para emergencias más amplias ve soporte de emergencia.