Acelerar Magento 2: guía completa de optimización
¿Quieres acelerar el plan de hosting Magento 2? Una tienda online lenta te cuesta clientes y ventas. En esta guía completa compartimos técnicas de optimización probadas con las que reducirás de forma drástica el tiempo de carga de tu tienda online Magento 2.
Magento 2 es una plataforma de comercio electrónico potente, pero la velocidad no es su punto fuerte. Sin optimización, muchas tiendas online Magento tardan entre 4 y 8 segundos en cargar, mientras que Google recomienda no superar los 2,5 segundos. En esta guía te mostramos paso a paso cómo conseguir acelerar Magento 2.
¿Por qué Magento 2 es lento?
Magento 2 es lento porque es una plataforma compleja que realiza mucho trabajo en cada carga de página. Carga cientos de archivos PHP, ejecuta decenas de consultas a la base de datos, calcula reglas de precios y genera dinámicamente la página HTML completa. Sin caché ni optimización, es una tarea pesada para cualquier servidor.
Las principales causas de una tienda online Magento lenta:
- Memoria del servidor insuficiente (menos de 2 GB de RAM)
- Caché de página completa sin activar
- Demasiadas extensiones o extensiones mal programadas
- Imágenes de producto sin optimizar
- Versión de PHP obsoleta
- Consultas lentas a la base de datos por falta de índices
- Sin CDN para los archivos estáticos
Paso 1: elige el hosting adecuado
El hosting es la base de tu rendimiento. Si tu servidor tiene muy poca memoria o potencia de procesador, ninguna optimización servirá de nada. Para Magento 2 recomendamos como mínimo un VPS con estas especificaciones:
- CPU: mínimo 2 núcleos de CPU, a ser posible 4
- RAM: mínimo 4 GB, a ser posible 8 GB
- Almacenamiento: SSD NVMe para obtener la máxima velocidad de E/S
- Servidor web: Nginx o LiteSpeed (no Apache)
- PHP: versión 8.2 con OPcache activado
En Theory7, nuestros planes VPS funcionan con almacenamiento NVMe y servidor web LiteSpeed. Consulta nuestro hosting para tienda online para ver las opciones disponibles.
Paso 2: activa la caché de página completa
La caché de página completa es la mayor mejora de rendimiento que puedes conseguir. En lugar de generar de nuevo cada página, la página HTML completa se almacena y se sirve al instante en la siguiente visita.
Caché de página completa integrada
Magento 2 incluye una caché de página completa integrada. Actívala en Stores > Configuration > Advanced > System > Full Page Cache. Configura la caché como Built-in Cache si no usas Varnish. Solo con esto puedes reducir tu tiempo de carga entre un 50 y un 70 %.
Varnish Cache para producción
Varnish es una caché HTTP dedicada que se sitúa delante de tu servidor web. Es más rápida que la caché integrada y puede atender a miles de visitantes simultáneos. Magento 2 genera automáticamente un archivo de configuración de Varnish que puedes usar al instante. Selecciona Varnish Cache en los ajustes de la caché de página completa e introduce el host del backend y el puerto.
Paso 3: configura Redis para la caché y las sesiones
Redis es una base de datos en memoria mucho más rápida que la caché basada en archivos. Usa Redis para dos fines:
- Backend de caché: acelera la obtención de la configuración, el layout y los datos de bloques. Magento ya no tiene que buscar archivos en el disco.
- Almacenamiento de sesiones: las sesiones se guardan en la memoria en lugar de en el disco o en la base de datos. Esto hace que cada carga de página sea más rápida.
Configura Redis en el archivo app/etc/env.php modificando las secciones de caché y de sesión para que usen el controlador de Redis. La mayoría de los proveedores de hosting Magento son compatibles con Redis de serie en sus planes VPS.
Paso 4: optimiza las imágenes de producto
Las imágenes de producto suelen ser los elementos más pesados de una página. Una sola foto sin optimizar puede pesar más que todo el HTML, CSS y JavaScript juntos. Optimízalas así:
- Comprime las imágenes antes de subirlas: usa herramientas como TinyPNG o ImageOptim. Una foto de producto no tiene por qué pesar 5 MB; de 100 a 300 KB es suficiente para la mayoría de las tiendas.
- Usa el formato WebP siempre que sea posible. WebP es entre un 25 y un 35 % más ligero que JPEG con una calidad comparable. Extensiones de Magento como WebP Converter pueden automatizarlo.
- Activa la carga diferida (lazy loading) para que las imágenes solo se carguen cuando entren en la parte visible de la página. Esto acelera el tiempo de carga inicial de cada página de categoría y de producto.
- Ajusta las dimensiones correctas: no subas una foto de 4000x4000 píxeles si en tu web se muestra a 400x400.
Paso 5: minimiza los archivos CSS y JavaScript
Por defecto, Magento 2 carga muchos archivos CSS y JavaScript. Reduce el número de peticiones HTTP y el tamaño total de los archivos con estos ajustes:
- Fusión de CSS y JS: ve a Stores > Configuration > Advanced > Developer > CSS/JavaScript Settings. Activa Merge y Minify tanto para CSS como para JavaScript.
- JavaScript en el pie de página: activa la opción Move JS code to the bottom of the page. Así el contenido visible se carga antes y la página se siente más rápida para los visitantes.
- Elimina los módulos que no uses: desactiva los módulos de Magento que no utilices. Cada módulo añade archivos que hay que cargar.
Paso 6: optimización de la base de datos e indexación
Con el tiempo, la base de datos de Magento crece y las consultas se vuelven más lentas. Haz un mantenimiento regular:
- Mantén los índices al día: ejecuta
bin/magento indexer:reindexcon regularidad o configura la indexación en Update by Schedule. - Elimina las sesiones y los quotes caducados: las sesiones antiguas del carrito y los quotes caducados ocupan espacio innecesario.
- Activa el catálogo plano (flat catalog) si tienes más de 1000 productos. Esto crea tablas de base de datos optimizadas para listados de productos más rápidos.
- Optimiza las tablas periódicamente: ejecuta
OPTIMIZE TABLEen las tablas más grandes para limpiar los datos fragmentados.
Paso 7: usa una CDN para los archivos estáticos
Una red de distribución de contenidos (CDN) sirve archivos estáticos como imágenes, CSS y JavaScript desde servidores cercanos a tus visitantes. Esto reduce el tiempo de carga, sobre todo para los visitantes que están lejos de tu servidor. Entre las opciones de CDN más populares para Magento están Cloudflare (hay un plan básico gratis disponible), KeyCDN y Fastly.
Configura tu CDN en Stores > Configuration > General > Web > Base URLs (Secure) e introduce la URL de la CDN para los archivos estáticos y los medios.
Paso 8: activa el modo de producción
Magento 2 tiene tres modos: default, developer y production. Asegúrate siempre de que tu tienda online en vivo funcione en modo de producción. En el modo de producción, los archivos estáticos se generan de antemano, los mensajes de error no se muestran a los visitantes y el rendimiento general es notablemente mejor que en el modo developer.
Paso 9: limita el número de extensiones
Cada extensión añade código PHP que se ejecuta en cada carga de página. Cuantas más extensiones, más lenta es tu tienda online. Elimina las extensiones que no uses activamente y elige extensiones de calidad de desarrolladores de buena reputación. Comprueba el impacto de las extensiones desactivándolas temporalmente y comparando el tiempo de carga.
Medir el resultado y ajustar
Mide tu tiempo de carga antes y después de cada paso de optimización. Usa estas herramientas para supervisar tu progreso:
- Google PageSpeed Insights: ofrece una puntuación y puntos de mejora concretos
- GTmetrix: análisis de cascada (waterfall) detallado de todas las peticiones
- Magento Profiler: perfilado integrado del rendimiento de PHP en el servidor
- Browser DevTools: la pestaña Network muestra exactamente qué archivos tardan en cargarse
Una tienda online Magento 2 bien optimizada tarda de 1 a 3 segundos en cargar. Con los pasos de esta guía y un buen hosting, debería ser factible para cualquier tienda online.
Optimización avanzada: Elasticsearch y rendimiento de la búsqueda
Magento 2.4 y versiones posteriores requieren Elasticsearch u OpenSearch para la función de búsqueda del catálogo. Un motor de búsqueda mal configurado puede ralentizar toda tu tienda online, sobre todo si tienes muchos productos. Optimiza Elasticsearch asignándole memoria suficiente (mínimo 512 MB de memoria heap), optimizando el índice con regularidad y eliminando del índice de búsqueda los campos innecesarios.
Plantéate también desactivar en la configuración de búsqueda los atributos de producto que no necesiten ser buscables. Cuantos menos datos tenga que recorrer Elasticsearch, más rápido se mostrarán los resultados a tus visitantes.
Activar HTTP/2 y HTTP/3
Los protocolos web modernos como HTTP/2 y HTTP/3 cargan las páginas notablemente más rápido que el antiguo HTTP/1.1. HTTP/2 es compatible con la multiplexación, por lo que se cargan varios archivos a la vez a través de la misma conexión. HTTP/3 va un paso más allá con el protocolo QUIC, que establece las conexiones más rápido. Comprueba si tu servidor web es compatible con estos protocolos y actívalos. En Nginx y LiteSpeed, HTTP/2 está disponible de serie.
Optimizar las tareas cron de Magento 2
Magento 2 usa tareas cron para funciones como la indexación, el envío de correo electrónico, la limpieza de sesiones caducadas y la aplicación de reglas de catálogo. Unas tareas cron mal configuradas pueden sobrecargar tu servidor y ralentizar tu tienda online. Asegúrate de que cron se ejecute cada minuto, tal como recomienda Magento, pero comprueba también que las tareas cron no se solapen ni se queden bloqueadas. Usa el comando bin/magento cron:run y vigila los errores en la tabla cron_schedule de tu base de datos.
Acelerar Magento 2 con OPcache
PHP OPcache guarda en memoria los archivos PHP compilados, de modo que no hace falta compilarlos de nuevo en cada petición. Para Magento 2, OPcache es esencial. Configura como mínimo 256 MB de memoria para OPcache y fija el número máximo de archivos en caché en al menos 100.000. Magento 2 carga cientos de archivos PHP en cada petición, así que una OPcache bien configurada supone una diferencia notable en el tiempo de carga de tu tienda online.
Acelerar Magento 2: resumen y prioridades
Si has seguido todos los pasos de esta guía, tu tienda online Magento 2 debería cargar notablemente más rápido. El mayor impacto se consigue con tres medidas: un hosting potente con memoria suficiente, caché de página completa mediante Varnish o la caché integrada, e imágenes de producto optimizadas. Solo con estos tres pasos puedes reducir a la mitad tu tiempo de carga.
Después, Redis para el almacenamiento de sesiones, la configuración de OPcache y la limitación de extensiones son las siguientes prioridades. La optimización de la base de datos y una CDN aportan los últimos puntos porcentuales de mejora. Conseguir acelerar Magento 2 es un proceso continuo: mide con regularidad, optimiza donde haga falta y mantén tu software al día. Con el hosting y la configuración adecuados, una tienda online Magento no tiene por qué ser lenta.
¿Quieres acelerar Magento 2 pero no sabes por dónde empezar? Empieza midiendo tu tiempo de carga actual, implementa después la caché de página completa y Redis, y optimiza tus imágenes. Solo con estos tres pasos tu tienda online ya será notablemente más rápida. El resto de las optimizaciones son la guinda del pastel que te ayudan a reducir aún más el tiempo de carga, por debajo de los dos segundos. Es una inversión que se amortiza al instante en mejores conversiones y clientes satisfechos.
Preguntas frecuentes sobre cómo acelerar Magento 2
¿Cuánto más rápida será mi tienda online tras la optimización?
Con los pasos de esta guía puedes reducir el tiempo de carga de tu tienda online Magento 2 entre un 50 y un 70 %. Una tienda online que ahora tarda 4 segundos en cargar puede bajar de los 2 segundos tras aplicar la caché, Redis y la optimización de imágenes.
¿Puedo acelerar Magento 2 sin conocimientos técnicos?
Los pasos básicos, como comprimir imágenes y activar la caché, puedes hacerlos tú mismo desde el panel de administración de Magento. Para las optimizaciones avanzadas, como la configuración de Varnish y el ajuste a nivel de servidor, hacen falta conocimientos técnicos. En ese caso, elige un proveedor de hosting que se encargue de estas optimizaciones por ti.
¿Qué hosting necesito para conseguir acelerar Magento 2?
Para una velocidad óptima necesitas como mínimo un VPS o un servidor dedicado con almacenamiento SSD, al menos 4 GB de RAM y PHP 8.1 o superior. El hosting compartido casi siempre se queda corto para Magento 2. En Theory7 ofrecemos hosting Magento optimizado con Varnish, Redis y OPcache configurados de serie.
Fuentes y referencias
- Google PageSpeed Insights (pagespeed.web.dev)
- Cloudflare: Learning Center (cloudflare.com/learning)
- GTmetrix: Website Performance Testing (gtmetrix.com)