“Borrar todas las sesiones” es una herramienta brusca: vacía carritos de invitados y puede interrumpir flujos. Alivia un síntoma, pero no explica por qué una sesión quedó obsoleta.
Empieza por el alcance recuperable mínimo: navegador de prueba, cliente concreto o filas demostrablemente caducadas.
Decide si la sesión está rota
Anota carrito, cuenta, URL, hora y navegador. Compara con ventana privada y otra cuenta de prueba.
Si falla todo el mundo, busca caché, base de datos, cookies o código. Si falla un navegador y una sesión nueva funciona, una limpieza dirigida es razonable.
Revisa pedidos y pagos antes de borrar una sesión de checkout.
Conserva evidencia
Inspecciona dominio, path y caducidad de cookies sin guardar valores. Anota expiración y tamaño de la sesión del servidor mediante herramientas autorizadas.
- ruta y hora
- sesión anónima o cliente
- atributos de cookie, nunca valor
- error PHP/MySQL
- última acción del carrito
No exportes el contenido serializado salvo necesidad estricta y acceso controlado.
Reinicia un navegador
Para un visitante afectado, eliminar los datos del sitio crea una sesión invitada nueva. Explica que puede perder su carrito y permite anotar productos.
Usa controles del navegador para ese dominio, no borres todo el historial. Después repite la acción y verifica persistencia.
Si vuelve inmediatamente, deja de limpiar y busca la causa.
Pide al soporte que registre el resultado sin solicitar capturas con cookies visibles. Si el cliente necesita conservar el carrito, ofrece guardar la lista de productos o generar un enlace recuperable mediante una función ya aprobada por la tienda. No prometas que una limpieza local conservará descuentos, gastos de envío o disponibilidad, porque esos datos pueden recalcularse.
Trata al cliente conectado
WooCommerce puede combinar la sesión con el carrito persistente del usuario. Prueba si logout/login restaura productos antiguos o mezcla líneas.
No borres metadata directamente. Usa API o herramientas soportadas y copia antes de una corrección dirigida.
Confirma identidad mediante el proceso normal de soporte; no conviertas la reparación en un atajo de acceso.
Limpia solo filas caducadas
Si el problema es crecimiento, restaura primero limpieza programada y WP-Cron/cron real. Después elimina solo expiradas por un método soportado.
SELECT COUNT(*) AS expired_rows
FROM wp_woocommerce_sessions
WHERE session_expiry < UNIX_TIMESTAMP();
Usa el prefijo real. Haz copia y no interpretes la consulta como permiso para borrar carritos vigentes.
Ejecuta mantenimiento acotado y controla locks y disco.
Cuenta primero y ejecuta la limpieza en lotes durante baja actividad si el volumen es grande. Entre lotes comprueba latencia, errores y sesiones nuevas; una condición calculada una sola vez puede quedar obsoleta mientras la tienda sigue vendiendo. No optimices la tabla automáticamente después: esa operación puede requerir espacio adicional y bloquear escrituras según la versión y configuración de MySQL.
Evita invalidación global
Solo se justifica tras incidente de seguridad, cambio incompatible de esquema o decisión explícita. Necesita ventana y plan de impacto.
Documenta efectos en carritos, logins, cupones y automatización de abandono. Coordina caché y despliegue para no reconstruir sesiones contra versiones mezcladas.
No ejecutes un DELETE sin límite porque el botón administrativo tarda.
Corrige por qué se rompen
Revisa dominio y HTTPS, clasificación de consentimiento, exclusiones de caché, Redis, escrituras MySQL y código de carrito. Todos los nodos deben compartir acceso compatible.
Relaciona fallos con disco, MySQL y PHP. Reducir temporalmente la tabla no corrige una base de solo lectura ni bots.
Documenta si fue expiración, corrupción, host incorrecto o sobrescritura de estado.
Cuando Redis u otro almacén de objetos participa, verifica prefijos, base seleccionada y consistencia entre nodos antes de vaciarlo. Un flush global puede afectar otras webs y no está justificado por un solo carrito. Si hay varios servidores, confirma que todos ejecutan el mismo código y comparten el almacén previsto; una sesión que alterna entre estados suele indicar una arquitectura incoherente.
Verifica con sesiones activas
Antes crea carritos controlados de invitado y cliente no caducados. Después de limpiar, deben sobrevivir cuando corresponda y la sesión rota recuperarse.
Completa un pedido invitado y verifica un pago, stock y email. Monitoriza recuentos y errores durante varios ciclos.
Prueba también una sesión que deba caducar para confirmar que la limpieza normal funciona.
El mantenimiento recurrente debe alertar sobre backlog y crecimiento anormal. La reparación dirigida trata los carritos activos como datos comerciales, no caché desechable.