Hace un año hice la parte 1 de este tutorial, que trataba mas que nada de reducir peticiones a la base de datos para acelerar wordpress un poco aunque se puede aplicar para cualquier página web o CMS, aunque mas que tutorial eran consejos solamente, y los pueden ver en este enlace.
Ahora bien veamos a ver nuestros tiempos de carga antes de comenzar a hacer cambios.
Usamos una herramienta de medición de tiempo, si no saben de ninguna miren este enlace
Personalmente recomiendo pingdom tools
Experimentamos con skamasle antes que nada..
Tiempo de carga: 6.88 segundos
En la siguiente imagen vemos algunas cosas que tardan en cargar mas que nada los JS del theme, que pesan entre 10 y 70kb. ( si no se ve bien la imagen den clic para agrandar )
Primero nos pondremos con los JS ( Java Script )
Hay dos formas con las que podemos ahorrar Kb.
1- Borrando los comentarios del código y quitando los espacios en blanco, lo probe y de un fichero de 30kb me quito 3kb.
2- Comprimiendo los ficheros, esto quita el peso de los archivos un 60% -70% según el fichero.. un fichero de 30kb queda con un peso aproximado de 9kb.
Si queremos bajar mucho el peso podemos quitar las lineas y los comentarios y luego comprimir, pero por 3 o 4 kb según el sitio que tengas no hace mucha falta.. y menos si tienes poco tiempo y no quieres borrar lineas y comentarios.
Vamos a comprimir, lo haremos en gzip.
Comprimir web con gzip y mod deflate
Lo hacemos con mod deflate de apache, casi todos los servidores lo tienen activado al menos los compartidos, si no tendrán que activarlo ustedes compilandolo si tienen un vps o dedicado y si no envian un ticket al soporte para que lo active:
Añadimos este code al htaccess:
# Deflate Compression by FileType
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-shockwave-flash
Si tenemos el apache viejo y tiene gzip ( deflate es el sucesor ) podemos usar este otro code:
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
Esto ya lo añaden plugins como w3tc, si queremos más velocidad podemos activar el minify, este mismo plugin lo tiene, y casi todos los plugins de cache lo están implementando y si el nuestro no lo tuviera buscamos un plugin exclusivo que lo haga.
Vamos al pingdom tools y hacemos otra vez el test.
El resultado, la carga del blog es casi 3 segundos mas rápida,
Tiempo de carga: 3.76 segundos.
Tiempo de carga de los scripts que comprimimos bajo significativamente ( las barritas azules muestran el tiempo )
Bueno por esa parte reducimos bastante el tiempo, podemos hacerlo con otros archivos pero aun no lo e probado…
Vamos con la ultima parte, del tuto / consejos..
Reducir el tiempo de carga de las imágenes bajando su peso
Las imágenes, cosa bastante importante en un blog, pero entre mayor calidad, mas peso.. cada uno decide cuales imágenes, pero yo les recomiendo usar PNG – en modo indexado, una imagen PNG indexada tiene menor peso que una JPG de baja calidad..
De ejemplo pongo este post..
Las dos imágenes que subí en JPG pesaban cada una mas de 80kb, en PNG modo indexado pesan menos de 10kb.. 70kbs que nos ahorramos por imagen.
Es importante mencionar que si tienen un index muy largo tardara mas en cargar como sabemos, es importante usar el leer mas… esto nos ayudará a mejorar la velocidad de carga del sitio y también nos ayudará a combatir el contenido duplicado en nuestra web 😉 ( esto del contenido duplicado y el leer mas lo comentaré otro día )
En fin por ahora es todo, hoy aprendimos algo mas sobre como reducir el tiempo de carga de wordpress, hacer que la trasferencia de archivos sea mas corta comprimiéndolos en GZ, y la vez pasada reducimos peticiones a la base de datos, así que ahora usamos menos CPU en nuestro hosting o VPS y además de eso ahorramos considerablemente el ancho de banda.
Por cierto si no queremos cargar los JS desde nuestro servidor podemos usar los servidores de microsoft o los de google para hacer el llamado a estos archivos, así estaríamos ahorrando mas ancho de banda aun….
Archivo de ejemplo: https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
Casi todo el tiempo se lo come el script de cufon :\ que es para crear las letras custom del blog..
Sobre javascript… hay varios compresores de JS que hacen el trabajo de forma automática..
borran comentarios, quitan espacios, saltos de linea, etc…
La verdad que 3-4 kb por darle a un botón…
aqui hay uno online: https://javascriptcompressor.com/
aunque yo recomiendo tener una copia actualizada del script normal.. que luego los programadores os odiaremos sino
Haré un post al respecto XD
El tema imagenes, también destaco que hace falta controlar los tamaños
https://apuntes.skamasle.com/2011/crear-miniaturas-de-las-imagenes-web-con-timthumb-php/
😛
Y por último, hacer un link del jquery es una práctica muy usada en la programación web y no está vista con malos ojos, es más, google dispone de su api que hace el link automáticamente a su jquery…
no se, yo no lo veo mal 😛
saludos
Si eso del compresor se me había olvidado….
Lo de crear miniaturas lo vi hasta hace un rato xd… ( si lo hubiera visto antes lo agrego de una al post… para las 10000 visitas que ya a tenido…. luego lo agrego si no se me olvida..
En cuanto a lo de google si se que tiene su api y eso microsoft también.. pero mira lo que paso con google traslate…. se abuso la gente y va a hacer de pago..
Estuve probando un poco enlazar a google y todo ese asunto pero el tiempo de carga era el mismo.. así que no beneficiaba mas que en ahorro de ancho de banda, leí por ahí que desde google se puede hacer la petición a un archivo GZ pero no encontré ninguno así que hice este post xd…
Y si el cufon pesaba 70 kb me quedo en menos de 20 creo..
Pero bueno.. probaré el compresor de JS para quitar los comentarios y tal…. y luego otra vez el GZ para para comprimir.. que 3kb menos esta bastante bien, nos podemos ahorrar unos cientos de megas cada mes en trasferencia.