Todo sitio web tiene en su lista de prioridades dos cosas: ser lindo y ser cómodo. Eso se traduce en buen diseño y buena interfaz. Pero ¿que pasa cuando por hacer cosas lindas y con mucha interfaz de usuario empezamos a tener cosas que no se pueden usar por que tarda mucho en cargar? A medida que un sitio posee más diseño y más interfaz su peso se va incrementando.
¿Cual es el problema? Imagina que diseñas un sitio de primera línea visual, buenos gráficos, excelente programación de interfaces (muchos pop-ups, elementos animados, todo el paquete) si te tomás el trabajo de hacer un poco de análisis sobre el producto final seguramente descubras que cada carga de página requiera de descargar más de 300 Kb. Ahora piensa que ese sitio va a ser utilizado por 200 personas por día y que cada una de ellas navegara unas 3 a 4 pantallas. Parecen números pequeños, pero ahora hagamos cuentas.
| 200 usuarios x día a 30 días | = 6.000 visitas al mes |
| 3.5 páginas x 6.000 visitas al mes | = 21.000 cargas de páginas |
| 21.000 cargas x mes a 300 Kb. x carga | = 6 GB. y monedas |
Es verdad, no parece amenazante cuando hoy los proveedores de hosting rematan por 30 o 40 dólares planes con 10Gb. de transferencia. Pero ¿Que pasa si estamos pensando en un sitio que va a tener 1000 usuarios diarios, y si estos usuarios les gusta el sitio y consumen el doble de páginas? Es este escenario estaríamos pensando en un consumo mensual de 60Gb. de información solamente. Eso puede no solo ser costoso, si no que problemático en infraestructura. Si tenés bolsillo profundo y esto no te asusta, hagamos otro ejercicio pero esta vez offline: a la voz de “ahora” contá 15 segundos. Ahora !
¿Esperarías ese tiempo para ver un contenido en un sitio cada vez que entras? Claro que no.
Optimizar los recursos de los sitios pocas veces es una prioridad en la cabeza de los desarrolladores o diseñadores, para para un negocio online puede ser la diferencia entre una reseña positiva o un usuario que no vuelve por que no puede lograr su objetivo en el sitio.
Optimizar es el proceso de generar aplicaciones web rápidas que cumplan con las expectativas de los usuarios.
Por suerte para nosotros, hoy existen buenas soluciones y optimizar se ha convertido en un trabajo bastante sencillo. En las viejas épocas una optimización podía requerir varias versiones de un mismo recurso, pasar un buen rato frente a un editor de imágenes quitando y poniendo compresión, y otras cosas más molestas.
¿Cómo se puede optimizar? Hay principalmente dos maneras de optimizar un sitio web:
- Cargar menos cosas
- Cargar cosas mas livianas
Cargar menos cosas se puede traducir en cargar menos imágenes, cargar menos hojas de estilos, utilizar redes de distribución de contenidos para tener menor responsabilidad sobre la carga de los mismos (dejar que otro se ocupe de servirlos), y algunos secretos más complejos como tener una política de cache (indicar inteligentemente que es lo que los navegadores tienen que descargar del sitio y que pueden reutilizar cuando ya lo cargaron).
Cargar cosas más livianas es básicamente que las recursos (imágenes, código, estilos, etc.) sean más pequeñas. Esto implica, no incluir código que no se utiliza, siempre escribir los códigos de la manera más corta posible, imágenes mas pequeñas en peso. Dato curioso: los primeros compresores de HTML solo removían los espacios en blanco y tabulaciones innecesarias, parece tonto pero con esta estrategia se puede reducir un 30% el peso de un HTML.
Hace ya un tiempo que los grandes jugadores de internet se han propuesto dar una mano a los desarrolladores para mejorar la calidad de los sitios que se producen, así surgieron librerías como la API de bibliotecas AJAX de Google que centraliza en un solo lugar las librerías más usadas de javascript, o herramientas del estilo de Smushit.it, actualmente de Yahoo, que se encarga de disminuir el peso de las imágenes de nuestro sitio. De modo que podemos dejar en manos de Google la responsabilidad de hospedar grandes archivos de código o estilos quitándonos el peso de cargar con estas transferencias, o generar imágenes optimizadas de forma automática y con poco riesgo.
Y como para muestra basta un botón les puedo mencionar como ejemplo que mientras pensaba en este post me dedique a optimizar las imágenes de un sitio que hoy se encuentra productivo y con más de 500 visitas diarias, como resultado de la tarea logre disminuir un 45% la transferencia en la primer página vista. Mejorando la velocidad de acceso a todo el sitio en un 30%. ¿Cómo impacta esto? Los usuarios llegan más rápido a lo que quieren y nuestro sitio no se esfuerza demás al complacerlos. Optimizar es ahorrar costos y es hacer mejores aplicaciones.
Ah, si no les avise: es un post para geeks como uno.
Periodicamente la compañia de datos 