Un sitio que tarda más de 3 segundos en cargar pierde el 53% de sus visitantes antes de mostrar una sola línea de contenido. Si estás en Joomla y notás que tarda, este artículo es para vos.
Cuando un cliente me llama diciendo "mi sitio Joomla anda lento", lo primero que hago es medir. No asumir, no adivinar: medir. Porque las causas pueden ser muy distintas y la solución incorrecta no solo no ayuda — a veces empeora las cosas.
¿Cómo sabés si realmente tenés un problema?
El primer paso es diagnosticar con herramientas concretas antes de tocar nada. Las que uso habitualmente:
- Google PageSpeed Insights — te da las Core Web Vitals reales, tanto en mobile como desktop.
- GTmetrix — muestra el waterfall de carga, qué recurso bloquea qué y tiempos detallados.
- WebPageTest — ideal para simular distintas ubicaciones geográficas y tipos de conexión.
- Network en Chrome DevTools — para ver exactamente qué se descarga y cuánto pesa cada recurso.
Con ese diagnóstico en mano, el 90% de los problemas en Joomla caen en alguna de estas categorías: caché desactivada, imágenes sin optimizar, demasiados artículos por página, ausencia de CDN, extensiones mal desarrolladas o hosting subdimensionado.
1. Activar la caché de Joomla
Es lo primero que reviso y, sorprendentemente, uno de los errores más frecuentes: muchos sitios en producción tienen la caché desactivada. En Joomla se configura en Sistema → Configuración Global → Sistema → Caché. El tipo Conservadora es el punto de partida seguro para la mayoría de los sitios.
Importante: si tu sitio usa sesiones de usuario (membresías, formularios, carritos), configurá bien las exclusiones para evitar que la caché sirva contenido incorrecto a usuarios logueados.
2. Cloudflare como CDN y proxy
Cloudflare es gratuito en su plan base y hace una diferencia enorme, especialmente para sitios con visitantes de distintos países. Lo que hace por vos de forma automática:
- Sirve archivos estáticos (JS, CSS, imágenes) desde servidores cercanos al visitante.
- Comprime automáticamente HTML, CSS y JS con Brotli o Gzip.
- Bloquea bots y ataques DDoS básicos.
- Habilita HTTP/2 y HTTP/3 sin configuración adicional.
- Permite cachear páginas enteras con sus reglas de Cache Rules.
En un caso reciente, solo con configurar Cloudflare correctamente y ajustar las reglas de caché para páginas de contenido estático, el tiempo de carga bajó drásticamente sin tocar una línea de código del sitio.
3. Reducir artículos por página
Esto parece trivial pero tiene un impacto real. Cada artículo en un listado implica consultas a la base de datos, carga de imágenes y rendering de HTML. Si tu portada o blog muestra 20, 30 o 50 artículos, estás forzando al servidor a hacer mucho trabajo innecesario para la mayoría de los usuarios que no bajan del primer scroll.
La regla práctica que aplico: entre 6 y 12 artículos por página es suficiente para casi cualquier caso. Si el contenido es largo (artículos completos), menos. Si son cards compactas, podés subir un poco más.
4. Optimización de imágenes
Las imágenes son habitualmente el 60–80% del peso total de una página. En Joomla hay varias capas donde actuar:
- Convertir a WebP: pesa entre un 25% y 35% menos que JPG con la misma calidad visual. Joomla 4+ tiene soporte nativo. También podés usar Cloudflare Polish para convertirlas automáticamente.
- Dimensionar correctamente: una imagen de 3000px subida para mostrarse en un card de 400px es uno de los errores más costosos. Redimensioná antes de subir.
- Lazy loading: Joomla 4+ lo activa por defecto en el contenido, pero verificá que las extensiones de galería y sliders también lo respeten.
- Precargar la imagen principal (LCP): la imagen más grande visible en pantalla (hero, banner) debería tener
loading="eager" y un hint de preload en el head para mejorar el LCP directamente.
5. Revisar extensiones instaladas
Una extensión mal desarrollada puede arruinar toda la optimización que hayas hecho. Los síntomas más comunes: extensiones que cargan su propia copia de jQuery aunque Joomla ya la incluya, plugins que ejecutan queries pesadas en cada carga de página, o módulos que llaman a APIs externas de forma síncrona bloqueando el render.
El diagnóstico requiere habilitar el Debug System de Joomla y revisar el perfil de queries. Si una sola extensión genera 50+ queries por carga de página, es candidata a revisión o reemplazo.
El orden correcto de las optimizaciones
Uno de los errores más comunes es optimizar en el orden equivocado y no ver resultados. El orden que sigo:
- Medir primero con PageSpeed y GTmetrix para identificar los cuellos de botella reales.
- Imágenes — el mayor impacto con el menor riesgo.
- Caché — activarla correctamente con las exclusiones necesarias.
- CDN — Cloudflare o equivalente para activos estáticos.
- Contenido — reducir artículos por página, paginación, lazy load.
- Extensiones y código — el más técnico, requiere diagnóstico profundo.
- Hosting — último recurso, solo si todo lo anterior no alcanza.
En la mayoría de los casos, los primeros cuatro puntos son suficientes para llevar un sitio de "inaceptable" a "bien posicionado" en Core Web Vitals. El hosting es frecuentemente el chivo expiatorio cuando el problema real está en la configuración.
Caso real
Un cliente tenía su sitio Joomla cargando en más de 6 segundos en mobile. Con la combinación de activar caché en Joomla, configurar Cloudflare con reglas de caché para páginas de contenido, optimizar imágenes a WebP y reducir los artículos listados en la portada de 20 a 8, bajamos el LCP a menos de 2 segundos. Sin cambiar de hosting ni reescribir ninguna extensión.
¿Tu sitio Joomla está lento?
Puedo hacer un diagnóstico completo e implementar las correcciones necesarias. Sin rodeos, con resultados medibles.