Magento es la plataforma de e-commerce más utilizada por los sitios más populares de internet en todo el mundo, un 16% de los 100.000 e-commerce mas populares utilizan Magento. Esto es así, principalmente porque Magento dispone de una gran cantidad de características que lo hace muy flexible.
A veces, algunos vendedores online se encuentran con una tienda que tiene una velocidad de carga muy baja, con un rendimiento muy bajo, lo que hace que se pierdan ventas. Sin embargo, es posible que este bajo rendimiento se deba a que no se han sabido realizar los ajustes necesarios desde el panel de administración para optimizar Magento.
Por supuesto, es necesario contar con un servidor optimizado para Magento, ningún ajuste desde el panel de gestión dará a Magento la velocidad óptima si no se dispone de un hosting adecuado.
Es necesario comprobar que todo funciona correctamente después de realizar las modificaciones en el panel de administración, es posible que con alguno de estos cambios surja algún problema que impida el correcto funcionamiento de su Magento. Por ejemplo, combinar javascript puede hacer que su "Agregar al carrito" ajax no funcione de forma correcta.
Habilitar el almacenamiento en caché de Magento
Si no está habilitado el tiempo de carga por página será muy lento, esto es porque Magento realiza muchísimas consultas a la base de datos en cada carga de página. Al habilitarlo se reducen las consultas a la base de datos, a los archivos csv de traducciones o los archivos xml del layout o de la configuración, porque los objetos cacheados se guardan distintos ficheros en la carpeta "var/cache" de Magento y los obtiene directamente sin tener que reprocesarlos cada vez.
La caché de Magento se habilita desde "System > Cache Management".
Una pequeña mejora de rendimiento que se suele hacer, ya a nivel de servidor, es cambiar el tipo de sistema de lectura del disco duro para la carpeta "var/cache", para acelerar la lectura de los ficheros de caché generados. Se suele cambiar de disco a una unidad de memoria virtual llamada "tmpfs".
Habilitar "Full Page Cache" para servir páginas completas desde memoria
La caché regular de Magento descrita anteriormente guarda solo secciones de la página como datos cacheados. Cada vez que se produce una petición, se tiene que reconstruye una página desde diferentes datos cacheados. Es más rápido que el ajuste por defecto de Magento, pero no tan rápido como cachear la página completa: "Full Page Cache".
Magento Enterprise incluye una opción para almacenar en caché distintas versiones de una página, esto ahorra tiempo al no tener que juntar cada vez las piezas de de una página. La opción está en "System > Configuration > Advanced > System > Full Page Cache".
Magento Community dispone también de esta opción en las últimas versiones y además existen muchas extensiones incluso gratuitas que agregan funcionalidad para este tipo de caché. Permiten incluso definir qué sistema es el encargado de manejar esta caché entre todos los disponibles en nuestro servidor, Varnish, Zend Full Page Caché, etc.
Habilitar "Flat Catalog" para disminuir las consultas a la base de datos
Magento realiza muchas consultas a la base de datos para obtener la información de cada página que solicitamos, los atributos relacionados con categorías o productos están almacenados en tablas separadas. Al habilitar las opciones "Use Flat Catalog Category" y "Use Flat Catalog Product" todos los atributos se almacenarán en tablas únicas.
Podremos ver aumentar la velocidad de respuesta si nuestro catálogo está por encima de 1000 productos, si no es así no influirá demasiado. Algunos temas y módulos no son compatibles con "Flat Catalogs", así que se debe tener precaución a la hora de habilitarlo. Si se dispone de una gran cantidad de productos y tu Magento no es compatible con "Flat Catalogs" lo ideal sería solucionar el problema de compatibilidad. Para habilitar "Flat Catalog" hay que entrar a "System > Configuration > Catalog > Catalog > Frontend".
Habilitar la compilación de Magento
En cada carga de página Magento enlaza varios archivos php repartidos por el enorme árbol de carpetas. En una instalación base de Magento pueden haber aproximadamente 12.000 archivos a compilar, al ejecutar el proceso de compilación Magento crea una estructura de ficheros más plana dentro de la carpeta includes/src y empieza a tirar de ahí en vez de la gran maraña de carpetas. Esto puede aumentar bastante la velocidad de lectura en disco.
Para compilar hay que entrar en "System > Tools > Compilation", y hacer click en el botón de "Ejecutar proceso de compilación".
Habilitar la limpieza automática de logs
Magento guarda una gran cantidad de registros de control en base de datos y también en disco en la ruta var/log. Los registros de var/log se pueden deshabilitar, o también se pueden eliminar de forma manual, puedes realizar una copia y borrarlos para que cuando Magento escribe en ellos no pesen demasiado, esto habría que hacerlo de forma manual. Los registros que guarda en base de datos no son absolutamente necesarios, suele ser información de nuestros usuarios, sesiones abiertas, carritos abandonados, logins, urls visitadas, etc. y se puede programar una limpieza periódica de estas tablas desde el propio panel de administración sin tener que preocuparse de que la tienda online vaya a tener algún tipo de problema.
Para habilitar la limpieza de registros entra a "System > Configuration > Advanced > System > Log", esto reducirá considerablemente el tamaño de la base de datos de forma muy sencilla.
Habilitar las opciones "Merge JS" y "Merge CSS"
Una página de Magento suele carga bastantes archivos javascript y css para hacer que funcione toda la interface de usuario de forma dinámica y para dar el diseño adecuado a nuestro ecommerce. Esto significa que cuando pides que cargue la home, por ejemplo, nuestro servidor no solo recibe la petición de servir esa página, también recibe la petición de servir todos esos ficheros. Magento da la posibilidad de mezclar todos los ficheros css por un lado y los js por otro en los mínimos ficheros posibles para que nuestro servidor no reciba tantas peticiones y ahorrarle trabajo. Además de disminuir el número de peticiones, esto hará que mejore el tiempo de carga de nuestro ecommerce. No habilites estas opciones si luego no vas a hacer una pila completa de pruebas de funcionamiento, es posible que encuentres alguna incompatibilidad en algún tema o módulo instalado con esta funcionalidad. Si esto es así es muy conveniente que tu desarrollador Magento resuelva esta incompatibilidad.
Para habilitar esta función hay que entrar en "System > Configuration > Advanced > Developer".
Reindexar los datos de forma periódica
Magento genera varias tablas en base de datos en las que recopila datos relacionados o calculados para no tener que recalcularlos cada vez, por ejemplo, al guardar la categoría "Disfraces de hombre lobo" genera la url "disfraces-de-hombre-lobo.html" relacionada con la url interna de Magento "catalog/category/view/id/25". Otro ejemplo son las "Flat Category"o "Flat Product" que hemos visto antes.
Algunos índices se actualizan de forma automática cuando se producen ciertos eventos, cuando guardas un producto, por ejemplo. Normalmente si tu desarrollo Magento está bien implementado en producción debe tener programada una tarea periódica o "cron" que hará que se vayan regenerando los índices.
En ocasiones los datos de estos índices quedan obsoletos y si no tenemos el cron programado tendrás que hacerlo de forma manual, como mucho semanalmente.
Para reindexar hay que entrar a "System > Index Management".
Si no hubiese reindexación, Magento tendría que calcular el precio de cada producto al vuelo teniendo en cuenta las reglas de precios de catálogo, precio de agrupado o configurable, precios especiales, precios según cantidad (tier prices), etc. Obtener el precio de cada producto de un listado, por ejemplo, sería costoso para nuestro server.
Deshabilitar los módulos de Magento que no se utilizan
Hay veces que se prueban extensiones que luego se dejan de utilizar y luego se quedan habilitadas. Si esto es así es probable que haya partes de código que se esté ejecutando y que no está sirviendo para nada.
Se puede deshabilitar la salida visual de todas las extensiones instaladas, por ejemplo, el html que se genera en un bloque que proporciona una extensión. No se deshabilita el módulo completamente, para ello.
Esto se hace desde "System > Configuration > Advanced > Advanced", no deshabilita el módulo completamente, pero si el html generado por este.
Si tienes problemas de rendimiento y necesitas ayuda no dudes en consultar con nosotros.