Cuando una web Joomla empieza a responder despacio, es fácil sospechar del hosting, instalar una extensión de caché o empezar a desactivar módulos a ciegas.
Pero ¿y si el problema está en una consulta SQL que se ejecuta demasiadas veces?
Joomla 5 y Joomla 6 incluyen herramientas de depuración que permiten analizar el tiempo de ejecución, el consumo de memoria y las consultas a la base de datos. Con el plugin System - Debug puedes investigar muchos problemas sin instalar extensiones adicionales.
En esta guía veremos cómo activar la depuración con seguridad y qué información revisar para encontrar posibles cuellos de botella.
Cómo activar Debug en Joomla
Para utilizar la consola de depuración, debes activar la opción de depuración del sistema y comprobar que el plugin System - Debug está habilitado.
- Accede a la administración de Joomla.
- Abre la Configuración global y busca la opción Debug System, dentro de los ajustes del sistema.
- Activa la opción de depuración.
- Entra en la gestión de plugins y busca System - Debug.
- Comprueba que está habilitado y revisa sus opciones.
Los nombres y la ubicación de algunos ajustes pueden variar según la versión y el idioma de la instalación.
¿Es seguro activar Debug en producción?
Debes hacerlo con precaución. La consola puede mostrar consultas SQL, rutas internas y otros detalles que no conviene exponer a los visitantes.
El plugin incluye la opción Allowed Groups, que permite restringir la visualización de la consola a determinados grupos de usuarios. Esto no equivale a limitar el acceso por dirección IP.
Siempre que sea posible, realiza las pruebas en un entorno de desarrollo o preproducción. Si necesitas depurar una web en producción, restringe el acceso a usuarios autorizados y desactiva la depuración cuando termines.
Qué información muestra la consola
Tiempo de ejecución
La información de perfilado permite examinar cuánto tarda Joomla en procesar una petición y qué etapas pueden estar consumiendo más tiempo. Si una página responde despacio, comprueba si las consultas SQL contribuyen al problema o si hay otros procesos implicados.
El tiempo de generación de la página no equivale necesariamente al tiempo total que percibe el usuario. La red, las imágenes y JavaScript también influyen.
Consumo de memoria
Este dato ayuda a detectar páginas que necesitan muchos recursos. Compara páginas similares y repite las mediciones en condiciones parecidas. Un consumo elevado puede estar relacionado con el volumen de datos procesados, una extensión o código personalizado.
Consultas SQL
La consola permite revisar las consultas ejecutadas durante una petición y, según la información disponible, sus tiempos y repeticiones. Estos datos son útiles para investigar operaciones costosas o innecesarias.
Cómo detectar consultas lentas y duplicadas
Si una página tarda varios segundos en generarse, revisa las consultas SQL asociadas a esa petición. Presta atención a tres señales:
- Consultas que consumen una parte importante del tiempo registrado.
- Sentencias similares que se repiten muchas veces.
- Consultas que recuperan más información de la necesaria.
Si encuentras una consulta lenta, repite la medición antes de modificar el código. Una única prueba no siempre representa el comportamiento habitual.
Los tiempos registrados por Joomla tampoco sustituyen a un análisis específico de MySQL o MariaDB. Para investigar índices, bloqueos o planes de ejecución, quizá necesites herramientas adicionales.
Ejemplo: una consulta por cada producto
Imagina que una extensión muestra 100 productos y ejecuta otra consulta para recuperar el fabricante de cada uno. El resultado puede ser una consulta inicial y otras 100 consultas adicionales.
Este patrón se conoce como N+1. Con pocos productos puede pasar inadvertido, pero el coste aumenta cuando crece la lista.
Para investigarlo, busca consultas similares que se repitan durante la misma petición e identifica qué componente, módulo o extensión las genera. Una posible solución sería recuperar los fabricantes en una consulta conjunta, aunque dependerá de cómo esté programada la extensión.
¿Y si las consultas son duplicadas?
Dos módulos pueden solicitar por separado la misma información. Si los datos son equivalentes y pueden reutilizarse de forma segura, quizá sea posible evitar lecturas repetidas.
Antes de cambiar el código, comprueba que compartir esos resultados no provoca problemas de permisos, idioma o caché. Una consulta repetida no es necesariamente innecesaria.
Qué hacer después de encontrar el problema
- Reproduce el problema. Utiliza la misma página y unas condiciones de prueba similares.
- Localiza el origen. Identifica el componente, módulo o extensión implicados.
- Aplica un cambio cada vez. Puede ser necesario revisar una consulta, recuperar menos datos o añadir un índice adecuado.
- Mide el resultado. Compara el tiempo de generación, el número de consultas y el consumo de memoria antes y después.
No todas las consultas lentas se solucionan de la misma forma. Añadir índices puede ayudar en determinados casos, pero también hay que revisar cómo se construye la consulta y qué datos necesita recuperar.
Si las consultas no explican toda la lentitud, revisa otros factores, como la caché, la configuración de PHP o los recursos del servidor.
Buenas prácticas al depurar Joomla
- Realiza las primeras pruebas en desarrollo o preproducción.
- Restringe la consola a usuarios autorizados.
- Desactiva Debug cuando termines de investigar.
- Evita compartir capturas que contengan información sensible.
- Comprueba que los cambios no alteran el funcionamiento de la web.
El sistema de depuración de Joomla permite investigar problemas de rendimiento sin instalar otra extensión de análisis.
La consola ayuda a revisar el tiempo de ejecución, el consumo de memoria y las consultas SQL para encontrar operaciones costosas, duplicadas o patrones N+1.
La clave está en medir antes de modificar y comprobar después si el cambio ha mejorado el resultado.
Antes de cambiar de hosting, averigua qué está haciendo realmente tu Joomla.
