Optimizá la performance del back end de tu tienda Woocommerce

Sabemos que es crucial que las tiendas sean rápidas en el front end para proporcionar una excelente experiencia a los compradores. Pero es posible que no sepas acerca de la importancia de que el back end de tu tienda sea rápido.

La velocidad y la eficiencia de tu panel de WordPress afecta la productividad y la capacidad para administrar el funcionamiento diario de tu tienda.

En general, hay tres posibles causas de lentitud del backend de WooCommerce:

  • Código PHP endeble
  • Consultas de base de datos débil
  • Carga lenta de archivos.

¿Cómo diagnosticar y solucionar estos problemas?.

1. Deshabilitá / eliminá plugins / configuraciones no utilizadas:

Recomendamos mantener los plugins que necesites y eliminar el resto. Esto generalmente se hace desde el punto de vista de seguridad y mantenimiento de WordPress.

2. Mantené WordPress Core, Plugins y Temas actualizados:

El rendimiento siempre es un factor clave para los desarrolladores de WordPress. Es importante probar nuevas versiones de WordPress, WooCommerce y cualquier plugin y tema que estés utilizando antes de aplicar a la actualización. Esto implica efectuar una puesta en escena, investigar y ejecutar pruebas exhaustivas antes de actualizar tu sitio de producción.

3. Elegí un buen servidor web:

Para WordPress y tiendas online basadas en CMS (gestores de contenido) recomendamos los planes WordPress, Corporativo, Alta Demanda, Premium. Todos ellos están parametrizados para correr este tipo de aplicaciones.

Si bien el alojamiento compartido es ideal para sitios más pequeños y WooCommerce, vale la pena buscar VPS y soluciones de alojamiento administradas de WordPress que puedan garantizar recursos dedicados para tu sitio.

Preferiblemente, elegí un host que admita PHP 7+ y que también proporcione alguna funcionalidad de almacenamiento en caché integrada.

4. Utilizá Object Caching:

Hay muchas opiniones mixtas y aparentemente erradas sobre el almacenamiento en caché de objetos. Pero intentemos dejar las cosas claras: cuando se hace correctamente, el almacenamiento en caché de objetos es una forma válida y comprobada de acelerar su backend de WooCommerce.

Baehost ofrece almacenamiento en caché de objetos o cache distribuido, para ello tienes que habilitar la extension “memcached” desde “seleccionar version PHP” en el caso de cPanel.

Memcached te puede ayudar con ese proposito, sobretodo con webs que requieren tener mucha infraestructura detras para poder mantenerlos online. Aunque últimamente Redis también se ha posicionado como una buena opción para cache de objetos distribuido, muchos seguimos prefiriendo Memcached ya que lleva mas tiempo en el mercado y en la mayoría de los casos existe mas compatibilidad con este sistema.

Alternativamente, si administras tu propio alojamiento, los plugins como WP Redis con Redis data store pueden complementar el almacenamiento en caché del front end mientras acelera tu dashboard de WooCommerce.

5. Desactiva funcionalidades del panel de control de WordPress y WooCommerce que no necesites:

Personalizar lo que se muestra en tu dashboard puede parecer redundante, pero para algunos sitios, estos simples cambios pueden marcar una gran diferencia en un backend lento de WooCommerce:

  • Eliminar el order count del menú de administración;
  • Deshabilitar los widgets del dashboard que ya no necesites ni uses tanto para WooCommerce como para WordPress core;
  • Ocultar las etiquetas, destacados y type admin columns de la lista de productos de WooCommerce; y
  • Desactivar la regeneración de la imagen de fondo.

Los plugins como WP Widget Disable pueden ayudarte a limpiar los widgets del dashboard. Para usuarios avanzados, Luke Cavanagh de Liquid Web ha creado un excelente plugin que proporciona ajustes de rendimiento para el front-end y el back-end de WooCommerce, que se puede descargar desde su repositorio en GitHub.

El plugin de Luke es una mina de oro de configuraciones que se puede deshabilitar para acelerar el dashboard de WooCommerce. Vale la pena señalar que no es muy configurable, por lo que si no eres un desarrollador, te recomiendo proceder con precaución. El rendimiento que obtengas con este plugin, variará de un sitio a otro.

Acelerando el back end de Woocommerce:

Ahora que has descartado todos aquellos problemas relacionados con el rendimiento a causa de la lentitud de WooCommerce, probablemente puedas determinar que la lentitud en la carga del backend de WooCommerce este basado en tres posibles causas: código PHP no optimo, consultas a base de datos no optimo o lento, carga de archivos lenta, o incluso una combinación de los tres.

  • Causa #1. Código PHP no optimo:

1. Actualización a la última versión de PHP:

Si tu sitio se ejecuta bajo una versión anterior de PHP, especialmente cualquier versión por debajo de PHP 7; la actualización a la última versión 7.3+ te proporcionará rendimiento significativo.

PHP 7+ es hasta seis veces más rápido que cualquier versión anterior de PHP y requiere menos servidores para entregar tu sitio de WordPress al mismo número de visitantes. De hecho, las pruebas de referencia muestran que PHP 5.6 ejecuta una solicitud de WordPress en menos de 100M de instrucciones de CPU, mientras que PHP 7+ solo ejecuta 25M para hacer el mismo trabajo.

Aún así, según las estadísticas de WordPress.org, la mayoría de los sitios de WordPress están usando PHP 5.6.

¿Por qué?. Básicamente, porque los web hosting no quieren romper los sitios web de sus clientes. Esto significa que si deseas que tu sitio se ejecute con la última versión de PHP, deberás tomar la iniciativa y hacerlo tu mismo, o consultar con nuestro departamento de soporte.

Para verificar qué versión de PHP está ejecutando tu sitio, el plugin Display PHP Version puede agregar esta información al widget «At a Glance» en el dashboard de WordPress.

Adicionalmente, también recomendamos habilitar OPcache. OPcache es una extensión de PHP que mejora el rendimiento de PHP al almacenar el bytecode de script precompilado en la memoria compartida, eliminando así la necesidad de que PHP cargue y analice scripts en cada solicitud.

Cuando está habilitado, OPCache puede disminuir los tiempos de respuesta hasta en un 50%, según Sitepoint.

La extensión está integrada en PHP 5.5+ y reemplaza a APC, y es una alternativa a XCache como acelerador de PHP.

WP Rocket admite OPCache e incluye la opción de purgarlo.

2. Utiliza solo plugins populares y compatibles:

A veces ocurre que aunque tengas todo bajo control las cosas se escapan, o alguna combinación extraña de tema/plugin/hosting conduce a cuellos de botella de rendimiento.

En su mayor parte, los desarrolladores estuvieron de acuerdo en que apegarse a plugins populares y bien respaldados es una buena opción. Sin embargo, algunos plugins populares son conocidos por sus impactos en el rendimiento del sitio.

En estas situaciones, cuando las cosas se ponen lentas, el método habitual para identificar un plugin problemático es desactivar sus plugins uno por uno hasta que se detengan los problemas que está experimentando. Pero con las herramientas de depuración correctas, puede identificar rápidamente los problemas con mayor precisión.

Si eres un desarrollador de PHP, es posible que estés familiarizado con las herramientas de perfilado (profiling tools) (generalmente sobre un sitio de prueba local) como las incluidas con XDebug para registrar y analizar el uso de PHP e identificar problemas de rendimiento.

De lo contrario, hay algunos plugins de depuración disponibles, que te pueden ayudar a identificar cualquier problema con los plugins. Estos incluyen Query Monitor y Debug Bar (y sus diversos complementos, como Debug Bar Slow Actions).

Ambos plugins no son estrictos a la hora de evaluar el rendimiento de PHP, pero te darán una buena indicación si tus plugins están codificados para usar consultas subóptimas (discutiremos esto en la siguiente sección).

La siguiente opción, si la tienes disponible, es utilizar un poderoso servicio de rendimiento de aplicaciones para desarrolladores llamado New Relic. Esta fantástica herramienta (que explicaré con más detalle a continuación) puede ayudarte a profundizar en el funcionamiento interno de un sitio de WordPress y detectar errores con plugins, archivos de temas, consultas de bases de datos, llamadas externas o código que están causando cuellos de botella en el rendimiento .

Por ejemplo, puedes obtener una lista rápida de los plugins y temas que poseen mucho tiempo de carga en tu sitio:

  • Causa #2. Consultas a bases de datos sin rendimiento:

1. Mostrar un número sensible de publicaciones en el area de administracion:

Sus admin pages podrían estar cargando lentamente simplemente porque está cargando demasiados elementos en la pantalla a la vez, incluidas publicaciones y otros tipos de objetos, como pedidos o productos.

WordPress por defecto muestra 20 elementos a la vez. Pero hemos visto a algunos usuarios mostrar varios cientos de artículos a la vez.

En un mundo ideal, los sitios podrían manejar la visualización de un infinito número de elementos, pero ese no es el caso. Por lo tanto, es mejor mantener la cantidad de elementos que se muestran en el panel de control a un número razonable.

Verifica la pestaña “Opciones de pantalla” en la parte superior de Ordenes, Cupones, paginas de administracion de suscripciones y productos (básicamente cualquier página de administración que muestre una listas de cosas) y asegurate de que la opción «Número de artículos por página» esté configurada en un número apropiado para tu sitio y hosting.

2. Limpia tu base de datos:

Las bases de datos de WordPress a menudo se atascan con muchos miles de elementos que en su mayor parte, es probable que no necesites o nunca vuelvas a usar. Dependiendo de tu hosting, estos miles de elementos podrían estar causando que las consultas a la base de datos demoren más de lo necesario.

Los elementos como spam, elementos desechados, revisiones de post y transients obsoletos (cuando corresponda) se pueden limpiar de forma regular para ayudar a reducir el tamaño de tu base de datos y mejorar su velocidad.

Hay diferentes maneras de limpiar tu base de datos de WordPress, incluso con phpMyAdmin, plugins de WordPress, o simplemente usando la función de optimización de base de datos del plugin WP Rocket.

Para obtener una guía completa sobre cómo limpiar tu base de datos de WordPress, consulta el siguiente articulo.

Si estás ejecutando una gran tienda WooCommerce, vale la pena echarle un vistazo al plugin gratuito de Transients Manager de Pippin Williamson para desarrolladores.

3. Desactiva la configuración de depuración (Debugging) cuando no lo estés utilizando:

Habilitar las opciones de debug en WordPress puede tener algunos impactos en el rendimiento de su sitio WooCommerce. Entonces, si no necesitas habilitar la depuracion en tu sitio online, verifica en tu archivo wp-config.php y asegurate de que las constantes de depuración esten como se muestra a continuacion:

WP_DEBUG

y

SAVEQUERIES

tengan el valor de:

false

.

La entrada de Codex de WordPress para:

SAVEQUERIES

nos da un aviso util a la hora de efectuar esta consulta:

«Nota: Esto tendrá un impacto en el rendimiento de tu sitio, así que asegurate de desactivarlo cuando no estés depurando».

BONUS: un arma no tan secreta para el análisis de consultas de bases de datos: New Relic:

Con una plataforma abierta como WooCommerce, es imposible saber todas las consultas a las bases de datos que se ejecutan en tu sitio. La única forma sensata de diagnosticar consultas lentas es obtener datos de la aplicación de WordPress en su conjunto, incluidos todos los plugins, temas, código personalizado y WordPress en sí. Esto es exactamente lo que ofrece New Relic.

Con un poco de conocimiento y pocos clics, es posible ver todas las consultas de la base de datos que requieren más tiempo o el tiempo de consulta más lento en New Relic.

Por ejemplo, aquí hay una captura de pantalla que muestra las consultas a la base de datos ordenadas por tiempo de consulta:

Tradicionalmente, New Relic ha sido difícil de configurar para los propietarios de tiendas, ya que requiere la integración con el servidor en sí, no solo con WordPress.

Afortunadamente, esto está cambiando ya que algunos hosts administrados de WordPress ahora ofrecen esta integración.

Si estás interesado en saber más sobre el funcionamiento interno de tu sitio WooCommerce, considera implementar New Relic (en el caso de que tengas contratado un servicio de VPS). Esta aplicación te ayudará a concentrarte solucionar el problema de rendimiento lento del backend.

Si New Relic no te brinda una solucion, como se mencionó anteriormente, te recomendamos los plugins de Query Monitor o Debug Bar para ayudarte a analizar qué consultas (queries) ejecutan tus plugins cuando visitas varias páginas de tu sitio (tanto en el frontend como en el backend).

Al determinar si un plugin es menos que óptimo, citamos las siguientes señales de alerta en función de la experiencia con sitios de clientes:

  • Plugins que ejecutan queries en cada amin page en lugar de solo las suyas.
  • Plugins que cargan su código en otras admin pages, ya sea necesario o no.
  • Plugins que agregan columnas adicionales a ciertos tipos de objetos, lo que a menudo requiere queries adicionales.
  • Plugins que agregan demasiados elementos a la barra lateral de administración de WordPress.
  • Causa #3. Carga lenta de archivos:

1. Seguimiento de los tiempos de carga de archivos y tamaños de archivo:

Las herramientas de desarrollo del navegador, como Chrome Dev Tools o Firefox Developer Tools, proporcionan una forma conveniente de ver si hay archivos grandes o una cantidad excesiva de archivos cargados en una página de administración.

Por ejemplo, en la siguiente pantalla podemos ver que hay más de 1 MB de JavaScript que tarda más de 1500ms en cargarse con el plugin Yoast SEO:

Cabe destacar que estos archivos probablemente se almacenarán en caché localmente después de una carga inicial, por lo que su impacto en el rendimiento puede ser insignificante. La pestaña “Network” también te puede proporcionar información acerca de los archivos que no se almacenan en caché, lo que tendrá un gran impacto en el tiempo de carga, especialmente si son archivos grandes.

Finalmente, estas herramientas se pueden usar para ver cuántos archivos se están cargando.

Una vez que identifiques los cuellos de botella, los pasos que deberas realizar son los siguientes:

  • Deshabilita el plugin que genera el problema (y/o encuentra un reemplazo). Lo bello del ecosistema de WordPress es que tenemos muchas opciones para elegir con una gran variedad de diferentes plugins y herramientas disponibles para casi cualquier cosa que necesites.
  • Contactando al autor del plugin y haciéndole saber tus hallazgos. De esta manera, podran investigar y/o solucionar el problema. En cierto modo, estás ayudando a todos al informar problemas y/o errores!.

Mejoras de performance para WordPress:

Hay dos proyectos relacionados en desarrollo activo que nos entusiasman: tablas de productos personalizados y tablas de pedidos personalizados.

Estos plugins están actualmente disponibles para pruebas y estamos anticipando que ambos mejorarán en gran medida el rendimiento de WooCommerce, haciéndolo mucho más rápido para los propietarios de tiendas.

WooCommerce Custom Product Tables:

El equipo de WooCommerce ha estado trabajando para resolver problemas relacionados con el uso de la tabla de la base de datos postmeta de WordPress para almacenar información del producto. La solución es el plugin Custom Product Tables.

El plugin está diseñado para mejorar el rendimiento de la tienda mediante la introducción de tablas de bases de datos que están diseñadas para el comercio electrónico. Actualmente está en versión beta, pero pronto estará listo para producción.

WooCommerce introdujo recientemente los hooks y filtros necesarios para que el plugin funcione. Esto significa que los propietarios de tiendas pueden comenzar a probarlo en sitios de testing antes de su integración con el core.

El testing muestra que los checkouts estan listos para una mejora en la performance con mejoras del 30% en tiempos de carga.

WooCommerce Custom Order Tables:

El equipo de desarrolladores de woocommerce está trabajando en un plugin que introduce una tabla personalizada para almacenar toda la información de las ordenes mas comunes para WooCommerce en una única ubicación debidamente indexada.

WooCommerce generalmente crea más de 40 entradas postmeta separadas para cada pedido. Esto significa que si tu tienda recibe incluso 10 pedidos al día, ¡esto tendra como resultado 400 nuevas filas cada día!. Cuanto más grande sea la tabla de postmeta, más tiempo llevará ejecutar las consultas, lo que podría ralentizar las consultas y, a su vez, los tiempos de carga de la página.

El plugin Custom Orders Table guarda los datos del pedido en una única tabla plana optimizada para consultas de WooCommerce: un pedido significa solo una nueva fila, con un impacto mínimo en el rendimiento.

Para terminar:

Si tu backend funciona más lento que un perezoso y los consejos habituales de optimización del rendimiento no te están ayudando, podrías tener un problema con el código PHP no optimo, las consultas de la base de datos no optima o la carga lenta de archivos, o incluso los tres . Esta guía te ayudará a diagnosticar cualquier problema e implementar soluciones.

Recomendamos tambien, el uso de la herramienta de cron jobs de cPanel en lugar de WP Cron. Ya que wordpress utiliza por defecto esta ultima.

Por último, te recomiendo que consultes los plugins de WooCommerce Custom Product Tables y WooCommerce Custom Order Tables para ver qué tipo de ganancias de rendimiento obtendrás una vez que estos plugins se integren con el core.

Deja una respuesta