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 wwwSi 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.comEn 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/.htaccessSi 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-IPSi 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 -30Busca 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
# PruebaSi 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/.htaccessBusca 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 WordPressSi 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.

