Cómo configurar la caché en WooCommerce

Si tienes una tienda online WooCommerce, y al ser una tienda online debe ser un sitio eminentemente dinámico, suelen plantearse muchas dudas acerca de cómo aplicar una correcta estrategia de caché para que la tienda ofrezca una navegación rápida y eficaz, al tiempo que no genere problemas a la hora de actualizar productos en el carrito o efectuar los pagos.

Así que hace tiempo que quería explicarte cómo configurar la caché en una tienda online WooCommerce, para evitarte dudas y disgustos,  y es lo que vamos a ver en esta guía, que espero que, al mismo tiempo, te aclare dudas y te evite cualquier disgusto.

¿Qué es la caché?

Para no enrollarme, pues es un tema del que ya he escrito unas cuantas guías, diré la caché que es cuando «guardas» una web para permitir que el sitio cargue más rápido para los visitantes que si cada elemento de la web tuviese que cargarse de nuevo en cada visita.

Los recursos de una  web con caché ya están cargados y así se pueden servir más rápido que si la web tuviese que «construir» la página cada vez que una hay una nueva visita.

¿Cómo afecta la caché a WooCommerce?

Los plugins de caché como WP Rocket no generan caché para los usuarios conectados por defecto, así que normalmente no habrá problemas provocados por la caché (salvo lo que veremos más abajo), pero ¿qué pasa con los usuarios que no están conectados?

Me refiero principalmente a los nuevos clientes que aún no han hecho un pedido y no han accedido a su cuenta. ¿Cómo ven tu tienda online estos usuarios no conectados?

Una caché mal aplicada a una tienda online podría provocar alguno de estos problemas

  • Clientes que ven detalles de otros.
  • Clientes a los que les aparecen productos en su carrito que no han añadido ellos.
  • Clientes que ven la dirección de otro cliente al ir a finalizar compra.
  • Clientes que al ir al carrito no ven los productos que han añadido sino otros.
  • … etc.

Si tienes este tipo de problemas, o similares, entonces no has configurado correctamente la caché para WooCommerce.

¿Lo arreglamos?

No creas que es algo trivial, porque si tienes este tipo de problemas tus clientes no se fiarán de tu tienda online para hacer compras, e incluso puedes estar incurriendo en divulgación de datos sensibles de otros clientes sin saberlo.

Como propietario de la tienda online es tu responsabilidad asegurare que tu tienda es segura, cumple todas las regulaciones de privacidad, y ofrece una experiencia de compra segura y correcta.

¿Tengo que configurar la caché específicamente para WooCommerce?

Cuando almacenas en caché el contenido de tu web deja de ser dinámico, el contenido se almacena y luego se sirve a los siguientes visitantes del mismo modo cada vez.

Esto significa que si tu página de finalizar compra está en caché nunca va a mostrar a cada cliente su carrito de compra correcto, mostrará lo que tenga guardado, no se actualizaría en cada visita.

Por supuesto, WooCommerce es dinámico, y tienes que asegurar que las páginas que tienen que ser dinámicas obligatoriamente estén excluidas de la caché.

¿Cómo configurar la caché para WooCommerce?

Si usas algún plugin de caché, como W3 Total Cache, WP Super Cache o Cache Enabler tienes que asegurarte que se está aplicando correctamente la caché a WooCommerce, realizando algunas comprobaciones.

Excluye las páginas de WooCommerce de la caché

Desde WooCommerce 1.4.2, WooCommerce configura automáticamente la constante DONOTCACHEPAGE, lo que técnicamente significa que no necesitas excluir las páginas que crea de tu sistema de caché.

No obstante, si tu plugin de caché no es compatible con la constante DONOTCACHEPAGE tendrás que excluir las páginas dinámicas de WooCommerce.

Para saber si un plugin es compatible con DONOTCACHEPAGE no suele haber que rebuscar mucho, suele estar especificado en su documentación.

Y, si tienes dudas, en la mayoría de los plugins de caché es bastante fácil excluir páginas de la caché, solo tienes que ir a sus ajustes y configurar que se excluyan de la caché las siguientes páginas:

  • Carrito
  • Finalizar compra
  • Mi cuenta
  • Tienda (opcional, pues al ser un loop la mayoría de los plugins de caché la actualizan al crear un nuevo producto)

Como ves, las páginas de esta lista son las principales páginas dinámicas que crea WooCommerce. Son páginas cuyo contenido variará en base a las acciones que realice el visitante con tus productos (añadirlos al carrito, ir a finalizar compra, comprobar pedidos, etc.)

La mayoría de los plugins ofrecerán un ajuste para excluir contenido de la caché, por ejemplo:

Pero es posible que no sea necesario, primero hay que comprobar si por defecto no está almacenando en caché las páginas de WooCommerce.

Nota: Si usas SG Optimizer o WP Rocket no tienes de qué preocuparte, ambos plugins excluyen automáticamente las páginas de WooCommerce por defecto.

¿Cómo compruebo si las páginas dinámicas de WooCommerce están excluidas de la caché?

Si usas el plugin SG Optimizer es sencillo, tienes una herramienta para comprobarlo en los ajustes del mismo plugin.

Si usas otro plugin de caché entonces tendrás que ver las cabeceras de respuesta de las páginas a probar.

En el caso anterior puedes comprobar que la página no está en la caché.

Nota: Si tienes problemas con clientes que con restablecer la contraseña y el acceso prueba a excluir my-account.php de tu plugin de caché.

Excluye de la caché las sesiones de WooCommerce

Dependiendo del plugin de caché que estés utilizando, es posible que tengas que excluir las sesiones de WooCommerce.

La mayoría de los plugins genéricos, como W3 Total Cache, WP Rocket, Cache Enabler, etc., no hacen caché de la base de datos, pero hay cachés de servidor que si lo hacen, así que en ese caso tendrías que excluir las sesiones de WooCommerce.

Simplemente tendrías que excluir de la caché la cadena «_wc_session_».

Excluye de la caché las cookies de WooCommerce

¿Te ha pasado alguna vez que has añadido artículos al carrito, vacías el carrito, recargas la página y de repente vuelven a aparecer los artículos en el carrito?

Esto, además de confuso para tus clientes, puede convertirse en un problema gordo, porque se podrían duplicar artículos en los pedidos, por ejemplo, provocándote importantes conflictos con tus usuarios.

Afortunadamente es muy fácil corregir ese problema, simplemente excluyendo las cookies de WooCommerce de la caché.

Actualmente hay 5 cookies de WooCommerce que puedes excluir de la caché:

  • woocommerce_cart_hash — Determina cuando el carrito se actualiza o recarga. Fundamental excluirla de la caché para asegurar que el carrito refleje siempre los artículos correctos.
  • woocommerce_items_in_cart — Otra cookie que ayuda a WooCommerce a determinar que en el carrito estén los datos adecuados. También deberías excluirla de la caché para asegurar que el carrito se muestra bien.
  • wp_woocommerce_session — Esta es la cookie de código único de tu visitante, asignada a cada cliente, y que ayuda a WooCommerce a encontrar en la base de datos el carrito de cada cliente. De nuevo, como comprenderás, es esencial excluirla de la caché
  • woocommerce_recently_viewed — Esta cookie es la que alimenta el widget de artículos vistos recientemente. Si lo usas sería conveniente excluirla de la caché.
  • store_notice[notice id] –  Esta es la cookie que guarda si el cliente ha descartado o no el aviso de la tienda. Si lo usas exclúyela de la caché, para no estar molestando a tus visitantes en cada página mostrando el aviso que ya han descartado.

De nuevo, en tu plugin de caché normalmente encontrarás un campo en el que añadir cadenas a excluir.

¿Y qué pasa con la caché de CloudFlare?

Pues nada, no pasa nada, porque la caché de CloudFlare también es compatible y no almacena en caché las páginas dinámicas de WooCommerce.

¿Minimizo o no minimizo HTML, CSS y JavaScript en WooCommerce?

La documentación oficial de WooCommerce recomienda no minimizar el JavaScript. Sin embargo yo te recomiendo que pruebes el minimizado de JavaScript, pues estarías desperdiciando un gran potencial de optimización de tu tienda online.

Si todo funciona, pues eso, funciona.

Un modo seguro de minimizar el JavaScript sin problemas con tu tienda online es que excluyas del minimizado los scripts de WooCommerce, algo que te permitirán hacer los mejores plugins de caché, como SG Optimizer.

¿Cómo probar que tu tienda WooCommerce funciona correctamente tras configurar la caché?

Una vez hayas configurado la caché de tu tienda online WooCommerce toca probar a ver si todo funciona.

¿Qué hacemos? Pues esta sería una lista razonable de MÍNIMOS:

  • Comprueba que tu página de productos (tienda) carga bien y muestra bien todos los productos.
  • Comprueba que tus páginas de taxonomías de productos cargan bien y muestran los productos correctos.
  • Haz una compra en tu web, desconectado, como invitado. Asegúrate de que se añaden correctamente los productos al carrito, que el pago funciona bien y que todos los detalles de la venta se muestran y guardan correctamente.
  • Haz una compra en tu web, como usuario registrado y conectado. Asegúrate de que se añaden correctamente los productos al carrito, que el pago funciona bien y que todos los detalles de la venta se muestran y guardan correctamente.
  • Comprueba que en la página de tu cuenta se reflejan tus compras y detalles de las mismas correctamente.
  • Crea un cupón y prueba a usarlo tanto en el carrito como en la página de finalizar compra, y revisa que las cantidades en el carrito y finalizar compra se actualizan correctamente.
  • Prueba a restaurar tu contraseña y asegúrate de que el proceso se realiza correctamente.

¿Funciona todo lo de la lista? Pues genial, has terminado.

¿Sigues teniendo problemas? Pasa al punto siguiente…

¿Qué hacer cuando la caché sigue generando problemas en tu tienda WooCommerce?

Lo más importante es no precipitarse ni entrar en pánico. Aunque te preocupes por problemas en tu tienda online con la caché, no te agobies, todo tiene arreglo, siempre.

Para empezar, si has activado también el minimizado y combinado de tus archivos (HTML, CSS, JS), desactiva estas opciones, vacía la caché, borra los datos almacenados en el navegador, y vuelve a hacer las pruebas en tu tienda online, conectado y desconectado. Yo siempre tengo instalado y a mano el navegador TOR, que no guardar caché, ni cookies, nada, es el navegador privado por excelencia.

¿Todo ha vuelto a funcionar? Pues vuelve a activar el minimizado de archivos, pero sin combinarlos, y comprueba de nuevo tu tienda online. Si todo va bien ya sabes que lo que generaba problemas era el combinado, y si no funciona entonces es el minimizado de archivos, todos o algunos.

¿Sigues teniendo problemas? Entonces te tocará contratar un consultor especializado en WordPress y WooCommerce de tu confianza.

¿Qué plugins de caché funcionan mejor con WooCommerce?

En mi experiencia con mis propios Ecommerce y de los clientes de mantenimiento WordPress, los plugins de caché con los que nunca tienes problemas en tiendas online WooCommerce son SG Optimizer si tienes la web alojada en SiteGround, o sino WP-Rocket para cualquier otro hosting.

Resumiendo…

Si tuviera que resumir esta guía sobre caché para WooCommerce en pocos puntos te diría que…

  • Por defecto WooCommerce no almacena en caché las páginas dinámicas, o sea, que normalmente todo funcionará bien y no tendrás que hacer nada.
  • Utiliza un buen plugin de caché, compatible con WooCommerce (DONOTCACHEPAGE) y optimiza la web a tu gusto sin preocupaciones.
  • En caso de problemas revisa esta guía, que para eso la he escrito ¿no?

Ya me contarás en los comentarios si has aprendido o te ha servido de algo 😉

(6 votos, promedio: 5) Valora este artículo para ayudar a mejorar la calidad del blog

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

Sobre el autor

Deja un comentario

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

Información base sobre privacidad:
  • Responsable: Fernando Tellado ([email protected])
  • Fin del tratamiento: Moderación de comentarios para evitar spam
  • Legitimación: Tu consentimiento
  • Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
  • Derechos: Acceso, rectificación, portabilidad, olvido

 

Ir arriba Ir al contenido