Acelerar WordPress x4 y reducir el ancho de banda necesaio

fast speed WordPress
Navegando por la red, me llegue al blog de Brad Ney y como últimamente me preocupa algo el tema de la velocidad de carga de las paginas del blog, ya que sol algo pesadas, me puse a investigar la manera de acelerarlas por medio de compresión.
La compresión es un método que logra que la pagina HTML que tu recibes, no sea directamente el texto HTML, si no que se comprima en el servidor (como si fuera un ZIP) y esto es lo que se envía por la red. Una vez en tu ordenador, tu navegador la descomprime y la obtiene en HTML como debe de ser, para luego interpretarla como normalmente.
Al inicio del Blog, no había nada instalado ni configurado, así que las paginas se generaban dinamicamente y se transmitían tal cual. Como no había muchas paginas, la implementación era sencilla y tampoco había muchas visitas, no había mayor problema.
Pero con el tiempo crece todo, el numero de paginas, las visitas y el tamaño de las paginas, cono lo que la primera solución fue implementar el plugin WP-Super-Cache que soluciono bastante el tema de los accesos de PHP a la base de datos (unas 40 por cada pagina servida) y la velocidad de liberación de las paginas, ya que se generan y se guardan en su propia cache interna.
Con ello, una pagina paso de servirse en 10-12 segundos a servirse en 3-4 segundos.
Esto es perfecto para la visualización de las paginas en la web, según estamos acostumbrados en Europa o en EEUU (Velocidades de ADSL de 1,2,4… Megas), pero es insuficiente para algunos países con infraestructura menos desarrollada como en Latinoamerica o en sistemas móviles (Wifi en autobuses) o en redes municipales, donde es muy común tener una velocidad de bajada de 256 Kb como máximo y muchas veces compartida.
Como el tiempo de carga de una pagina web es uno de los factores de éxito y de usabilidad mas importante de una web, ademas de que nos puede rebajar el ancho de banda consumido en el servidor Web, pues nos pusimos a investigar y a probar sobre ello.
TESTEANDO NUESTRO BLOG
Lo primero es saber si nuestro Blog es servido por medio de una conexión comprimida o no y para ello disponemos de dos magníficos sistemas:
http://www.websiteoptimization.com/services/analyze/ donde te dice detalladamente cuantos objetos tiene tu pagina, y si han sido descargados a traves de una conexion comprimida (hay que pasar un captcha y tarda unos segundos en darte un resultado). En caso de que no sea así, cuanto podrías ahorrar en ancho de banda. También te muestra una estimación de lo que tardaría en descargarse tu pagina con diferentes velocidades de conexión (te puedes asustar de los resultados…)
http://www.port80software.com/support/p80tools.asp donde te dice muy claramente si tus esfuerzos han tenido éxito o no y que reducción de tamaño has tenido (en nuestro caso fue x4,2 veces) en las necesidades de ancho de banda.
BUSCANDO INFORMACIÓN
Pues después de mucho leer, hay dos medios de comprimir las paginas: por medio de PHP o por medio del servidor (apache).
Hay multitud de paginas donde se habla de unos y de otros metodos, pero resumidos son solo estos tres:
- Apache: Librería Gzip a través de .htaccess
- Apache: Librería Zlib a través de .htaccess
- PHP: Librería Gzip
La mayor parte de los blogs, hablan de los dos métodos .htaccess, que consiste en crear un fichero .htaccess en la raíz del blog (la raíz del dominio o una carpeta, como es nuestro caso) y escribir unas directivas (mas bien copiar y pegar desde la web, por que este fichero es “case-sensitive”…) donde el servidor apache puede interpretar detalladamente como tiene que servir cada tipo de fichero.
En este tipo de configuración, las posibilidades de personalización son mucho mayores y por lo tanto, la posibilidad de que no te funcione también es mas alta. En casi todos los Blogs, hablan que lo primero es saber que tipo de compresión tiene disponible tu servidor, y para ello hay dos métodos:
- Verlo directamente en el panel de control de tu hosting ( Piensasolutions, Nominalia, Acens, etc…)
- Teclear un script PHP y a veces un .htaccess y subirlo a tu blog (por FTP), para ejecutarlo
La verdad, que después de probar los diferentes scripts que hay y perder una hora sin resultado, al final me toco ir al hosting y mirarlo directamente, resultando que esta activo ZIP (Gzip) y Zlib…
PROBANDO, PROBANDO…
Bien, después de probar los scripts de compresión por medio de .htaccess, ninguno funciono. No obstante, por si a alguien le funciona, se pueden ver todos en el Blog de Antti Kokkonen junto con unas recomendaciones muy interesantes para prevenir ataques de vandalismos al fichero .htaccess , así como para prevenir de forma muy efectiva el spam de los robots (aparte de tener instalado el plugin akismet).
Pasamos en segunda opción a un sistema hibrido .htaccess+PHP que mostraban en wordpresshacks, pero ademas de ser un poco confuso, tampoco funciono..
LA SOLUCIÓN
La solución paso finalmente por modificar las plantillas PHP con un poco de scripts avanzados y fue de esta manera:
Hay que ir a la carpeta del theme que utilices (normalmente en wp-content/themes/tu_theme), y editar el fichero header.php, añadiéndole un poco de texto justo en la primera linea, antes del DOCTYPE.
Se puede probar con lo siguiente:
<?php ini_set('zlib.output_compression', 'On'); ?>
<?php ini_set('zlib.output_compression_level', '1'); ?>
Y si no funciona, probar con esto:
<?php ob_start('ob_gzhandler'); ?>
Nota: Si al hacer esto y leer las paginas del blog da un error de PHP, hay que cambiar las comillas simples por las dobles, o viceversa en las lineas que señalice el error, y dentro de los paréntesis de los comandos PHP.
Una vez realizados los cambios, no hay que olvidar borrar la cache de WP-Super-Cache (en el panel de control de WordPress) antes de ir a las paginas de verificación para verificar si hemos tenido éxito o no.







2 comentarios en “Acelerar WordPress x4 y reducir el ancho de banda necesaio”
Realmente útil. Me lo apunto para mi blog.
Se ve interesante voy a hacer unas pruebas con estos tips.