Indice de Contenidos
1. Optimizaciones Generales
2. Optimizaciones Específicas para Joomla!
1. Optimizaciones Generales
Paquete del Hosting
Mucha gente compra un paquete de alojamiento compartido y espera poder correr un sitio con cientos de accesos por segundo en ese host. Hay que ser bien claros en esto, Joomla no es HTML estático. Puede servir cientos, si no miles de usuarios por segundo con páginas de HTML estático, pero Joomla requiere de bastante poder del CPU y si planea tener un sitio con más de 5 accesos por segundo, debería buscar directamente un servidor dedicado, y, con aun más accesos, debería pensar directamente en un sistema de carga balanceada (load balancing system), varios servidores y un cluster MySQL. Existe un desafío particular con esto último. Para una configuración normal, puede buscar un poco en nuestro foro, hay muchos temas contando las experiencias de los usuarios. Especialmente las experiencias con diferentes proveedores son muy interesantes.
Código HTML
Cuando crea su página, debe prestar atención a dos cosas. Primero, utilice código válido. Cuantos más errores haya en su código, más tiempo necesita un navegador para renderizarlo. Segundo, utilice menos objetos. La mayoría de las personas usa demasiadas imágenes, flash, javascript en sus sitios. Ha habido grandes logros en relación a las velocidades de conexión para muchos usuarios y las conexiones de banda ancha que exceden 1Mbit no son tan extrañas como hace unos pocos años atrás, pero la mayor parte de los usuarios aún utilizan conexiones dial-up con un módem o conexiones ISDN. Si no quiere excluir al 90% de la comunidad Web, debe mantener su sitio pequeño. Hay muchos servicios en la Web que pueden analizar su sitio, entre ellos el Analizador de Páginas Web de Websiteoptimization. Para la validación de su código HTML y Javascript, la extensión para Firefox Web Developer. Puede conseguirla aquí.
Estos detalles pueden mejorar la velocidad de su sitio drásticamente y realmente debería interesarse con estas mejoras.
Imágenes
Como mencionamos en el párrafo anterior, 'pequeño es hermoso'. Y esto se aplica también con las imágenes. Revise las imágenes en su sitio y sopese si realmente las necesita en la resolución en que las tiene. ¿Una imagen con la mitad de los dpi no se vería tan bien? En general las personas no se dan cuenta que están usando imágenes del tamaño de una gran ciudad porque configurar el tamaño en código HTML muy pero muy pequeñas y sus navegadores tienen esas imágenes en sus caches, pero los visitantes de su sitio tienen que cargar primero esa imagen gigantesca y luego reducirla al tamaño de una estampilla. Esto lleva muchísimo tiempo y no quieren esperar tanto. Por lo tanto asegúrese de que sus imágenes tienen tamaños razonables tanto en píxeles como en bytes.
Otra cosa que suele ralentizar el rendimiento son las imágenes perdidas. Si tiene una referencia a un archivo que no existe, el servidor necesitará mucho tiempo para darse cuenta y contestar con un mensaje de error 404. En algunos casos los servidores se configuran de manera de redireccionar a la página de inicio al encontrar un error 404, por lo que el navegador recibe una página completamente nueva cada vez que pide un archivo que no existe. Imagínese una página con una imagen perdida que es utilizada una docena de veces en distintos lugares del diseño. ¡Esto puede frenar la entrega de una página hasta medio minuto!
Aceleradores PHP
Si no puede pagar un servidor nuevo y está en el límite de su rendimiento, piense en comprar un acelerador de PHP. Existen muchos disponibles, como Zend o APC. Simplemente busque en nuestro foro para más información. Pueden realizar pequeñas maravillas con su rendimiento.
2. Optimizaciones específicas para Joomla!
Extensiones utilizadas
Instaló Joomla y fue encontrando todas aquellas pequeñas extensiones disponibles en extensions.joomla.org o joomlaspanish.org. Instaló muchas de ellas y piensa que su sitio se ve realmente maravilloso, aunque últimamente tiene que esperar unos cuantos segundos para que su sitio aparezca.
Una vez más este es otro ejemplo de 'pequeño es hermoso'. Joomla necesita un montón de tiempo extra para cada módulo o plugin que debe cargar. Suponemos que sabe a donde vamos con esto: Use menos extensiones y trate de sacar lo mejor de las pocas que realmente necesita.
En cuanto a esto, debería comprobar sus extensiones y verificar cuales utilizan una fuente de datos externa. Si su servidor tiene que cargar los datos desde otro servidor, procesar estos datos y entonces enviarlos, esto llevará seguramente varios segundos. Trate de encontrar otra extensión que haga lo mismo pero que guarde esos datos en su servidor. Si el otro servidor tiene una fallo o está siendo atacado (DoSed), su servidor no se verá afectado por esto, ya que está leyendo los datos de una fuente local.
Base de Datos
Hay mucho potencial descansando en la base de datos. En general le recomendamos que utilice la última versión de Joomla, ya que ha habido grandes mejoras y habrá mejoras aun mayores con la llegada de la 1.5.
Si esto no es suficiente, puede activar "query caching" en MySQL. Esto permitirá conservar muchas llamadas a la base de datos en la RAM de su servidor y lo hará rápido como una bala, pero, sea cuidadoso, va a necesitar muchísima RAM. 2 GByte no es algo raro en estos días, es más un punto de partida en este tema. ¡Esto no es para un hosting compartido!
Rastreando errores en su sitio
Otra cosa que recomendamos es activar el reporte de errores en PHP y configurarlo en el nivel más alto. Seguramente tendrá que corregir algunos errores en el código para deshacerse de todos ellos, pero estos errores también están desperdiciando parte del preciado tiempo del CPU y por lo tanto bajando el rendimiento.
Si activa el rastreo de errores en la administración de Joomla, tendrá una lista de todas las llamadas a la base de datos (queries) que están siendo ejecutadas en la portada. Si el número es demasiado alto, debería rastrearlas y ver que se puede hacer para reducir ese número.
SEF/SEO (direcciones url amigables para buscadores)
Al final, pero no por ser menos importante tenemos SEF/SEO. Esto consume mucho del poder del CPU y si tiene problemas con su servidor, debe desactivarlas como primera medida de emergencia. Debido a algunos errores en las primeras versiones de Joomla, SEF produce decenas si no cientos de llamadas a la base de datos innecesarias.
Luego de completar estos puntos debería tener a su servidor corriendo mucho más rápido que antes. Si continua teniendo problemas, por favor, públique un tema en este foro (en inglés) o en los foros de joomlaspanish e intentaremos ayudarle con su problema específico.
_________________
- Texto original: "Your Site is slow? - Read this for performance increase!", por Mambo Guru.
- Traducido por: Equipo de Traducción y Documentación de Joomla! Spanish.