Evaluación inicial sin contraseñas Presupuesto antes de intervenir Especialista responsable de principio a fin

Sesiones Cache Estado Cliente

Las sesiones WooCommerce crecen hasta ralentizar la base de datos

Diagnostica crecimiento, limpieza caducada, carritos de bots, WP-Cron, índices y mantenimiento MySQL seguro.

Las filas de sesión son normales: guardan carritos de invitados y caducan. El problema aparece cuando se crean mucho más rápido de lo que se limpian, los bots generan carritos masivos o la salud de tablas e índices vuelve lentas las lecturas.

No trunques la tabla en producción. Vacía carritos activos y oculta el ritmo de crecimiento sin corregirlo.

Mide tamaño y crecimiento

Haz copia y consulta filas, tamaño y expiraciones usando el prefijo real.

SELECT COUNT(*) AS session_rows,
       MIN(session_expiry) AS oldest_expiry,
       MAX(session_expiry) AS newest_expiry
FROM wp_woocommerce_sessions;

Usa una cuenta autorizada de solo lectura. No copies valores serializados; pueden incluir datos del cliente.

Repite después de un intervalo y compara tráfico normal con campañas. Una cifra aislada no explica la tasa.

Relaciona cada medición con visitas, peticiones de carrito y sesiones caducadas. Si las filas suben durante una campaña y bajan después, la limpieza probablemente funciona; si aumentan de forma continua durante días, hay que investigar el planificador. Comprueba también el tamaño real en disco: borrar registros no siempre devuelve espacio inmediatamente y una tabla fragmentada puede requerir mantenimiento coordinado con el proveedor.

Confirma la limpieza programada

Revisa WooCommerce > Estado > Acciones programadas por tareas atrasadas o fallidas y comprueba WP-Cron.

Una web con poco tráfico y WP-Cron deshabilitado necesita cron real bien configurado. En una tienda grande puede haber backlog por fatals, locks o workers insuficientes.

Repara el planificador antes de borrar filas manualmente; de lo contrario volverán.

Anota la última ejecución correcta y el número eliminado.

Separa tamaño de lentitud

Usa slow query log o métricas del hosting para identificar la consulta costosa. Una tabla grande con índices sanos puede no ser el cuello, mientras disco o índice ausente ralentizan una menor.

Compara el esquema esperado por la versión y examina planes de ejecución. No añadas índices especulativos que choquen con actualizaciones.

Revisa también Action Scheduler y pedidos: el checkout puede culpar a sesiones cuando otra tabla domina.

Busca carritos creados por bots

Los bots pueden llamar add-to-cart, variaciones o checkout abandonado a velocidad de máquina. Compara crecimiento con logs agregados por ruta, frecuencia y user agent.

Aplica límites al patrón abusivo sin bloquear compradores ni buscadores. No pongas un challenge en cada petición de carrito: rompe accesibilidad y callbacks.

Elimina enlaces públicos que disparen add-to-cart involuntariamente.

Revisa la retención personalizada

Plugins o código pueden ampliar la caducidad o almacenar payloads grandes. Busca filtros de expiración y claves de sesión propias.

Guarda solo estado efímero necesario. Las preferencias permanentes pertenecen al perfil del cliente u otro modelo.

Cambiar la duración afecta carritos y marketing; acuerda el periodo con el negocio y privacidad.

Mide tamaño medio y detecta claves anómalas sin exportar contenidos.

Limpia datos caducados con seguridad

Tras copia y reparación del scheduler, usa el mecanismo soportado o elimina únicamente filas demostrablemente expiradas mediante una operación acotada y probada en staging.

Programa en horas de menor tráfico y vigila locks, replicación y disco. No borres filas vigentes para reducir tamaño.

Optimizar tabla puede necesitar espacio temporal y bloquear escrituras según MySQL. Sigue el método del host y prepara reversión.

Divide el trabajo en lotes si el volumen lo exige.

Antes de cada lote cuenta de nuevo las filas que cumplen el criterio y establece un límite de tiempo. Así puedes detener la operación si crecen los locks o la latencia del checkout. Guarda el recuento previo y posterior, no una copia de los datos de sesión, para que la intervención sea auditable sin exponer información del cliente.

Verifica clientes y base de datos

Monitoriza filas, caducadas, latencia y respuesta del checkout. Crea antes un carrito controlado no caducado y confirma que sobrevive.

Completa checkout invitado y comprueba pedido, pago y stock. Una mejora MySQL que rompe carritos no está terminada.

Observa varios ciclos de expiración para demostrar que crecimiento y limpieza se equilibran.

El mantenimiento recurrente debe alertar por tareas fallidas, ritmo anormal, disco y consultas lentas. La salud combina cron, control de bots y mantenimiento MySQL medido.

ANTES DE ENVIAR LA SOLICITUD

Preguntas frecuentes.

¿Pedís contraseñas en el formulario?+

No. El formulario público nunca solicita accesos. Los datos seguros se piden únicamente después de aprobar el alcance y el presupuesto.

¿Quién revisa la incidencia?+

La solicitud llega a Jordi Ensenyat, fundador de Code Barcelona y especialista WordPress con más de 15 años de experiencia.

¿Se cambia algo antes del presupuesto?+

No. Primero se revisan los síntomas visibles y se define el alcance. La intervención empieza tras la aprobación y con una vía de vuelta preparada.

¿Trabajáis con webs en inglés y fuera de España?+

Sí. WP Repair atiende incidencias WordPress y WooCommerce en inglés y español, con servicio remoto.

Evaluar mi incidencia