Acelerar Magento: caché y optimización
Magento puede ser lento si la caché no está bien configurada. En esta guía aprenderás a optimizar Magento para conseguir la máxima velocidad.
Por qué la caché es esencial
Magento es una plataforma compleja que ejecuta muchas consultas a la base de datos y muchos cálculos. Sin caché, cada página tiene que generarse de nuevo, lo que provoca:
- Tiempos de carga lentos (5+ segundos)
- Carga elevada del servidor
- Mala experiencia de usuario
- Menor conversión
Tipos de caché de Magento
Magento tiene varios tipos de caché que puedes gestionar:
| Tipo de caché | Descripción |
|---|---|
| Configuration | Configuración de la aplicación |
| Layout | Archivos de diseño |
| Block HTML | Salida de bloques |
| Collections | Datos de colecciones |
| Reflection | Información de la API |
| Database DDL | Esquema de la base de datos |
| EAV | Atributos de entidades |
| Page Cache | Caché de página completa |
| Translations | Traducciones |
Gestionar la caché
- Ve a System > Cache Management
- Aquí puedes:
- Activar o desactivar tipos de caché individuales
- Hacer flush de la caché (vaciarla)
- Invalidar la caché
Gestionar la caché por SSH
Por la línea de comandos es más rápido. Ejecuta estos comandos en la carpeta de Magento:
# ver el estado de todos los tipos de caché
bin/magento cache:status
# activar todos los tipos de caché
bin/magento cache:enable
# limpiar solo tipos de caché concretos
bin/magento cache:clean config layout
# vaciar toda la caché
bin/magento cache:flush
Full Page Cache (FPC)
Full Page Cache almacena páginas completas y es la mejora de rendimiento más importante.
Activar FPC
- Ve a Stores > Configuration > Advanced > System
- En Full Page Cache:
- Caching Application: Built-in Cache
- TTL for public content: 86400
- Haz clic en Save Config
FPC para páginas concretas
No todas las páginas se pueden almacenar en caché:
- Sí se almacenan en caché: página de inicio, páginas de categoría, páginas de producto
- No se almacenan en caché: carrito, checkout, páginas de cuenta
Varnish Cache
Para obtener el máximo rendimiento se recomienda Varnish:
Ventajas de Varnish
- Páginas hasta 300x más rápidas
- Menor carga del servidor
- Mejor escalabilidad
Configurar Varnish
- Ve a Stores > Configuration > Advanced > System
- En Full Page Cache:
- Caching Application: Varnish Cache
- Exporta la configuración VCL de Varnish
- Pide al equipo de soporte que active Varnish
LiteSpeed Cache
En los servidores de Theory7 está disponible LiteSpeed, que ofrece una caché excelente.
Instalar el módulo de LiteSpeed
composer require litespeed/module-litemage
bin/magento module:enable Litespeed_Litemage
bin/magento setup:upgrade
Configuración
- Ve a Stores > Configuration > LiteMage > Configuration
- Enable LiteMage: Yes
- Configura el TTL de la caché y las exclusiones
Consulta también: Configurar Magento y LiteSpeed Cache
Redis Cache
Redis mejora de forma notable la caché del backend.
Redis como backend de caché
En app/etc/env.php, de esta forma:
'cache' => [
'frontend' => [
'default' => [
'backend' => 'Magento\\Framework\\Cache\\Backend\\Redis',
'backend_options' => [
'server' => '127.0.0.1',
'port' => '6379',
'database' => '0'
]
]
]
]
Redis para las sesiones
'session' => [
'save' => 'redis',
'redis' => [
'host' => '127.0.0.1',
'port' => '6379',
'database' => '2'
]
]
Optimizaciones de rendimiento
Agrupar JavaScript y CSS
- Ve a Stores > Configuration > Advanced > Developer
- En JavaScript Settings:
- Merge JavaScript Files: Yes
- Minify JavaScript Files: Yes
- Enable JavaScript Bundling: Yes (solo en producción)
- En CSS Settings:
- Merge CSS Files: Yes
- Minify CSS Files: Yes
Optimizar las imágenes
- Usa el formato WebP siempre que sea posible
- Configura correctamente el redimensionamiento de imágenes
- Usa la carga diferida (lazy loading) para las imágenes
- Implementa una CDN para los archivos multimedia
Flat Catalog
Para catálogos con 1000+ productos:
- Ve a Stores > Configuration > Catalog > Catalog
- En Storefront:
- Use Flat Catalog Category: Yes
- Use Flat Catalog Product: Yes
- Vuelve a indexar después de activarlo
Modo de producción
Magento debe funcionar en modo de producción:
bin/magento deploy:mode:set production
bin/magento setup:static-content:deploy nl_NL
bin/magento cache:clean
bin/magento cache:flush
Comprobar el modo
bin/magento deploy:mode:show
En modo de producción, los archivos estáticos se generan por adelantado y los visitantes no ven mensajes de error (solo aparecen en los registros). Después de modificar tu tema o tus extensiones, vuelve a desplegar el contenido estático:
bin/magento setup:static-content:deploy nl_NL en_US
Después de instalar o actualizar extensiones, ejecuta primero bin/magento setup:di:compile. En modo developer o default, añade -f al despliegue para forzarlo.
Indexadores
Los indexadores convierten los datos de producto, los precios y las categorías en tablas de consulta rápida. Ponlos en modo schedule para que se actualicen en segundo plano mediante cron en lugar de cada vez que guardas:
bin/magento indexer:set-mode schedule
Ver el estado y volver a indexar manualmente:
bin/magento indexer:status
bin/magento indexer:reindex
Configuración de cron
Magento necesita cron para el calentamiento de la caché y la indexación:
* * * * * /usr/bin/php /pad/naar/magento/bin/magento cron:run
Probar el rendimiento
Herramientas
- Google PageSpeed Insights: puntuación general de rendimiento
- GTmetrix: análisis detallado
- WebPageTest: análisis en cascada
- New Relic: monitorización del lado del servidor
Objetivos de referencia
- TTFB (Time To First Byte): < 200 ms
- First Contentful Paint: < 1,5 s
- Largest Contentful Paint: < 2,5 s
Lista de comprobación de rendimiento
- Modo de producción activado
- Full Page Cache activa
- Contenido estático desplegado
- Indexadores en modo schedule
- Cron de Magento ejecutándose cada minuto
- LiteSpeed Cache configurada
- PHP OPcache activado
A 0 de 0 personas les ha resultado útil