wordpress-login-error

Error en el login de WordPress: bucle de redirección (solución)

Por Juan Luis Mora, consultor SEO freelance desde hace más de 15 años, con proyectos para pymes, tiendas online, portales públicos y empresas SaaS. Relacionado: quién soy y cómo trabajo.

¿Te está pasando que al entrar en wp-admin WordPress te devuelve una y otra vez a la pantalla de login, con una URL parecida a esta: tudominio.com/wp-login.php?redirect_to=...&reauth=1? Tranquilo, no eres el único, me lo he encontrado en varias instalaciones de clientes y tiene solución.

Causas más comunes

  • Usuario o contraseña incorrectos. Cuando te equivocas sale un aviso en rojo. Cuando el bucle pasa sin ese aviso, no es esto.
  • Sitio infectado. Menos común, pero posible: algo puede estar redirigiendo el login a otra página para robarte la contraseña. Si sospechas esto, lo más seguro es reemplazar todos los ficheros del núcleo de WordPress por una instalación limpia.
  • Problema de cookies del navegador. Se soluciona limpiando las cookies de tu sitio y volviendo a intentarlo.
  • Un plugin o el .htaccess mal configurado. Renombra la carpeta de plugins temporalmente y prueba con un .htaccess nuevo.
  • La base de datos está llena. Es la que menos se conoce, y la que me pasó a mí. Te la explico abajo.

No se puede hacer login porque la base de datos está llena

Cada vez que haces login en WordPress se ejecuta esta consulta:

INSERT INTO wp_options (option_name, option_value, autoload) VALUES ('_transient_doing_cron', '...', 'yes') ON DUPLICATE KEY UPDATE option_name = VALUES(option_name), option_value = VALUES(option_value), autoload = VALUES(autoload)

Si no queda espacio para ese INSERT, no puedes entrar. Para confirmarlo, activa WP_DEBUG en wp-config.php (define('WP_DEBUG', true);) y te saldrá un error con esa consulta y algo como «Comando de inserción denegado para el usuario».

Después mira en phpMyAdmin qué tabla se está pasando de tamaño. En mis casos siempre era wp_commentmeta, porque Akismet se había vuelto loco llenándola de metadatos de comentarios spam.

Limpiar wp_commentmeta

Esta consulta elimina metadatos huérfanos (de comentarios que ya no existen):

DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments)

Y esta, si además quieres aprovechar para borrar los que corresponden a comentarios sin aprobar (útil si te ha entrado mucho spam):

DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments WHERE comment_approved=1)

Ni falta hace decir que son consultas de borrado: aplícalas con cuidado y ten siempre una copia de la base de datos a mano antes de tocar nada.

En fin, espero que con esto puedas solucionar tu problema de login.

======================================================================

¿Necesitas ayuda con tu proyecto? Trabajo como consultor SEO, SEM y AEO freelance, sin agencia ni intermediarios, para pymes, tiendas online, multinacionales y empresas SaaS. Algunos de mis servicios: presupuesto SEO, consultor SEO para agencias, SEO para programadores y consultor SEO local. Escríbeme y lo vemos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *