El desafio del cache en WooCommerce
El cache en WooCommerce requiere un equilibrio delicado: las paginas de productos, categorias y contenido estatico pueden y deben cachearse agresivamente para mejorar el rendimiento, pero las paginas del proceso de compra (carrito, checkout, mi cuenta) son completamente dinamicas y nunca deben cachearse. Una configuracion incorrecta del cache en WooCommerce puede resultar en que los clientes vean el carrito de otro usuario, precios incorrectos, o datos personales de otras sesiones.
Paginas de WooCommerce y su politica de cache
| Pagina | Cacheable | Razon |
|---|---|---|
| Pagina de tienda y categorias | Si (cache publico) | El contenido es igual para todos los usuarios |
| Pagina de producto individual | Si (cache publico) | El contenido base es igual para todos |
| Carrito (/cart) | No | El contenido es unico por usuario y sesion |
| Checkout (/checkout) | No | Datos personales y de pago, nunca cachear |
| Mi cuenta (/my-account) | No (o cache privado) | Informacion personal del usuario registrado |
| Confirmacion de pedido | No | Detalles especificos del pedido completado |
Configurar LiteSpeed Cache para WooCommerce
- Activar LiteSpeed Cache en WordPress.
- Ir a LiteSpeed Cache > WooCommerce. LiteSpeed Cache tiene un modulo especifico para WooCommerce que configura automaticamente las exclusiones correctas.
- Activar la opcion Activar compatibilidad con WooCommerce.
- Verificar que las opciones Bypass Cart Page y Bypass Checkout Page estan activadas.
- Activar la opcion Cachear carrito vacio para que las visitas de usuarios sin productos en el carrito si puedan ser cacheadas.
Configurar exclusiones manuales de cache
Ir a LiteSpeed Cache > Cache > Excluir y agregar las URLs y cookies de WooCommerce:
# URIs a excluir del cache /cart /checkout /my-account /order-received # Cookies que indican usuario con sesion activa o carrito con productos woocommerce_cart_hash woocommerce_items_in_cart wp_woocommerce_session_ wordpress_logged_in_
Cache ESI para WooCommerce (avanzado)
LiteSpeed soporta ESI (Edge Side Includes) que permite cachear la pagina completa mientras algunos fragmentos dinamicos (como el mini-carrito en la cabecera) se cargan de forma independiente. Esto elimina la necesidad de excluir paginas completas del cache por tener un elemento dinamico pequeño. Activar ESI en LiteSpeed Cache > ESI si esta disponible en el plan de hospedaje.
