Entendiendo el rendimiento

1

Todo lo que aprenderás sobre optimización web

2

¿Vale el esfuerzo optimizar un sitio web?

3

¿Cuándo realmente un sitio es rápido o lento?

Antes de optimizar...

4

Aprendiendo a medir

5

User Performance Metrics

6

Nuestro proyecto

Crítical Rendering Path

7

Etapas de render del navegador

8

Network waterfall y recursos que bloquean el navegador

9

Priorización de recursos

10

Preloading y prefetching de recursos

11

Fases Paint y Layout del Critical Render Path

CSS

12

Detectando Paints costosos y optimizando animaciones

13

Bloqueos y complejidad en selectores

WebFonts

14

WebFonts y su impacto en rendimiento

Imágenes, Iconos y SVG

15

Imágenes, formato y compresión

16

Imágenes y compresión

17

¿WebFont, Imagen o SVG?

18

Técnicas avanzadas con Lazy Loading

19

Técnicas avanzadas con Responsive Loading

Aplicaciones JavaScript

20

JavaScript y aplicaciones modernas y Utilizando un servidor de producción

21

Analizando el bundle de la aplicación

22

Reduciendo el tamaño del bundle

23

Code Splitting

24

Lazy Module Loading

25

Llevando los listeners a otro nivel

26

Instalando Modal video

27

Lazy loading del modal

28

Moviendo la carga de rendering hacia el servidor: Server Side Rendering

29

Aplicando SSR

30

Pre-renderizando el contenido: Static Generation

Caché

31

Cómo funciona el Caché de recursos y CDN

32

Deploy en Netlify y automatización de contenido en GitHub Actions

33

Aplicando Github Actions

34

Interceptando los requests del navegador con Service Workers

Performance Budget

35

Performance budget y auditorias automatizadas

36

Automatizando una auditoría con Lighthouse CI

37

Medidas reales y monitoreo constante

Conclusiones

38

Conclusiones

Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

16 Días
20 Hrs
42 Min
54 Seg

User Performance Metrics

5/38
Recursos

Aportes 16

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Uh! aquí hay una

⚠️ Corrección: En el minuto 0’59" del video dije que para LCP, es malo si es menor a 2.5sec; es totalmente lo opuesto, tal como se ve en la misma gráfica, LCP estará bien cuando se mantiene menor a 2.5seg 😁

Web Vital

LCP: Larget Contentful Paint

El tiempo que tarda en pintar el mayor elemento visible en la ventana.

FID: First Input Delay (Demora del primer input)

El tiempo que tarda la página en responder a las acciones del usuario.

El FID mide por el mayor tiempo de respuesta.

CLS: Cumulative Layout Shift (Acumulaciones en los altos de los elementos)

Mide todos los cambios inesperados en el layout de una página.

Web Vitals

  • Largest Contentful Paint (LCP): Mide el rendimiento de carga. Para proporcionar una buena experiencia de usuario, el LCP debe ocurrir dentro de los 2.5 segundos posteriores al inicio de la carga de la página.
  • First Input Delay (FID): Mide la interactividad. Para proporcionar una buena experiencia de usuario, las páginas deben tener un FID de menos de 100 milisegundos.
  • Cumulative Layout Shift (CLS): Mide la estabilidad visual. Para proporcionar una buena experiencia de usuario, las páginas deben mantener un CLS de menos de 0.1.

Gracias profesor.

📈 User Performance Metrics

<h4>Ideas/conceptos claves</h4>

LCP ⇒ Carga

FID ⇒ Velocidad de interactividad

CLS ⇒ Estabilidad de elementos mostrados en el website

<h4>Apuntes</h4>
  • Cuando hablamos de experiencia de usuario existen 3 metricas que nos van a ayudar mucho con ello
    • LCP
    • FID
    • CLS
<h3>LCP [Large Contentful Paint]</h3>

Significa el tiempo que tarde en pintar el mayor elemento visible en la ventana

✅ Esta medida sera buena si tarda entre 0 a 2.5 segundos

🟡 Necesita mejora si esta entre 2.5 a 4 segundos

❌ Deficiente de 4 segundos o más

<h3>FID [First Input Delay]</h3>

El tiempo que tarda la página en responder a las acciones del usuario

  • El tiempo que tarda la página en responder a la primer acción hecha por el usuario.

✅ Esta medida sera buena si tarda entre 0 a 100 milisegundos

🟡 Necesita mejora si esta entre 100 a 300 milisegundos

❌ Deficiente de 300 milisegundos o más

<h3>CLS [Cumulative Layout Shift]</h3>
  • Mide todos los cambios inesperados en el layout de una página

✅ Esta medida sera buena si esta en 0 a 0.1

🟡 Necesita mejora si esta entre 0.1 a 0.25

❌ Deficiente de 0.25 o más

RESUMEN: Debemos usar las métricas que son LCP, FID, CLS para mejorar la experiencia de usuario

<h1>Como calcular el CLS</h1>

Viendo este video, me interesé en como se calcularía el CLS en un sitio, ya que este valor a diferencia de los anteriores no está dado por el tiempo. Leyendo esta página, hice el siguiente resumen de como calcularlo.

Nota: Primero es importante caer en cuenta que un cambio de disposición (Layout Shift) se da cuando un elemento cambia su posición inicial. Si un elemento cambia su tamaño o un nuevo elemento es agregado al DOM, no hay un cambio de disposición a menos que esto haga que otro componente ya visible cambie su posición.

El calculo del puntaje del CLS se da por la siguiente formula:

puntaje de cambio = fracción de impacto * fracción de distancia

Como calcular la fracción de impacto?

<Imagen obtenida de https://web.dev/cls/>

En esta imagen podemos ver un elemento que toma el 50% del viewport en el primer cuadro, y en el segundo cuadro el elemento se ha movido un 25% hacia abajo en el viewport. La línea roja está indicando la union del area visible del elemento en ambos cuadros, que en este caso es del 75% (50% inicial y 25% del movimiento), por lo tanto la fracción de impacto de este elemento es de 0.75.

Como calcular la fracción de distancia?

<Imagen obtenida de https://web.dev/cls/>

La fracción de distancia se calcula obteniendo la distancia mayor que un elemento inestable (la caja gris con texto, en este ejemplo) se ha movido en el cuadro actual, este movimiento se debe tener en cuenta en relación a la dimensión mas grande del viewport (altura o anchura).

En el ejemplo de arriba, la dimensión mas grande del viewport es claramente la altura y el elemento se movio un 25% de la altura del viewport, por lo que la fracción de distancia es de 0.25.

Esta fracción de distancia se puede obtener dividiendo la cantidad de píxeles que se movió el elemento divido la dimensión mas grande: pixeles movidos / dimensión mas grande.

Teniendo en cuenta el ejemplo anterior, ya tenemos las dos fracciones que necesitamos para calcular el puntaje de cambio. Recordemos que nuestra fracción de impacto es de 0.75 y nuestra fracción de distancia es de 0.25, por lo tanto aplicando ambos en la formula nos da que:

puntaje de cambio = 0.75 * 0.25 = 0.1875

Este curso es increíble. Lo que mas me esta gustando es que esta actualizado, ya que los responsables de Google en proveer estas herramientas de medición de performance constantemente hacen ajustes a sus mediciones. Y hace poco como en Mayo aproximadamente, realizaron unos cambios y esas métricas que mencionan tienen distinta ponderación porque cada vez mas se estan enfocando mucho en la experiencia del usuario, lo cual es bueno, pero tambien nos permite estar constantemente viendo que mas podemos mejorar para ayudar a nuestros usuarios.

Web Vitals

Iniciativa de Google para proporcionar una guía unificada de indicadores de calidad que son esenciales para brindar una excelente experiencia de usuario en la web, tiene como objetivo simplificar el panorama y ayudar a los sitios a centrarse en las métricas que más importan, los llamados;

Core Web Vitals: Estos son las métricas más importantes para medir las distintas facetas de experiencia de usuario, se centran en cargainteractividad y estabilidad visual.

Ahora en Chrome 91 en los DevTools>Performance>Web Vitals si le hacemos hover podemos ver un pop-up que nos indica si nuestro performance esta bien o mal 😄

Link del video del team de Chrome 🎬 👉Link

Falta que se adhiera al curso el recurso de las diapositivas

Que importante que mencionen las metricas!

cómo se mide el FID si el sitio no tiene más secciones es una sola página y el usuario solo tiene que hacer scroll down?

Métricas vitales

  • LCP (Largest Contentful Paint)
    CARGA
    Es el tiempo que tarda en pintar el mayor elemento visible en la ventana.
    Este medida va a ser BUENA cuando esté entre 0 y 2.5 s; REGULAR cuando esté entre 2.5 y 4 s, y va a ser MALA cuando esté de 4 s en adelante.
    IDEALMENTE: los elementos que ocupan una buena porción en nuestra página (como las imágenes, como los logos), deberían aparecer desde los primeros milisegundos en la carga del sitio.
  • FID (First Input Delay)
    INTERACTIVIDAD
    Es el tiempo que tarda la página en responder a las acciones del usuario.
    Esta es la métrica que nos va a penalizar por el tiempo que nosotros nos demoremos en dar una respuesta ante la interactividad de nuestros usuarios.
    El tiempo, cuando es menor a 100 ms está MUY BIEN, cuando está entre 100 y 300 ms está “BIEN”, y cuando está de 300 ms hacia arriba está DEFICIENTE.
    El FID toma el peor tiempo de respuesta.
  • CLS (Cumulative Layout Shift)
    ESTABILIDAD
    Mide todos los cambios inesperados en el layout de una página.
    Esto nos va a pensalizar cuando de un momento a otro (sobre todo de manera inesperada o brusca) los elementos cambien de tamaño.
    Cuando tenemos acumulaciones menores a 0.1 s está BIEN, si está entre 0.1 y 0.25 s está “OK”, y si está de 0.25 s en adelante es DEFICIENTE.
    .
    Main Thread: es el hilo de ejecución.

Tengo una duda con relación al CLS, puede ayudar el skeleton a mejorar esta métrica en recursos asíncronos como por ejemplo un Card de artículos

User Performance Metrics

  • LCP: Largest Contentful Paint
    • Es el tiempo que tarda en pintar el mayor elemento visible en la ventana
    • Es el tiempo de carga
    • Muy bueno si esta entre 0 y 2.5s
  • FID: First Input Delay
    • Metrica que mide el tiempo que tarda la pagina en responder a las acciones del usuario
    • Es el tiempo hasta interactividad
    • Hasta 100ms es buen tiempo
  • CLS: Cumulative Layout Shift
    • Nos penaliza cuando hay momentos inesperados de cambios o de tamaños en los elementos.
    • Es sobre la estabilidad de los elementos renderizados
    • Acumulaciones hasta 0.1 esta OK
<h4>User Performance Metrics</h4>
  1. LCP: CARGA Largest Contentful Paint -> El tiempo que tarda en pintar el mayor elemento visible en la ventana. Es buena con menos de 2.5 segundos, regular entre 2.6 y 4 segundos y mala mayor a 4 segundos. Desde los primeros milisegundos, las imágenes deben ser las primeras cosas en cargar.
  2. FID: INTERACTIVIDAD First Input Delay -> El tiempo que tarda la página en responder a las acciones del usuario. Es buena respuesta en menos de 100ms, regular entre 100 y 300ms y mala mayor a 300ms. El FID va a medir nuestro peor tiempo de respuesta.
  3. CLS: ESTABILIDAD Cumulative Layout Shift -> Mide todos los cambios inesperados en el layout de una página. Es buena si los cambios son menores a 0.1, regulares si son entre 0.1 y 0.25 y malos mayores a 0.25