Optimización y aceleración de WordPress (1/2)

YSlow TortuleCuando navego por internet, hay una característica muy importante que hace que aumente mi satisfacción o mi cabreo: la velocidad con la que navego. Para ello hay muchos factores: el proveedor que tengamos contrato para internet, el ordenador que utilizemos, si hay más programas cogiendo ancho de banda, el navegador, la página solicitada, la empresa de hosting de la página solicitada, … No podemos controlarlos a todos, pero podemos intentar mejor algunos factores de los mencionados.

Y para el propietario de un blog es importante que su sitio web cargue lo más rápido posible: para que él trabaje más cómodo (por ejemplo, en el panel de administración), para la satisfacción de las visitas, para los cálculos de los buscadores, … Intentado conseguir este objetivo de rendimiento, he estado haciendo pruebas con unos plugins para WordPress 2.8.4 que me han sorprendido. De la puntuación sobre 100 que se puede obtener, al principio tenía un 62, y al final conseguí un 98; un salto cuantitativo y sobretodo cualitativo. Así que voy a hacer una serie de dos entradas explicándolo.

Primero quiero hablar de las herramientas que he utilizado para medir los cambios que se vayan a producir, y así calcular las mejoras conseguidas. Son dos plugins para Firefox que requieren Firebug instalado:

  • YSlow: de la mano de Yahoo, este plugin realiza un análisis de la página web cargada y hace unas sugerencias de como mejorarla. YSlow tiene hasta 34 reglas agrupadas en 7 etiquetas, y en su última versión (la 2.0) se puede escoger entre tres grupos de reglas según el perfil del sitio web que se quiere analizar. Para el test, solamente se ha utilizado el perfil YSlow(V2) que contiene 22 reglas de las 34. Existe una página de YSlow en castellano, para poder entender mejor las reglas, y os dejo esta presentación sobre YSlow:
  • Page Speed: de la mano de Google, con el mismo objetivo que YSlow. Este tiene una serie de ‘buenas prácticas‘ con las que informar de la carga de la página web.

De estas herramientas se pueden extraer varios datos, pero como información para hacer la comparativa nos quedaremos con el tiempo total de descarga de la página web, lo que ocupan los archivos y una puntuación sobre 100 según el cumplimiento de las reglas.

A parte de los plugins, hay dos modificaciones que las realizé manualmente. Las dos las ví en el blog Lee.org:

  • La primera es tan simple como añadir la siguiente línea en el archivo header.php, antes de cerrar el tag </head>, consiguiendo vaciar el buffer cuando se tiene todo el <head> hecho y así mandar antes las peticiones al navegador:
  • <?php flush(); ?>
  • La segunda trata de modificar el archivo .htaccess para añadir la cabecera de expiración a una serie de archivos, de manera que durante un mes no se vuelvan a solicitar los archivos ya descargados. Le añadí un par de líneas para los archivos .ICO (del favicon) y javascript:
    ExpiresActive On
    ExpiresByType text/html "access plus 1 week"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType application/x-javascript "access plus 1 month"
    ExpiresByType application/x-Shockwave-Flash "access plus 1 month"
     
    ExpiresByType image/x-icon "access plus 1 month"
    ExpiresByType text/javascript "access plus 1 month"

En la siguiente entrada enumeraré los plugins que utilizé para obtener la optimización mencionada.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>