Skip to main content
Magento - Mejorar Rendimiento un 75%

Cómo mejorar el rendimiento de una plataforma Magento #ecommerce hasta un 75%

No es fácil seleccionar la plataforma ecommerce que se adapta mejor a las necesidades de nuestro negocio online y, sobre todo, una vez la seleccionemos, saber cómo puedo sacarle el máximo partido para aumentar las conversiones de venta y obtener una mayor rentabilidad.

¿Cuáles son las plataformas líderes en el mundo ecommerce?

Si estas definiendo la arquitectura empresarial de tu organización y necesitas una solución de comercio electrónico, una de las primeras cuestiones que nos planteamos es analizar si existen soluciones open source de calidad.

En este punto, Magento se ha convertido en la mejor solución de código abierto en el mundo ecommerce para proyectos de gran envergadura, y sin embargo, podría convertirse en nuestra peor pesadilla, en caso de no llevar a cabo una implantación sumamente cuidadosa. Su peso considerable, es uno de sus puntos débiles que podría derivar en una pérdida de visitantes y dinero si no se han instalado y optimizado correctamente los elementos de la plataforma.

Magento - Cuadrante

¿Cuál es la versión de Magento que se adapta mejor a tus necesidades?

El pago obligado de la cuota de suscripción en la edición Magento Enterprise, puede tornarse en un rápido retorno de la inversión, porque sus mejoras en módulos y funciones (por ejemplo, segmentación de clientes con ofertas específicas, software de call center, etc.) implican una mayor optimización de la tienda, usabilidad, user experience y, en suma, el aumento de la tasa de conversión  de ventas, que al final se traduce en mayor número de ingresos. Los factores de rendimiento y la seguridad también son claves a la hora de tomar una decisión de este tipo.

En cualquier caso, recuerda que Magento es complejo y pesado, de difícil aprendizaje, por requiere de perfiles específicos  y cualquier personalización en la versión Community (que es posible que ya exista en la versión Enterprise), tendrá un elevado coste.

Marcas mundiales como Nestle Nespresso, Nike, Olympus, Lenovo, Ford y Samsung, utilizan Magento EE.

¿Qué aspectos de optimización son críticos con Magento?

Magento es una plataforma ecommerce en auge que, independientemente de su versión, sufre cuando no se realiza una optimización de configuración a nivel de infraestrucutra.

Realizando una instalación con caché a varios niveles, es posible disminuir el tiempo de respuesta hasta un 75% sobre el tiempo de una instalación estándar de Magento.

Si queremos tener una buena tienda online, es fundamental que la velocidad de respuesta y carga de página sean inferiores a 2 segundos y, lo más importante, que el tiempo de respuesta del primer byte (TTFB), sea inferior a 200 ms.

Magento - Aspectos de Optimización CríticosA continuación se describen los 8 componentes de optimización principales en una infraestructura Magento:

  1. Servidor Web Apache en su versión 2.x, en adelante Apache.
  2. Módulo PHP en su versión 5.5 o superior con las extensiones requeridas y acelerador PHP Zend Opcache.
  3. Magento EE 1.14.1 o Magento CE 1.9.1 con un proceso post-instalación de optimización.
  4. Sistema operativo GNU/Linux x86-64 (versión de 64 bits).
  5. Bases de datos MySQL en su versión 5.6.
  6. Sistema de cache distribuida Memcached.
  7. Proxy inverso con servidor web Nginx.
  8. Varnish como caché de proxy HTTP inversa.

Optimización de Apache

Apache necesita algunos parámetros de configuración concretos para el correcto funcionamiento de Magento. Se debe configurar la re-escritura de enlaces (con el módulo mod_rewrite), para conseguir URLs amigables y acelerar las búsquedas en la plataforma Magento.

Desde el punto de vista de la optimización, lo más importante es configurar correctamente las conexiones persistentes (con la opción KeepAlive y módulo header) en función del tamaño de memoria que se tenga, permitiendo reutilizar conexiones con peticiones de forma concurrente. Además, la compresión de ficheros (con módulo deflate), es necesaria, ya que Magento genera alto volumen de datos.

Del mismo modo, usar una estrategia de caché a nivel del navegador web (con módulo mod_expires) es fundamental para que el primer acceso a la tienda online, descargue todos los recursos estáticos (js, css, imágenes, etc.) y los almacene en el navegador, evitando hacer peticiones innecesarias.

También habrá que usar y configurar el worker MPM Prefork de Apache para gestionar los procesos que podrá abrir el número de peticiones que podrá responder, y por tanto, la cantidad de recursos que podrá consumir.

Como con el resto de componentes de la infraestructura, para reducir las lecturas y escrituras a disco, desactivaremos los logs.

Optimización con un acelerador PHP

El objetivo de un acelerador PHP es almacenar en caché scripts PHP compilados en bytecode para evitar la sobrecarga de análisis y compilación del código fuente en cada solicitud.

A raíz de las pruebas de rendimiento sobre Magento usando otros aceleradores PHP como Xcache y APC, vemos que el acelerador PHP Zend Opcache obtiene mejores resultados y está integrado en el módulo PHP desde su versión 5.5 (módulo Opcache). Es necesario ajustar los parámetros de configuración del acelerador PHP deberán ser ajustados definiendo el consumo de memoria, el número de ficheros a guardar en caché, etc.

Optimización de Magento

La instalación de Magento por defecto, requiere de una personalización posterior para mejorar su rendimiento. Algunas de estas opciones son:

  • Activación de la caché. Magento integra un sistema de caché para ofrecer los archivos más rápidamente.
  • Unificación de archivos JavaScript y CSS. Magento cuenta con una cantidad de ficheros JavaScript y CSS (más de 40), que tendrá que comprimir para su funcionamiento.
  • Compactar Base de Datos. Magento crea una base de datos donde la información de los productos y las categorías está dispersa en multitud de tablas. Ésto provoca que las lecturas y escrituras de éstas sean lentas, ya que debe unir esa información disgregada.
  • Desactivar los logs de Magento, evitando escrituras en disco.

Optimización desde GNU/Linux (creación de RAM Disk)

Para mejorar considerablemente el uso de la caché de Magento, que usa como persistencia un directorio del sistema de ficheros, recomendamos montar el directorio de caché en una RAM Disk, sobre el sistema GNU/Linux, para que la lecturas sean más rápidas.

Optimización de MySQL

Aunque en el mercado hay otros servidores de Bases de Datos mejor considerados, MySQL, con motor de almacenamiento InnoDB, ha demostrado un buen rendimiento cuando se trata de atender peticiones ligeras pero constantes y concurrentes.

Algunos aspectos de optimización son:

  • Aumentamos el número de conexiones máximas, puesto que disponemos de los suficientes recursos en nuestro servidor.
  • Activamos la cache de consultas.
  • Aumentamos la memoria que usará la cache de consultas.
  • La memoria que podrá ocupar cada consulta en dicha cache (hay que mantener la relación con el tamaño de la cache).
  • Cantidad máxima de tablas que se mantendrán en cache para ser consultadas.
  • Cuantos hilos se guardarán en cache para usarlos en nuevas conexiones.
  • Desactivar logs para consultas lentas y logs de error, una vez han sido analizados.

Optimización con Memcached

Memcached es un sistema distribuido de propósito general para cache, basado en memoria, de forma que podemos definir un pool de memoria, que puede estar en otro servidor, donde se almacenen las operaciones realizadas por Magento y las variables de sesión.

Optimización con Nginx como proxy inverso

Nginx, es un motor alternativo a Apache, que recomendamos configurar de forma complementaria con Magento, para servir contenido estático (imágenes, documentos…) y que comprima todos los contenidos, ya que lo hace mucho más rápido que Apache. Por tanto Nginx, actuará como proxy inverso de Apache, sirviendo el contenido estático y pasando las peticiones de páginas dinámicas para Apache.

Se recomienda configurar Nginx de esta forma, o bien usar un CDN como puede ser Amazon CloudFront o CloudFlare.

Integrar CloudFront o CloudFlare con la solución Amazon S3 puede ser una buena opción, ya que se reduce el número de peticiones procesadas por el servidor Apache, de forma que se balancearía el contenido estático con Amazon S3 y, si además creamos subdominios para el mismo, podemos hacer que se envíe sin cookies.

Desde el punto de vista de la optimización, un aspecto importante es activar la compresión de ficheros para reducir el volumen de tráfico que se generará para cada petición, y  desactivar el nivel de logs.

No es posible sacar el máximo partido a Nginx por el funcionamiento interno de Magento, el cual genera los documentos HTML de forma dinámica, salvo excepciones. Por ello, Nginx no puede encargarse de servir dichos documentos tan a menudo como sería deseable.

Optimización con Varnish

Varnish intentará atender las peticiones de los clientes desde la caché, que estableceremos en la memoria volátil, en lugar de en el disco duro, ocupando el máximo de memoria que se defina.

Hay que tener en cuenta que Varnish no sirve contenido que contenga cookies debido a que puede transportar información sensible. Magento es una plataforma ecommerce que hace uso de las cookies, por lo que Varnish no podrá servir aquellos contenidos que hagan uso de las mismas.

Con las optimizaciones recomendadas en este artículo se conseguirá reducir el tiempo de carga notablemente y mejoramos la experiencia de usuario.

Magento carga en menos de 2 seg

magento el primer byte es menor 200 msMuchos de los aspectos que se recomiendan en el artículo “El arte de explotar portales de alto rendimiento con Liferay” son también importantes en el ámbito de un proyecto ecommerce, por lo que te recomiendo la lectura del mismo 😉

Y por último recuerda que según un estudio de Amazon, cada 100ms de retraso en el tiempo de carga de tu negocio online, causas un 1% de pérdidas en ventas 🙁

Gfi cuenta con profesionales que te acompañaran en el análisis, diseño e implantación de una estrategia ecommerce de éxito.

Magento Solution Partner

“Magento se complace por contar con Gfi como uno de los principales partners en soluciones de negocio”, afirma Garren Burris, Head of Worldwide Channel Sales & Alliances en eBay
 
 
Jesús Pérez Franco

Jesús Pérez Franco

Gerente de Operaciones en gfi.es con más de 17 años de experiencia en el sector, con perfil tecnológico mixto combinando conocimientos técnicos, negocio y de gestión. Seguidor de las tendencias #devops #agile #lean #cloud #aws #bigdata #iot #ecommerce

Jesús Pérez Franco ha escrito 3 entradas


Jesús Pérez Franco

Jesús Pérez Franco

Gerente de Operaciones en gfi.es con más de 17 años de experiencia en el sector, con perfil tecnológico mixto combinando conocimientos técnicos, negocio y de gestión. Seguidor de las tendencias #devops #agile #lean #cloud #aws #bigdata #iot #ecommerce

3 comentarios en “Cómo mejorar el rendimiento de una plataforma Magento #ecommerce hasta un 75%

  1. Buenos días, recientemente hemos aplicado cambios en nuestra web vgsalud.com y según pageSpeed de en gtmetrix conseguimos una puntuación de A(90%). ¿Se notaria mucho si aplicásemos Varnish o similar?? ¿Merece la pena implantarlo para mejorar el posicionamiento?

    1. Hola Javier, teniendo una puntuación del 90% le estamos diciendo a Google que la optimización onpage de nuestra web sigue las pautas y recomendaciones para motores de búsqueda, pero además debemos analizar con más detalle el tiempo de respuesta de nuestra web en nuestras principales páginas de aterrizaje y además el tiempo de respuesta del primer byte, que en vuestro caso he comprado que es alto (> 1.5s). En este punto, incluir elementos de cache mejoraría notablemente el rendimiento de vuestra sitio y varnish por ejemplo trabaja en ese sentido, junto con otras técnicas basadas en el uso de una ramdisk, memcached, etc.

      Un saludo,
      Jesús P.

Deja un comentario

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