Como optimizar WooCommerce y WordPress

Autor: | 2017-01-10T13:35:06+00:00 Fecha: 27/10/2015|Categorías: WordPress|Comentarios: 13 comentarios

WooCommerce es uno de los plugins de WordPress más utilizados ya que junto con WordPress es una excelente alternativa a Prestashop.
WooCommerce ofrece todas las herramientas necesarias para montar una tienda online totalmente operativa y lista para funcionar, sobre todo si combinamos WooCommerce con un buen theme desarrollado específicamente para WordPress con WooCoommerce.

Uno de los grandes problemas de WooCommerce a la hora de funcionar es que cambia bastantes cosas si lo comparamos con una instalación de WordPress normal y corriente, se añaden muchas funcionalidades nuevas y eso se convierte también en un mayor consumo de recursos que si no lo tenemos previsto puede llegar a darnos bastantes problemas.

optimizar woocommerce

Vamos a ser sinceros, WooCommerce con WordPress consume muchos recursos y puede llegar a saturar los planes de hosting más básicos, de hecho, es recomendable tener como mínimo 512 MB de RAM, aunque es recomendable tener al menos 1 GB de RAM o más disponible solo para el sitio web.

¿Por qué aumenta el consumo de recursos de WordPress al utilizar WooCommerce? WooCommerce consume recursos por dos frentes diferentes, por un lado, esta que evidentemente se consumen recursos al ejecutar código PHP, cuanto más complejo sea el código PHP y las funciones que se están ejecutando, más recursos se consumirán al interpretar ese código en el servidor.
Por otro lado, WooCommerce utiliza AJAX para la parte de administración y normalmente también utiliza AJAX para la parte del front-end del sitio web, y eso se traduce en un consumo de recursos constante que se producirá aunque nuestro sitio web no tenga ningún tráfico.

En WordPress, todos los plugins y themes que utilizan AJAX se comunican con WordPress a través de un archivo llamado admin-ajax.php del que ya hemos hablado anteriormente, este archivo mediante un API llamado Heartbeat permite a los plugins y themes comunicar AJAX con PHP mediante “impulsos” o actualizaciones continuas.
El problema está en que estas actualizaciones continuas que hacen que esté continuamente ejecutándose el archivo admin-ajax.php de WordPress pueden llegar a hacer que nuestro servidor o plan de hosting se sature y deje de funcionar, por lo tanto los visitantes dejaran de entrar.

optimizar Woocommerce

WooCommerce hace un uso intensivo del admin-ajax.php de WordPress, tanto en el front-end como en el back-end, lo que quiere decir que provoca un mayor consumo de recursos, y si a esto le añadimos el uso de un theme que utilice mucho AJAX y plugins que también utilizan AJAX, nos podemos encontrar con consumos verdaderamente altos que pueden llegar a ser inviables para cualquier sitio web tenga el tráfico que tenga.

Vamos a hacer un pequeño esquema para que entiendas la diferencia de consumo de recursos entre usar un WordPress normal y un WordPress con WooCommerce y un theme complejo:

  • Blog WordPress normal con theme simple: Consumo de recursos bajo.
  • Blog WordPress normal con theme complejo: Consumo de recursos bajo-medio.
  • Tienda online WooCommerce con theme simple: Consumo de recursos medio.
  • Tienda online WooCommerce con theme complejo: Consumo de recursos alto.

Aunque son ejemplos muy generalistas, creo que son suficientes para entender las diferencias en el consumo de recursos, de hecho, esta es una de las razones por las cuales no recomendamos el Plan Inicio de hosting compartido en nuestros planes WordPress.

 

Cache con W3 Total Cache en WooCommerce

Para que funcione correctamente un cache en WooCommerce es necesario realizar una serie de configuraciones especiales para excluir ciertas partes de la tienda online del cache como por ejemplo el carrito de la compra o la hoja de pedidos.

Personalmente W3 Total Cache ha sido el único plugin que me ha demostrado un funcionamiento limpio con WooCommerce, además de ser uno de los más efectivos ya que su cache de consultas es muy potente y WooCommerce suele realizar un uso intensivo de la base de datos MySQL en las partes que no se pueden cachear.

Para configurar W3 Total Cache podemos seguir el siguiente manual: https://raiolanetworks.es/blog/guia-basica-de-configuracion-de-w3-total-cache-en-wordpress/

Para realizar correctamente la implementación de un sistema de cache con W3 Total Cache en WooCommerce debemos tener en cuenta dos cosas básicas.

La primera cosa básica es que, en el cache de página, independientemente del resto de la configuración, debemos añadir la página de carrito y checkout a las exclusiones del Page Cache, de esta forma evitaremos problemas con los clientes que puedan cargar contenido cacheado:

optimizar Woocommerce

Normalmente se suele añadir a excepciones la página de carrito, por ejemplo /cart/ y la página de checkout, normalmente /checkout/, también se suele añadir la página personal de la cuenta del usuario, normalmente llamada /my-account/.

Otra parte que debemos configurar es el Database Cache, debemos introducir una exclusión para que ciertas consultas a la base de datos no sean cacheadas y por lo tanto se muestren los datos correctos a los visitantes.

Simplemente debemos añadir el prefijo _wc_sessions_ a la caja de texto:

optimizar Woocommerce

Con esto la parte del cache de WooCommerce y WordPress la tendremos completamente cubierta y nuestro sitio web ya no necesitara procesar todo el código PHP cada vez que se carga el sitio web.

A veces cachear una tienda WooCommerce puede llegar a ser complicado, de hecho, dependiendo del theme usado y de los plugins, en algunos casos puede ser necesario realizar la optimización utilizando WP Rocket en lugar de utilizar W3 Total Cache, por motivos de configuración de exclusiones.

 

Optimización del Admin-Ajax-php en WooCommerce

De esto ya hemos hablado en otro artículo, es importante optimizar la ejecución del admin-ajax.php para que su funcionamiento no dañe el rendimiento del sitio web y del plan de hosting.

Actualmente solo existen dos formas de mitigar el impacto en el rendimiento del admin-ajax.php de WordPress, una de ellas es desactivando o retrasando su ejecución a periodos de tiempo más grandes, mientras que la otra es utilizando un OPCache para cachear la salida de PHP y guardar en RAM los archivos PHP preprocesados.

optimizar Woocommerce

Actualmente desde el punto de vista del administrador de un sitio WooCommerce es imposible eliminar la API Heartbeat completamente del funcionamiento de WooCommerce, aunque sí que es posible reducir su impacto.

Utilizando el plugin Heartbeat Control podemos hacer las siguientes acciones para adaptar el funcionamiento de Heartbeat y del admin-ajax.php a cada uno de los casos:

  • Podemos desactivar Heartbeat para todo el sitio web, pero debemos tener en cuenta que esto dejara fuera de juego algunas funcionalidades propias de WordPress y también la mayoría de WooCommerce.
  • Podemos desactivar Heartbeat para la mayoría de zonas del sitio web, de forma que solo funcione el admin-ajax.php en el back-end de WordPress.
  • De forma predeterminada los “pulsos” del admin-ajax.php se realizan cada 15 segundos, podemos ampliarlo hasta 60 seguros para bajar el consumo de recursos de esta forma.

Desde que hemos conocido el plugin Heartbeat Control se ha convertido en un incondicional a la hora de realizar una optimización de WooCommerce con WordPress.

 

Utilización de un OPCache para PHP

Ya hemos hablado unas cuantas veces en este blog de los OPCache para PHP, de hecho, un par de veces ya hemos escrito varios artículos sobre el tema:

A grandes rasgos, un OPCache se encarga de guardar archivos PHP preprocesados en la memoria RAM, con el correspondiente ahorro de recursos y mejora de la velocidad de carga.

En hosting compartido la mayoría de proveedores no suelen utilizar un OPCache o no utilizan un OPCache potente dado que no está soportado por los principales paneles de gestión de hosting. Nosotros en nuestros servidores VPS optimizados ofrecemos a nuestros clientes Zend OPCache como OPCache, hemos elegido este OPCache ya que según el benchmark que hemos realizado y publicado es el OPCache más rápido para WordPress y por lo tanto es la mejor opción para WooCommerce.

Utilizando Zend OPCache se consiguen buenos resultados debido a que el código de WooCommerce es muy complejo, al guardarse en la memoria RAM el código PHP preprocesado se mejora radicalmente el tiempo de respuesta y el consumo de recursos.

Si buscas un buen servidor VPS con un OPCache instalado para acelerar tu WooCommerce puedes contactar con nosotros sin compromiso o consultar nuestro catálogo de VPS optimizados: https://raiolanetworks.es/servidores-vps-optimizados/

 

 

[Total: 7 Promedio: 4.1]
Mi nombre es Alvaro Fontela, soy consultor Wordpress y blogger activo desde hace años. Co-Fundador de Raiola Networks, escribiendo sobre Wordpress en este blog día tras día.

Utilizamos cookies propias y de terceros para obtener información estadística, mostrar publicidad personalizada a través del análisis de tu navegación, así como para interactuar en redes sociales. Si continúas navegando, consideramos que aceptas nuestra Política de cookies. ACEPTAR

Aviso de cookies