Cómo optimizar imágenes para acelerar tu tienda PrestaShop
¿Por qué la velocidad de tu tienda PrestaShop depende de las imágenes?
Si tienes una tienda online con PrestaShop, seguramente ya sabes que la velocidad de carga es crucial. Pero, ¿sabías que las imágenes son, con diferencia, el factor que más pesa en tu web? Un estudio reciente indica que las imágenes representan, de media, más del 60% del peso total de una página. Si no las optimizas, estarás lastrando tu velocidad PrestaShop, afectando a la experiencia de usuario y, lo más importante, a tu posicionamiento en Google.
Piensa en ello: cuando un cliente entra en tu tienda, su navegador tiene que descargar cada foto de producto, cada banner y cada miniatura. Si esas imágenes pesan 2 MB cada una, la página tardará una eternidad en cargar. El resultado es una alta tasa de rebote: el usuario se va a la competencia. Además, Google penaliza las webs lentas en su índice de búsqueda móvil. Por eso, optimizar imágenes PrestaShop no es un lujo, es una necesidad.
En este artículo, te voy a explicar, paso a paso y sin tecnicismos, cómo comprimir y configurar las imágenes para que tu tienda vuele. No necesitas ser un experto en informática; con seguir estas guías y consejos, notarás una mejora inmediata en el rendimiento PrestaShop.
1. Entendiendo el problema: ¿Qué hace que una imagen pese tanto?
Antes de lanzarnos a las soluciones, es importante entender por qué una imagen puede pesar tanto. No es solo cuestión de dimensiones (ancho y alto en píxeles), sino de la combinación de varios factores:
- Dimensiones excesivas: Subes una foto de 4000x3000 píxeles (típica de un móvil moderno) y la muestras en un espacio de 400x300 píxeles. El navegador descarga los 4000 píxeles y luego los encoge. Eso es un desperdicio enorme de recursos.
- Formato incorrecto: Usar PNG para fotografías es un error. El PNG es ideal para gráficos con transparencias, pero para fotos es muy pesado. El formato JPG es mucho más eficiente para fotografías, y el WebP es el rey del rendimiento.
- Falta de compresión: Las imágenes vienen con datos redundantes que no son visibles para el ojo humano. Comprimir una imagen elimina esos datos sin apenas pérdida de calidad visible.
- Miniaturas generadas automáticamente: PrestaShop crea múltiples tamaños de una misma imagen (miniatura, pequeño, mediano, grande) al subirla. Si no configuras estos tamaños correctamente, puedes estar generando versiones que pesan más de lo necesario.
2. Primer paso: Configurar los tamaños de imagen en PrestaShop
PrestaShop tiene un sistema de "tipos de imagen" que define las dimensiones de las miniaturas. Vamos a configurarlos para que no se generen imágenes más grandes de lo que realmente necesitas.
### 2.1. Accede a la configuración de imágenes
- Entra en el panel de administración de tu PrestaShop.
- Ve al menú Diseño y luego a Temas y logotipos.
- En la parte superior, verás la pestaña Modo avanzado. Haz clic en ella.
- Ahora, en el menú lateral, busca Diseño > Configuración de imágenes.
### 2.2. Ajusta los tamaños según tus necesidades
Verás una lista de tipos de imagen (por ejemplo, "Pequeño", "Mediano", "Grande", "Carrito", etc.). Para cada uno, se muestra el ancho, el alto y el estado (activo o no).
[INFO] La clave aquí es que el tamaño máximo que definas coincida con el tamaño real donde se muestra la imagen. Si tu producto se muestra en una cuadrícula de 236x236 píxeles, no tiene sentido generar una imagen de 500x500.
Te recomiendo estos ajustes base para una tienda estándar:
- Carrito: 100 x 100 píxeles.
- Miniatura (listado de productos): 236 x 236 píxeles.
- Pequeño (página de producto): 400 x 400 píxeles.
- Mediano (zoom o ampliación): 800 x 800 píxeles.
- Grande (solo si usas zoom): 1200 x 1200 píxeles.
[WARNING] No generes el tamaño "Grande" si no usas la función de zoom en tu plantilla. Cada tamaño que generas es una copia de la imagen que ocupa espacio en tu servidor y ralentiza el proceso de subida. Desactiva los que no necesites.
### 2.3. Regenera las miniaturas
Al cambiar estos tamaños, las imágenes antiguas seguirán con las dimensiones anteriores. Debes regenerarlas.
- En la misma página de configuración, ve al final y verás una sección llamada Regenerar miniaturas.
- Selecciona la opción Seleccionar una imagen y elige la carpeta de imágenes de productos (o "Todas las imágenes" si es la primera vez).
- Haz clic en Regenerar. Este proceso puede tardar unos minutos, dependiendo de cuántas imágenes tengas.
[INFO] Si tienes muchas imágenes, este proceso puede dar lugar a un error de tiempo de espera. Si ocurre, no te preocupes: puedes repetir la operación en lotes, seleccionando categorías o rangos de ID de producto, o aumentar el tiempo de ejecución de PHP en tu servidor (más adelante te explico cómo).
3. Segundo paso: Comprimir imágenes antes y después de subirlas
La compresión es el proceso de reducir el peso de un archivo de imagen. Existen dos tipos: con pérdida y sin pérdida. Para web, la compresión con pérdida (como la de JPG) es perfecta, ya que elimina detalles que el ojo humano no percibe.
### 3.1. Comprimir antes de subir (el método más eficaz)
La mejor práctica es comprimir las imágenes en tu ordenador antes de subirlas a PrestaShop. Así, el archivo que subes ya es ligero y no ralentiza la subida.
Herramientas gratuitas y online:
- TinyPNG.com: Es mi favorita. Comprime imágenes PNG y JPG de forma excelente, manteniendo una calidad casi idéntica. Puedes arrastrar hasta 20 imágenes a la vez.
- Squoosh.app: Una herramienta de Google, más avanzada, que te permite comparar el antes y el después y ajustar la calidad al milímetro.
- Compressor.io: Otra opción online que soporta varios formatos, incluido WebP.
Proceso recomendado:
- Exporta tus imágenes desde tu cámara o diseñador a un tamaño máximo de 1200x1200 píxeles.
- Pásalas por TinyPNG o Squoosh para comprimirlas.
- Guárdalas en una carpeta llamada "Web" y úsalas para tus productos.
### 3.2. Comprimir después de subir (para imágenes existentes)
Si ya tienes una tienda con muchas imágenes sin comprimir, no tienes que borrarlas y volver a subirlas. Puedes usar un módulo de PrestaShop que se encargue de comprimir las imágenes que ya están en el servidor.
Módulos recomendados:
- Smush (por WPMU DEV): Aunque es más conocido para WordPress, tiene una versión para PrestaShop. Comprime todas tus imágenes en lote y de forma automática.
- PrestaShop Speed Optimization: Un módulo todo-en-uno que incluye compresión de imágenes, caché y otras optimizaciones.
- Google PageSpeed Insights Module: Algunos módulos se integran con las herramientas de Google para analizar y optimizar automáticamente.
[TIP] Antes de instalar un módulo de compresión, haz una copia de seguridad de tus imágenes. Aunque estos módulos son seguros, es mejor prevenir.
4. Tercer paso: Usa el formato WebP (el futuro de la web)
El formato WebP, desarrollado por Google, ofrece una compresión superior al JPG y PNG sin perder calidad. Las imágenes WebP pesan entre un 25% y un 35% menos que las JPG equivalentes.
### 4.1. ¿Cómo lo activo en PrestaShop?
PrestaShop 1.7 y versiones posteriores tienen soporte nativo para WebP en muchas de sus plantillas oficiales. Sin embargo, si tu plantilla no lo soporta, puedes usar un módulo.
Módulos para WebP:
- WebP Converter: Busca este tipo de módulos en el marketplace de PrestaShop. Se encargan de convertir automáticamente tus imágenes JPG y PNG a WebP y de servirlas a los navegadores que las soportan (todos los modernos, excepto algunos antiguos como IE11).
- Configuración del servidor (más avanzado): Si eres más técnico, puedes configurar el servidor para que sirva las imágenes WebP mediante reglas en el archivo
.htaccess. Esto es lo más eficiente, pero requiere conocimientos de Apache o Nginx.
[INFO] No te preocupes por los navegadores antiguos. Los módulos de WebP incluyen un sistema de "fallback" (respaldo) que sirve la imagen JPG original si el navegador no soporta WebP. Así, no pierdes compatibilidad.
5. Cuarto paso: Activa la caché de imágenes en PrestaShop
La caché es un mecanismo que guarda una copia de la imagen en el navegador del usuario o en el servidor, para no tener que volver a descargarla en cada visita.
### 5.1. Caché del navegador
PrestaShop te permite configurar las cabeceras HTTP para que los navegadores guarden las imágenes en su caché local.
- Ve a Preferencias > Rendimiento.
- Busca la opción Caché de hojas de estilos y JavaScript y actívala.
- Más abajo, verás Caché de páginas. Actívala también.
- En el campo Tiempo de vida de la caché, puedes dejar el valor por defecto (7200 segundos) o aumentarlo a 86400 (24 horas) para mejorar la velocidad de las visitas recurrentes.
### 5.2. Caché de servidor (OPcache y Memcached)
Para un rendimiento PrestaShop óptimo, es fundamental tener activado el OPcache (para PHP) y, si tu hosting lo permite, Memcached o Redis para la caché de consultas a la base de datos.
¿Dónde se activa?
- OPcache: Se activa en el archivo
php.inide tu servidor. Si usas un hosting compartido, es posible que ya esté activado. Si tienes un VPS o un servidor dedicado, puedes activarlo fácilmente. Consulta la documentación de tu proveedor. - Memcached/Redis: Se activa desde el panel de control de tu hosting (como cPanel, Plesk o Syspanel, si usas este panel de control, recuerda que el puerto de acceso es el 2106).
[TIP] Si no sabes qué es OPcache, no te preocupes. En la mayoría de los hostings modernos ya viene activado por defecto. Sin embargo, si tu tienda es lenta, puedes preguntar a tu proveedor de hosting si lo tienen activo.
6. Quinto paso: Optimiza tu servidor y hosting
La optimización de imágenes es solo una parte de la ecuación. Tu velocidad PrestaShop también depende de la calidad de tu servidor. Si tu hosting es lento, da igual cuánto comprimas las imágenes, la web irá lenta.
### 6.1. Elige un buen hosting
- Hosting compartido: Es el más barato, pero también el más lento. Si tu tienda tiene poco tráfico, puede ser suficiente.
- VPS (Servidor Virtual Privado): Es una buena opción intermedia. Tienes más recursos y control, pero necesitas ciertos conocimientos técnicos.
- Servidor dedicado: Es el más potente y caro. Ideal para tiendas con mucho tráfico.
[INFO] Si tu tienda crece, no dudes en migrar a un VPS o servidor dedicado. La inversión se nota en la velocidad y en la satisfacción de tus clientes.
### 6.2. Activa la compresión GZIP en tu servidor
La compresión GZIP reduce el tamaño de los archivos que se envían desde el servidor al navegador (HTML, CSS, JavaScript, pero no imágenes, ya que estas ya están comprimidas).
¿Cómo se activa?
- Desde el panel de control (cPanel, Plesk, Syspanel): Busca la opción "Optimizar sitio web" o "Compresión GZIP".
- Desde el archivo
.htaccess: Si tu servidor usa Apache, puedes añadir estas líneas al final del archivo.htaccessde la raíz de tu tienda:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
[WARNING] Si no sabes editar el archivo .htaccess, pide ayuda a tu hosting. Un error en este archivo puede romper tu tienda.
7. Sexto paso: Activa el lazy loading (carga diferida)
El lazy loading es una técnica que impide que las imágenes se carguen hasta que el usuario se desplaza hasta ellas. Es especialmente útil para páginas de listado de productos con muchas fotos.
### 7.1. ¿Cómo lo activo en PrestaShop?
- En PrestaShop 1.7 y 8: La mayoría de las plantillas oficiales ya lo incluyen. Si no, puedes activarlo desde el archivo
theme.ymlde tu plantilla o mediante un módulo. - Con un módulo: Busca módulos de "Lazy Loading" en el marketplace. Añaden el código JavaScript necesario para que las imágenes se carguen solo cuando sean visibles.
[TIP] Si usas un módulo de caché, asegúrate de que sea compatible con el lazy loading. Algunos módulos de caché pueden romper esta funcionalidad.
8. Séptimo paso: Analiza y mide los resultados
No puedes mejorar lo que no mides. Después de aplicar todos estos cambios, es hora de comprobar si tu velocidad PrestaShop ha mejorado.
### 8.1. Herramientas de análisis
- Google PageSpeed Insights: Te da una puntuación de 0 a 100 para móvil y escritorio, y te sugiere mejoras concretas.
- GTmetrix: Te muestra un desglose detallado del tiempo de carga, el peso de la página y el número de peticiones.
- Pingdom Tools: Otra herramienta excelente que te permite analizar tu web desde diferentes ubicaciones del mundo.
### 8.2. ¿Qué debo mirar?
- Puntuación general: Busca una puntuación superior a 80 en móvil.
- Tiempo de carga: Idealmente, menos de 3 segundos.
- Peso total de la página: Cuanto más bajo, mejor. Intenta que esté por debajo de 2 MB.
9. Preguntas frecuentes (FAQ)
### 9.1. ¿Qué es mejor, JPG o PNG para una tienda online?
Para optimizar imágenes PrestaShop, usa JPG para fotografías de productos y PNG solo para imágenes con transparencias (como logotipos o iconos). Si tu navegador lo permite, el WebP es la mejor opción para ambos casos.
### 9.2. ¿Cuánto tiempo tarda en regenerar las miniaturas?
Depende del número de imágenes. Para una tienda con 1000 productos y 5 imágenes por producto (5000 imágenes), puede tardar entre 10 y 30 minutos. Si tu servidor es lento, puede tardar más. Te recomiendo hacerlo en horas de bajo tráfico.
### 9.3. ¿Los módulos de compresión de imágenes son seguros?
Sí, los módulos de buena reputación (Smush, PrestaShop Speed Optimization, etc.) son seguros. Siempre hacen una copia de seguridad de las imágenes originales antes de comprimirlas. Aun así, es recomendable hacer una copia de seguridad manual antes de instalar cualquier módulo.
