Logo
WP Fix by Blimx

Bucle de Redirección Login en WordPress — 6 Causas y Arreglos

Actualizado:
AccessDiagnostics

Qué significa realmente "bucle de redirección de login"

Ingresas tu usuario y contraseña en /wp-login.php. Las credenciales son correctas. WordPress configura la cookie de auth. El navegador intenta navegar a /wp-admin/. WordPress revisa la cookie, falla en validarla, redirige de vuelta a /wp-login.php.

Ingresas credenciales de nuevo. Mismo resultado. Bucle infinito.

La causa siempre es que WordPress no puede leer o confiar en la cookie que acaba de configurar. Este artículo recorre las seis razones por las que pasa.

Causa 1 — URL del sitio equivocada tras migración

Migraste WordPress a un dominio nuevo. La base de datos aún tiene la URL vieja en las opciones siteurl o home.

Diagnóstico

wp option get siteurl
wp option get home

Si estos no coinciden con el dominio actual, lo encontraste.

Arreglo

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

Para URLs en contenido de posts:

wp search-replace 'http://olddomain.com' 'https://newdomain.com' --all-tables

Causa 2 — URL del sitio tiene protocolo equivocado (http vs https)

Tu sitio está en HTTPS pero siteurl dice http://. WordPress envía cookie para el contexto HTTPS, el navegador la presenta de vuelta, WordPress revisa contra contexto HTTP.

Diagnóstico

DevTools del navegador → Application → Cookies. Mira la cookie wordpress_logged_in_*. Anota el dominio y la flag "Secure".

Si Secure: true pero la URL es http://, mismatch.

Arreglo

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

Causa 3 — Múltiples instalaciones de subdominio o subdirectorio interfiriendo

Tienes wordpress.com/site1 y wordpress.com/site2. Las cookies de site1 entran en conflicto con site2.

Diagnóstico

wp option get cookie_path
wp option get cookie_domain

Si vacío y tienes múltiples installs, conflicto posible.

Arreglo

En wp-config.php:

define('COOKIE_DOMAIN', '.yoursite.com');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
define('ADMIN_COOKIE_PATH', '/wp-admin');

Ajusta paths para coincidir con tu estructura de install.

Causa 4 — Hora del servidor extrañamente mal

Las cookies de auth de WordPress tienen timestamps de expiración basados en hora del servidor. Si la hora del servidor está horas mal, la cookie puede estar "expirada" el momento que se configura.

Diagnóstico

date

Si extrañamente diferente de la hora real actual:

timedatectl

Revisa timezone y estado de sync.

Arreglo

timedatectl set-timezone UTC
timedatectl set-ntp on

Causa 5 — Plugin redirige tras login

Un plugin (Membership, Course, plugin custom de login) tiene un hook wp_login que redirige usuarios a algún lado — pero el destino del redirect requiere login que aún no ha completado configurar cookies.

Diagnóstico

grep -rE "add_action\s*\(\s*['"]wp_login['"]" wp-content/plugins/
grep -rE "wp_redirect|wp_safe_redirect" wp-content/plugins/ | grep -i login

Busca plugins enganchándose en filtros wp_login o login_redirect.

Arreglo

Deshabilita temporalmente plugins:

# Deshabilita todos excepto core WordPress
mv wp-content/plugins wp-content/plugins-disabled
mkdir wp-content/plugins

# Intenta login

Si login funciona, conflicto de plugin confirmado. Re-habilita plugins uno a la vez para identificar.

Causa 6 — Cloudflare o proxy quitando cookies

Cloudflare, Cloudflare Access, AWS ALB u otros reverse proxies a veces quitan o modifican cookies. Si tu regla Cache Level: Cache Everything cubre /wp-login.php, Cloudflare puede servir respuestas cacheadas sin configurar cookies.

Diagnóstico

curl -I https://yoursite.com/wp-login.php

Busca cf-cache-status: HIT en /wp-login.php — eso está mal, el login nunca debería cachearse.

Arreglo

En Cloudflare → Cache Rules:

  • Añade regla de bypass: cuando URI Path contains "/wp-login.php" O URI Path contains "/wp-admin" → Cache Status: Bypass

O vía Page Rule: *yoursite.com/wp-admin/* → Cache Level: Bypass.

El flujo diagnóstico

1. Abre DevTools del navegador → Application → Cookies
2. Envía login en /wp-login.php
3. Observa qué cookies se configuran, con qué flag domain/path/secure
4. Observa la cadena de redirect en pestaña Network

Si no se configuran cookies: problema del lado servidor (cookie_domain, redirect de plugin)
Si se configuran cookies pero se borran inmediatamente: mismatch de path/domain de cookie
Si se configuran cookies pero rechazadas en siguiente petición: valor de cookie inválido (tiempo, mismatch de salt)

Login manual de emergencia

Si estás verdaderamente atascado, inicia sesión vía WP-CLI:

wp user list --role=administrator
wp eval 'wp_set_auth_cookie(1); echo "Logged in as user 1";'

Esto configura la cookie de auth programáticamente. Pero necesitas acceso de línea de comando.

Para una cookie de acceso de una sola vez:

wp eval-file generate-login-cookie.php

Donde el archivo contiene:

<?php
$user_id = 1;  // usuario admin
$secure = is_ssl();
$expiration = time() + 14 * DAY_IN_SECONDS;
$cookie = wp_set_auth_cookie($user_id, true, $secure);
echo $cookie;

Errores comunes durante diagnóstico de bucle de login

  • Limpiar cookies del navegador (solo) — no arregla causa del lado servidor
  • Reinstalar WordPress — el problema de config del servidor persiste
  • Editar wp-config.php a ciegas — añadir constantes COOKIE_* aleatorias sin entender lo empeora
  • Asumir "el plugin debe ser la causa" — más a menudo es un problema de URL o tiempo

Cuándo llamar a un especialista

Resolvemos bucles de redirección de login en 15-45 minutos vía el flujo diagnóstico arriba. Para sitios WordPress de producción donde no puedes experimentar libremente, trabajamos quirúrgicamente.

Arreglo bucle login en horas. Para problemas de acceso más amplios ve soporte de emergencia.