Muchas veces he hablado con el amigo Maxi sobre la velocidad de carga de Liberitas, llegando finalmente a la conclusión de que el servidor donde lo tengo alojado es lo más parecido a una deposición diarreica de un elefante. Si miras en el código fuente de la página [habilidad disponible sólo para hackers :lol:] podrás observar que el tiempo de ejecución de la página es de 1 segundo para 70 queries. Bueno, estos dos números pueden variar, pero más o menos se pueden tomar como media orientativa.
Pues el tiempo de carga de la página puede llegar a ser de hasta 30 segundos por lo menos. No lo he cronometrado, pero si tengo una conexión de 2 Mb no debería tardar tanto, ¿no? Pues es que resulta que el tiempo de respuesta del servidor es de más o menos 200 milisegundos, es decir, que entre petición del navegador y respuesta del servidor pasa ese tiempo. Cada vez que el navegador quiere cargar una imagen tiene que enviar el mensaje de petición, recibir el permiso, recibir el archivo y confirmar la entrega.
Pues estuve buscando por Internet métodos para acelerar la carga de Liberitas y existe un plugin que se llama WP-Cache y es muy famoso. Pero yo que soy un culo inquieto pues no me hacía gracia de perder las funciones dinámicas ni andar trapicheando en el código del theme ni nada de nada, así que seguí rebuscando algún plugin para WP pero sin resultados satisfactorios.
De pronto se me encendió una lucecita: ¿y si existiera alguna manera de usar el .haccess para acelerar esta mierda? Pues sí, y me encontré con este post. Prometía acelerar la carga de la página en cuestión hasta la velocidad dramática aprovechando el caché del navegador para tal fin. A continuación mostraré la parte del código que hay que añadir al .htaccess:
ExpiresActive On
ExpiresDefault "A60"
### 1 mes
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-shockwave-flash A2592000
### 1 semana
ExpiresByType text/plain A604800
ExpiresByType application/pdf A604800
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
### 1 hora
ExpiresByType application/x-javascript A3600
ExpiresByType text/css A3600
Los tiempos están en segundos, y la A que hay delante significa que es desde el último acceso que haya realizado el navegador que se esté utilizando. Lo que me gusta de este sistema es que es personalizado para cada usuario, ya que es un código para ser interpretado por el navegador que use y tiene en cuenta la última vez que ha accedido al contenido. La A puede ser cambiada por M y corresponderá entonces al tiempo que hace desde que se modificó el contenido, pero referido al lado del servidor y ahora sólo dependerá de la diferencia entre fecha de creación del contenido del servidor y el que se guarda en el caché del navegador.
Los tipos específicos de contenido también son muy interesantes, ya que permite distinguir entre un archivo javascript, una imagen o texto simple, especificando distintos tiempos para cada uno si se desea. Al principio se especifica el tiempo por defecto para todo el contenido que no corresponda a los tipos especificados más abajo. Si quieres tirar más de la caché aumenta el tiempo, si no, disminúyelo, así de fácil.
No se puede negar que es un buen sistema, pero otra vez la inquietud me hizo seguir buscando algo relacionado con la compresión, ya que la caché funciona bien siempre y cuando no se borre del navegador. Si no tienes caché harás la petición de contenido al propio servidor, y es entonces donde entra en juego la compresión del contenido para ahorrar tiempo de transmisión de datos.
El WordPress viene con la opción de comprimir [gzip] el contenido si el navegador lo pide, pero yo tenía mis dudas sobre si los navegadores realmente lo piden o más bien esperan a ver si se lo ofrecen. Ahora ya he comprobado que sí que funciona, así que no hace falta usar el mod_deflate. En esta página se observa claramente que el mod_deflate es menos efectivo que el mod_gzip.
Con estas mejoras podría alcanzar la soñada velocidad absurda [en recuerdo a Spaceballs], pero ocurre una cosa, que incluso con estas mejoras, si tu servidor es una mierda de respuesta lenta no hay mucho que hacer…
PUÑALADA!!!!
Escribiré poco para no petarte el servidor xD