Cuando unas credenciales válidas regresan al mismo formulario, WordPress puede haber autenticado pero la siguiente petición no ve la cookie. También puede servirse una página cacheada de usuario desconectado.
No restablezcas la contraseña repetidamente. Distingue autenticación fallida de reconocimiento de sesión fallido.
Observa la petición completa
Usa una cuenta controlada en navegador privado. Abre Network, envía una vez e inspecciona respuesta, Location y peticiones posteriores.
Comprueba si WordPress establece cookies y si el navegador las envía a Mi cuenta.
Sin valores de cookie:
- host y HTTPS
- estado y destino
- dominio, path, Secure y SameSite
- estado de caché final
No publiques cookies ni uses una contraseña real.
Anota la cadena completa, por ejemplo POST /mi-cuenta/, respuesta 302 y destino final. Si el POST devuelve 200 con el mismo formulario, busca el mensaje de validación; si autentica y el siguiente GET aparece desconectado, céntrate en cookies, host y caché. Esta separación evita modificar contraseñas cuando el fallo ocurre después de validarlas.
Confirma las credenciales aparte
Prueba la cuenta controlada en el login estándar si la política lo permite. “Contraseña incorrecta” es distinto de autenticación correcta con bucle.
Revisa bloqueo, aprobación pendiente y 2FA. Membresía o seguridad pueden aplicar restricciones al rol de cliente.
No desactives toda la seguridad para pasar una prueba.
Alinea dominio y HTTPS
Dirección WordPress, Sitio y Mi cuenta deben usar un host canónico. Una cookie de www puede no acompañar un redirect sin www.
Tras migrar, WordPress debe detectar HTTPS correctamente. Si no, Secure y redirects entran en conflicto.
Revisa wp-config.php, opciones y proxy. No añadas COOKIE_DOMAIN duro sin evidencia: puede bloquear a todos.
Excluye Mi cuenta de caché
Login y cuenta no deben compartir HTML. Inspecciona Cloudflare, hosting y plugin en la respuesta final.
El bypass por cookie debe ejecutarse antes del lookup, pero la ruta de cuenta debe excluirse directamente. Purga la copia desconectada y prueba con caché caliente.
Los assets estáticos sí pueden seguir cacheados.
Comprueba tanto una respuesta purgada como varias respuestas posteriores. Algunos sistemas sirven bien la primera petición y guardan después el HTML privado por una regla demasiado amplia. Revisa cabeceras de caché, variación por cookie y estado HIT/MISS sin añadir datos personales al registro. La página debe seguir dinámica aunque CSS, JavaScript e imágenes usen caché prolongada.
Revisa redirects personalizados
Temas, membresía y código pueden redirigir en wp_login, routing o autenticación. Filtros contradictorios rebotan entre dos URL.
add_filter( 'woocommerce_login_redirect', function ( $redirect, $user ) {
// Devolver un destino local validado, no otra ruta de login.
return $redirect;
}, 10, 2 );
No uses parámetros externos sin validar. Conserva las protecciones de safe redirect.
Registra cada salto y qué componente lo produjo.
Busca también parámetros redirect_to, retornos al checkout y versiones traducidas de Mi cuenta. Un destino que funciona en inglés puede apuntar en otro idioma a una página protegida o de nuevo al formulario. Mantén el destino dentro del dominio, confirma que existe y evita encadenar redirecciones entre HTTP, HTTPS, www y el host sin www.
Inspecciona seguridad y consentimiento
WAF puede bloquear el POST o desafiar el redirect. Relaciona hora y evento y corrige la regla estrecha.
El gestor de consentimiento no debe borrar cookies de autenticación o sesión funcional cuando se rechaza tracking. Prueba estados separados.
Extensiones de privacidad ayudan a comparar, pero la tienda debe funcionar con configuraciones habituales.
Repara y prueba continuidad
Corrige host, detección HTTPS, exclusión, cookie o conflicto demostrado. Borra cookies solo del navegador de prueba tras publicar.
Prueba login, logout, recuperación, navegación de cuenta y login durante checkout. Confirma que un cliente no accede a otro y que el carrito sigue la política de fusión.
Prueba primera visita, usuario recurrente, móvil e idioma alternativo.
Repite con caché fría y caliente y conserva una cuenta con un carrito conocido. Tras entrar, el nombre y los pedidos deben corresponder a esa cuenta, el carrito debe seguir la regla definida por el negocio y el cierre de sesión debe retirar el acceso a páginas privadas. Si solo funciona para administradores, todavía no has probado la ruta real del cliente.
El mantenimiento recurrente debe comprobar autenticación tras cambios de dominio, SSL, caché, consentimiento o membresía. Una sesión administrativa no demuestra el acceso del cliente porque suele evitar las capas rotas.