SlideShare una empresa de Scribd logo
Web Performance Optimization Retreat 2011 [email_address] [email_address]
Agenda Motivación Buenas practicas Herramientas
Motivación
The Google Analytics exit rate for different page load times   collected from Wikia data. Measured over 29 million  pageviews ( 2009 )
+500 ms -> -20% traffic (Google -2008) +400 ms -> -5 a 9% Full page traffic (Yahoo-2008) +100 ms -> -1% sales (Amazon-2008) +400 ms -> -0.59% searches/users (Google -2009) +2000 ms -> -4.3% revenues/users (Bing -2009)
#1 Anatomía de una web sana
 
Buenas Practicas
Enviar contenido zipeado. Recursos estáticos bien cacheados. Js y Css externalizados. Css at the top, Js at the bottom. Lo básico
Gzip Para TODO el contenido (estático y dinámico) Reducción de un 70% del peso de la respuesta 90% de los browsers soportan gzip Hilando fino: para comprimir aún más... Css: Key-values ordenados alfabéticamente Html: Atributos ordenados alfabéticamente Usar sólo “ o sólo ‘ Minimización de JS y CSS Google mejoró un 1.5% la compresión
 
Cache Cachear componentes ayuda a reducir el número de requests 80% page views se hacen con la cache llena (Yahoo) Search  HTML = 5minutos CSS,JS,imágenes = 1mes
Second View
Externalizar CSS y JS Mejora el cacheo Ayuda a compartir recursos (+cacheo) Tradeoff cantidad de requests (inline)
Reducir la cantidad de requests Combinar scripts en un archivo Combinar styles en un archivo Combinar imágenes en sprites
Stylesheet en el head Acelera el render Ayuda a que el render sea progresivo Javascript después de OnLoad Los elementos script blockean el render
 
Postcarga – Hay vida después del onload? Después del onload Script Trackeos Imágenes CSS extras
 
Hasta acá está todo muy al alcance de nuestras manos..ahora hilemos un poco más fino
Uso de CDN Mejor tiempo de respuesta en base a servir contenidos teniendo en cuenta la proximidad Contenido estático <- sin CDN <- con CDN
DNS Lookups Resolver un lookup cuesta entre 20-120 ms 1 dominio principal y hasta 4 de recursos Trade off paralelismo Los DNS lookups bloquean las descargas en paralelo Request por dominio
Dominios cookieless No enviar cookies en los dominios static, imágenes, css , js. Muchos proxies no cachean dominios con cookies CSS HTML
 
Imágenes Optimizar imágenes Eliminar metadatos reduce el peso sin perdida de calidad. Optimizar css sprites No escalar imágenes en el html Setear width y height acelera el render
Reducir el número de elementos del DOM Generación del DOM más rápida Búsquedas de elementos más rápida 700 elementos -> OK!
Buffer flushing La respuesta del backend toma entre 150 y 500ms Se puede enviar html que está listo en ese momento. Mejora la percepción del usuario
Herramientas
Tests con múltiples browsers y ubicaciones Network activity Detalles de los request Checklist + reporte de pageSpeed Repeat view Content breakdown by MIME and Domain *.har Load detail Comparaciones
 
 
 
Speed tracer Network activity Monitor de eventos
Preguntas
Imágenes http://www.flickr.com/photos/jamesgold/153504/ http://www.flickr.com/photos/toasty/472330111/ http://www.flickr.com/photos/booksin/3655138991/ http://www.flickr.com/photos/anavrin/194771480/ http://www.flickr.com/photos/halfangel36/2371628236/ http://www.flickr.com/photos/gru/148724512/

Más contenido relacionado

PDF
Buenas prácticas para la optimización web
PPTX
El tamaño importa - JoomlaDay Sevilla 2015
PDF
24-7 Hoster
PDF
Alternativas de hosting para WordPress
PDF
Hacking Web Performance en Español - JSConf México 2020
ODP
Desarrollo en la nube
PDF
Datos para construir páginas fáciles y dinámicas
PDF
Cloud Hosting
Buenas prácticas para la optimización web
El tamaño importa - JoomlaDay Sevilla 2015
24-7 Hoster
Alternativas de hosting para WordPress
Hacking Web Performance en Español - JSConf México 2020
Desarrollo en la nube
Datos para construir páginas fáciles y dinámicas
Cloud Hosting

Similar a Web Performance Optimization (WPO) retreat meli 2011 (20)

PDF
Buenas prácticas para la optimización de sitios web
PPTX
Acelera tu sitio WordPress WPO
PDF
Web Performance Optimization
PDF
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
ODP
Optimización Web (+ HTML5)
PDF
Mejores practicas para acelerar sitios web
PDF
Optimizando Sitios Web
PDF
Curso WPO - Web Performance Optimization 2013
PPTX
Adrián Garrido - WPO para WordPress.pptx
PPTX
WPO para bloggers de viaje: mejora el tiempo de carga de tu blog
PPT
High performance Web Sites
PDF
The wpo academy: Qué es y que mide la velocidad de carga de una web?
ODP
Workshop "Técnicas de optimización web" en Webprendedor 2011
DOCX
¿Qué se puede hacer para acelerar la entrega de contenido en Internet?
PDF
Cómo mejorar-la-velocidad-de-tu-web (Cámara madrid)
PDF
Antonio Torres - WPO Wordpress - EN@E Digital Meeting
PPTX
Mejorar WPO en WordPress
PPTX
Peso de las páginas
PPTX
WPO - Murcia Meetup Day #MMD17
PPTX
Presentación Francisco Siutti | Nodus Company - eCommerce IT Camp
Buenas prácticas para la optimización de sitios web
Acelera tu sitio WordPress WPO
Web Performance Optimization
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Optimización Web (+ HTML5)
Mejores practicas para acelerar sitios web
Optimizando Sitios Web
Curso WPO - Web Performance Optimization 2013
Adrián Garrido - WPO para WordPress.pptx
WPO para bloggers de viaje: mejora el tiempo de carga de tu blog
High performance Web Sites
The wpo academy: Qué es y que mide la velocidad de carga de una web?
Workshop "Técnicas de optimización web" en Webprendedor 2011
¿Qué se puede hacer para acelerar la entrega de contenido en Internet?
Cómo mejorar-la-velocidad-de-tu-web (Cámara madrid)
Antonio Torres - WPO Wordpress - EN@E Digital Meeting
Mejorar WPO en WordPress
Peso de las páginas
WPO - Murcia Meetup Day #MMD17
Presentación Francisco Siutti | Nodus Company - eCommerce IT Camp
Publicidad

Último (20)

PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPT
Protocolos de seguridad y mecanismos encriptación
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
unidad 3 tecnología 8° básico: planificación y elaboración de un objeto
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPTX
modulo seguimiento 1 para iniciantes del
DOCX
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
PPTX
Mecanismos-de-Propagacion de ondas electromagneticas
DOCX
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
PDF
Estrategia de Apoyo de Daylin Castaño (5).pdf
PDF
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
Curso de generación de energía mediante sistemas solares
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Protocolos de seguridad y mecanismos encriptación
Presentacion de Alba Curso Auditores Internos ISO 19011
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
unidad 3 tecnología 8° básico: planificación y elaboración de un objeto
historia_web de la creacion de un navegador_presentacion.pptx
modulo seguimiento 1 para iniciantes del
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
Mecanismos-de-Propagacion de ondas electromagneticas
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
Estrategia de Apoyo de Daylin Castaño (5).pdf
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Curso de generación de energía mediante sistemas solares
Power Point Nicolás Carrasco (disertación Roblox).pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
la-historia-de-la-medicina Edna Silva.pptx
MANUAL de recursos humanos para ODOO.pdf
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Publicidad

Web Performance Optimization (WPO) retreat meli 2011

  • 1. Web Performance Optimization Retreat 2011 [email_address] [email_address]
  • 2. Agenda Motivación Buenas practicas Herramientas
  • 4. The Google Analytics exit rate for different page load times   collected from Wikia data. Measured over 29 million  pageviews ( 2009 )
  • 5. +500 ms -> -20% traffic (Google -2008) +400 ms -> -5 a 9% Full page traffic (Yahoo-2008) +100 ms -> -1% sales (Amazon-2008) +400 ms -> -0.59% searches/users (Google -2009) +2000 ms -> -4.3% revenues/users (Bing -2009)
  • 6. #1 Anatomía de una web sana
  • 7.  
  • 9. Enviar contenido zipeado. Recursos estáticos bien cacheados. Js y Css externalizados. Css at the top, Js at the bottom. Lo básico
  • 10. Gzip Para TODO el contenido (estático y dinámico) Reducción de un 70% del peso de la respuesta 90% de los browsers soportan gzip Hilando fino: para comprimir aún más... Css: Key-values ordenados alfabéticamente Html: Atributos ordenados alfabéticamente Usar sólo “ o sólo ‘ Minimización de JS y CSS Google mejoró un 1.5% la compresión
  • 11.  
  • 12. Cache Cachear componentes ayuda a reducir el número de requests 80% page views se hacen con la cache llena (Yahoo) Search HTML = 5minutos CSS,JS,imágenes = 1mes
  • 14. Externalizar CSS y JS Mejora el cacheo Ayuda a compartir recursos (+cacheo) Tradeoff cantidad de requests (inline)
  • 15. Reducir la cantidad de requests Combinar scripts en un archivo Combinar styles en un archivo Combinar imágenes en sprites
  • 16. Stylesheet en el head Acelera el render Ayuda a que el render sea progresivo Javascript después de OnLoad Los elementos script blockean el render
  • 17.  
  • 18. Postcarga – Hay vida después del onload? Después del onload Script Trackeos Imágenes CSS extras
  • 19.  
  • 20. Hasta acá está todo muy al alcance de nuestras manos..ahora hilemos un poco más fino
  • 21. Uso de CDN Mejor tiempo de respuesta en base a servir contenidos teniendo en cuenta la proximidad Contenido estático <- sin CDN <- con CDN
  • 22. DNS Lookups Resolver un lookup cuesta entre 20-120 ms 1 dominio principal y hasta 4 de recursos Trade off paralelismo Los DNS lookups bloquean las descargas en paralelo Request por dominio
  • 23. Dominios cookieless No enviar cookies en los dominios static, imágenes, css , js. Muchos proxies no cachean dominios con cookies CSS HTML
  • 24.  
  • 25. Imágenes Optimizar imágenes Eliminar metadatos reduce el peso sin perdida de calidad. Optimizar css sprites No escalar imágenes en el html Setear width y height acelera el render
  • 26. Reducir el número de elementos del DOM Generación del DOM más rápida Búsquedas de elementos más rápida 700 elementos -> OK!
  • 27. Buffer flushing La respuesta del backend toma entre 150 y 500ms Se puede enviar html que está listo en ese momento. Mejora la percepción del usuario
  • 29. Tests con múltiples browsers y ubicaciones Network activity Detalles de los request Checklist + reporte de pageSpeed Repeat view Content breakdown by MIME and Domain *.har Load detail Comparaciones
  • 30.  
  • 31.  
  • 32.  
  • 33. Speed tracer Network activity Monitor de eventos
  • 35. Imágenes http://www.flickr.com/photos/jamesgold/153504/ http://www.flickr.com/photos/toasty/472330111/ http://www.flickr.com/photos/booksin/3655138991/ http://www.flickr.com/photos/anavrin/194771480/ http://www.flickr.com/photos/halfangel36/2371628236/ http://www.flickr.com/photos/gru/148724512/

Notas del editor

  • #5: The Google Analytics exit rate  for different page load times   collected from Wikia data. Measured over 29 million   pageviews ( 2009 )
  • #15: Cargar el Css y el Js desde archivos, en vez de consumirlo &amp;quot;inline&amp;quot; ayuda a que los recursos sean cacheados por el borwser. Si se encuentran inline, el css o el js se bajan cada vez que descargamos el html. Con los recursos inline evitamos  requests, pero tenemos un html más pesado y perdemos la posibilidad de compartir los recursos ,además de cachearlos de forma independiente. Si los recursos son bien cacheados, se reduce la cantidad de request también sin tener un html más pesado. La decision de externalizar o no se basa en la posibilidad de cachear el recurso.
  • #16: La mayoría del tiempo q el usuario pasa en el front end , es descargando componentes (img,css,js,etc). Reducir la cantidad de componentes , reduce la cantidad de request.  Combinar archivos:  combinar scripts css, js en un solo archivo. Sprites  es una de las formas más sencillas y que mejor rinden para reducir la cantidad de request a imágenes. El sprite consiste en juntar todas las imagenes en una, mostrarlas como un background de css, pero solo dejar visible un área de pixeles, que correspondan a la imágene a mostrar. 
  • #17: Poner los styles en el head, permite un render progresivo, muchos render engines, evitan renderear hasta no cargar todos los estilos para evitar el re paint de los componentes, si es que los estilos cambian. Para evitar que la página permanezca en blanco y aparezca de golpe, y permitir un rendereo progresivo..styles en el head. El problema con el javascript es que bloquea las descargas en paralelo. Cuando el browser está bajando scripts bloquea cualquier tipo de descarga, por más de que sea a otro hostname. DEFER indica q no va haber un document.write...cosa de q el browser siga con el render. pero ff no lo soporta
  • #19: El front end tiene que ser lo más simple posible, antes del onload en lo posible , solo tendríamos que cargar html y css..lo indispensable, las imágenes que no se pueden obviar..y luego una vez que cargo la pagina, los scripts, trackeos, imágenes restantes, estilos extra etc. Pensar en lo básico puede ser cubrir solo el area visiblie del usuario con la resoluciión más grande, dar funcionalidad minima indispensable hasta que se muestra la pagina y luego proveer funcionilidad full.
  • #22: Que tan próximo está el end user al web server tiene impacto en el tiempo de respuesta. Usar una cdn , es decir tener una colleccion de webservers distribuidos en diferentes puntos geográficos, permite un mejor delivery de contenidos..no hay que olvidarse q el usario pasa la mayor parte del tiempo descargando componentes.
  • #23: Resolver un mapeo DNS (Que consiste en mapear un nombre de domino con una dirección IP ) toma entre 20 y 120 ms. La resolución de los dns es cacheada en el ISP pero también en el browser. Reducir el número de dominios que manejamos implica menos lookups, pero también perdemos dominios para realizar descargas en paralelo. Los dominios a eliminar son aquellos que se usan para unas pocas descargas.
  • #24: genera tráfico de red que implica enviar cookies a servers que no las usan Algunos proxies no cachean componentes que viene con cookies
  • #26: usar png en vez de gif  salva algo de peso
  • #27: Tener un número excesivo de elementos en el dom es un sintoma de que tenemos contenido de más. Reducir la cantidad de elementos del dom implica menos peso, armado del arbol más rápido y  búsquedas más rápidas Más allá de esto, hay que minimizar lo más posible el accero al dom, si queremos velocidad tenemos que en lo posible cachear accesos al dom,  no hacer ajustes de layout con javascript, actualizar los nodos offline y luego agregarlos al arbol.
  • #28: ayuda a reducir el time to first byte Un buen lugar para hacer flush es el header de la pagina, xq tenes el html ,csss y javascript  básicos