SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Web Vitals
Performance
Grupo de trabalho sobre performance para
internet da W3C
● www.w3.org/webperf/
● Discutem métricas relacionadas à experiência do usuário dentro de uma
página;
● As perguntas chaves para ter certeza de que uma métrica é relevante para
usuário são:
1. Está acontecendo? (disponibilidade)
2. É útil? (conteúdo relevante)
3. É usável? (interação)
4. É agradável? (naturalidade na navegação)
Tipos de métricas
● Percepção de carregamento de página;
● Responsividade de carregamento;
● Responsividade em tempo de execução;
● Suavidade.
Experiência de página
● Preocupação do Google com esse assunto já existe há anos;
● Fatores que já influenciam no ranqueamento:
○ Velocidade de carregamento
○ Segurança
○ Amigável para dispositivos móveis
○ Pop-ups intrusivos
● Em maio de 2020, Google publica um artigo que explica como ele passa a
avaliar a experiência de página
○ https://developers.google.com/search/blog/2020/05/evaluating-page-exp
erience
Web Vitals
● Amigável a dispositivos móveis
● Navegação segura (sem malwares)
● HTTPS
● Pop-ups intrusivos (Intrusive interstitials)
● Core Web Vitals
○ LCP — Largest contentful paint
○ FID — First input delay
○ CLS — Cumulative layout shift
Dados de laboratório x dados de campo
● Dimensões utilizadas para medir se uma página possui uma boa experiência
de navegação;
● Dados de laboratório: Extraídas por ferramentas que fazem análise direta na
página. Bom para feedback rápido;
● Dados de laboratório: Extraído a partir da navegação dos usuários com
diversos perfis de conexão.
Métricas
LCP — Largest contentful paint
● Tempo em que foi renderizado a maior imagem ou bloco de texto na tela;
● Só é considerado a porção da página que o usuário está visualizando;
● Os elementos que estão cortados só é considerado a parte do elemento que
está visível.
LCP — Largest contentful paint
● Regras que precisam ser dada a atenção:
○ Elementos com overflow não visível só considera a parte visível;
○ No caso de imagens é considerado o tamanho que aparece na tela e não
os dimensões da imagem original;
○ Margem, padding ou bordas não são considerados como parte do
tamanho do elemento.
LCP — Largest contentful paint
● Os elementos considerados como LCP:
○ <img>
○ <image> dentro de um elemento <svg>
○ <video>
○ Elementos com imagem de fundo definida via CSS, com exceção de
gradientes
○ Elementos considerados block-level;
■ https://developer.mozilla.org/pt-BR/docs/Web/HTML/Elementos_blo
ck-level
LCP — Largest contentful paint
● Fatores que influenciam para uma métrica baixa:
○ Respostas lentas do servidor;
○ Bloqueio de renderização de JavaScript e CSS;
○ Tempo de carregamento de recursos;
○ Renderização no lado do cliente.
FID — First input delay
● Tempo entre fazer a primeira interação com a página e ela ser executada;
● O JavaScript funciona sobre uma única thread, ou seja, ele vai executar uma
ação por vez sem criar concorrência no processador. Quando uma ação é
disparada, ele precisa primeiro processar o que ele está executando até liberar
a thread para que a ação seja processada.
FID — First input delay
● Fatores que influenciam para uma métrica baixa:
○ Grande quantidade de arquivos JavaScript sendo carregados;
○ Código JavaScript não otimizados.
CLS — Cumulative layout shift
● Soma de todos os deslocamentos individuais inesperados durante a vida útil
da página;
● Quando maior o deslocamento, maior o CLS.
CLS — Cumulative layout shift
● Fórmula do CLS:
CLS = fração de impacto * fração de distância
● Fração de impacto: união da área do elemento no frame `n` com a área do
elemento no frame `n + 1`.
○ Se um elemento ocupa 50% da tela e é deslocado no próximo frame 25%
para baixo, a área da união dos dois elementos será de 75% da janela de
exibição. A fração de impacto nesse caso é 0.75.
● Fração de distância: distância de deslocamento do elemento instável entre os
dois frames.
○ No mesmo caso da fração de impacto, onde o elemento se deslocou 25%
na janela de exibição. A fração de distância é 0.25.
CLS — Cumulative layout shift
● Fração de impacto: 0.75
● Fração de distância: 0.25
● CLS = fração de impacto * fração de distância
● CLS = 0.75 * 0.25
● CLS = 0.1875
Otimizações
Entrega de recursos
● CDN;
● Minificação de CSS e JS;
● Cache;
● <link rel=”preconnect” />;
● <link rel="preload" />;
● Compressão (brotli ou gzip);
Imagens
● Servir imagens otimizadas para internet;
● Entregar imagens no tamanho correto;
● Utilizar lazy load para imagens fora da primeira dobra;
● Disponibilizar tamanho via atributos HTML ou CSS.
JavaScript
● Executar o mínimo possível de JavaScript;
● Adiar JavaScript não utilizado.
CSS
● Extrair CSS crítico;
● Adiar carregamento de CSS não-crítico;
● Carregar webfonts utilizando font-weight: swap.
Ferramentas
Lighthouse
[lab data]
developers.google.com/web/tools/lighthouse
Chrome User Experience Report
[field data]
developers.google.com/web/tools/chrome-user-experience-report
developers.google.com/web/tools/chrome-user-experience-report
UX Report do
wordpress.org
Chrome User Experience Report
[field data]
PageSpeed Insights
developers.google.com/speed/pagespeed/insights
Google Search Console
search.google.com/search-console
Web Vitals (Extensão Google Chrome)
chrome.google.com/webstore/detail/web-vitals/ahfhijdlegdabablpippeagghigmibma
GTmetrix
gtmetrix.com
Plugins WP
Escolham os melhores para seu contexto
● LiteSpeed Cache
● W3 Total Cache
● WP Super Cache
● Breeze
● WP Fastest Cache
● WP-Optimize
● WP-Sweep
● Clearfy
● Autoptimize
● EWWW Image Optimizer
● Imagify
● Hummingbird
WordPress Core Web Vitals Lab
github.com/aztecweb/wordpress-core-web-vitals-lab
aztecweb.net criacao.cc
@edpittol
pittol@aztecweb.net
Obrigado!

Mais conteúdo relacionado

Semelhante a Web Vitals: LCP, FID e CLS para melhorar a experiência do usuário

Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
ESP204 - Cap. 2 - Processos.pdf
ESP204 - Cap. 2 - Processos.pdfESP204 - Cap. 2 - Processos.pdf
ESP204 - Cap. 2 - Processos.pdfAndreLisboa13
 
Desenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQueryDesenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQueryCarlos Eduardo Alves
 
Afinal, o que são Single Page Applications
Afinal, o que são Single Page ApplicationsAfinal, o que são Single Page Applications
Afinal, o que são Single Page ApplicationsPatrick Monteiro
 
Desenhando aplicativos ricos para Web - Carlos Eduardo Alves (Sulclínica)
Desenhando aplicativos ricos para Web - Carlos Eduardo Alves (Sulclínica)Desenhando aplicativos ricos para Web - Carlos Eduardo Alves (Sulclínica)
Desenhando aplicativos ricos para Web - Carlos Eduardo Alves (Sulclínica)Tchelinux
 
JS Experience 2017 - Otimizando o front end
JS Experience 2017 - Otimizando o front endJS Experience 2017 - Otimizando o front end
JS Experience 2017 - Otimizando o front endiMasters
 
Content Delivery Networks
Content Delivery NetworksContent Delivery Networks
Content Delivery NetworksWanderson Paim
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Performance na web, além do framework
Performance na web, além do frameworkPerformance na web, além do framework
Performance na web, além do frameworkAlexandre Cardoso
 
Lightning Talk: Webdev who?
Lightning Talk: Webdev who?Lightning Talk: Webdev who?
Lightning Talk: Webdev who?Leandro Nunes
 
Do MVP ao PWA, melhorando o engajamento com cliente na CVC
Do MVP ao PWA, melhorando o engajamento com cliente na CVCDo MVP ao PWA, melhorando o engajamento com cliente na CVC
Do MVP ao PWA, melhorando o engajamento com cliente na CVCJanderson Silva
 
QArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio AraújoQArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio AraújoJosé Correia
 
plano_de_projeto_controlart_final
plano_de_projeto_controlart_finalplano_de_projeto_controlart_final
plano_de_projeto_controlart_finaluserrx
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...E-Commerce Brasil
 

Semelhante a Web Vitals: LCP, FID e CLS para melhorar a experiência do usuário (20)

Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
ESP204 - Cap. 2 - Processos.pdf
ESP204 - Cap. 2 - Processos.pdfESP204 - Cap. 2 - Processos.pdf
ESP204 - Cap. 2 - Processos.pdf
 
Desenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQueryDesenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQuery
 
Afinal, o que são Single Page Applications
Afinal, o que são Single Page ApplicationsAfinal, o que são Single Page Applications
Afinal, o que são Single Page Applications
 
Desenhando aplicativos ricos para Web - Carlos Eduardo Alves (Sulclínica)
Desenhando aplicativos ricos para Web - Carlos Eduardo Alves (Sulclínica)Desenhando aplicativos ricos para Web - Carlos Eduardo Alves (Sulclínica)
Desenhando aplicativos ricos para Web - Carlos Eduardo Alves (Sulclínica)
 
JS Experience 2017 - Otimizando o front end
JS Experience 2017 - Otimizando o front endJS Experience 2017 - Otimizando o front end
JS Experience 2017 - Otimizando o front end
 
Content Delivery Networks
Content Delivery NetworksContent Delivery Networks
Content Delivery Networks
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Performance na web, além do framework
Performance na web, além do frameworkPerformance na web, além do framework
Performance na web, além do framework
 
Lightning Talk: Webdev who?
Lightning Talk: Webdev who?Lightning Talk: Webdev who?
Lightning Talk: Webdev who?
 
Do MVP ao PWA, melhorando o engajamento com cliente na CVC
Do MVP ao PWA, melhorando o engajamento com cliente na CVCDo MVP ao PWA, melhorando o engajamento com cliente na CVC
Do MVP ao PWA, melhorando o engajamento com cliente na CVC
 
Html 5 datainfo
Html 5   datainfoHtml 5   datainfo
Html 5 datainfo
 
Desenvolvimento Web
Desenvolvimento WebDesenvolvimento Web
Desenvolvimento Web
 
QArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio AraújoQArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio Araújo
 
plano_de_projeto_controlart_final
plano_de_projeto_controlart_finalplano_de_projeto_controlart_final
plano_de_projeto_controlart_final
 
Locadora web
Locadora webLocadora web
Locadora web
 
Ufs na nuvem gp 2017-2
Ufs na nuvem   gp 2017-2 Ufs na nuvem   gp 2017-2
Ufs na nuvem gp 2017-2
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
Study jam - dia 1
Study jam  - dia 1Study jam  - dia 1
Study jam - dia 1
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
 

Mais de Eduardo Pittol

Aprendizados com Cloudflare
Aprendizados com CloudflareAprendizados com Cloudflare
Aprendizados com CloudflareEduardo Pittol
 
Depurando código PHP com Docker e Xdebug - PHPRS
Depurando código PHP com Docker e Xdebug - PHPRSDepurando código PHP com Docker e Xdebug - PHPRS
Depurando código PHP com Docker e Xdebug - PHPRSEduardo Pittol
 
Dev toolkit: Ferramentas para melhorar a qualidade do seu projeto
Dev toolkit: Ferramentas para melhorar a qualidade do seu projetoDev toolkit: Ferramentas para melhorar a qualidade do seu projeto
Dev toolkit: Ferramentas para melhorar a qualidade do seu projetoEduardo Pittol
 
Mídias Sociais - Cuidados e Oportunidades
Mídias Sociais - Cuidados e OportunidadesMídias Sociais - Cuidados e Oportunidades
Mídias Sociais - Cuidados e OportunidadesEduardo Pittol
 

Mais de Eduardo Pittol (6)

Aprendizados com Cloudflare
Aprendizados com CloudflareAprendizados com Cloudflare
Aprendizados com Cloudflare
 
Depurando código PHP com Docker e Xdebug - PHPRS
Depurando código PHP com Docker e Xdebug - PHPRSDepurando código PHP com Docker e Xdebug - PHPRS
Depurando código PHP com Docker e Xdebug - PHPRS
 
Dev toolkit: Ferramentas para melhorar a qualidade do seu projeto
Dev toolkit: Ferramentas para melhorar a qualidade do seu projetoDev toolkit: Ferramentas para melhorar a qualidade do seu projeto
Dev toolkit: Ferramentas para melhorar a qualidade do seu projeto
 
WP Composer
WP ComposerWP Composer
WP Composer
 
Palestra parse
Palestra parsePalestra parse
Palestra parse
 
Mídias Sociais - Cuidados e Oportunidades
Mídias Sociais - Cuidados e OportunidadesMídias Sociais - Cuidados e Oportunidades
Mídias Sociais - Cuidados e Oportunidades
 

Web Vitals: LCP, FID e CLS para melhorar a experiência do usuário

  • 3. Grupo de trabalho sobre performance para internet da W3C ● www.w3.org/webperf/ ● Discutem métricas relacionadas à experiência do usuário dentro de uma página; ● As perguntas chaves para ter certeza de que uma métrica é relevante para usuário são: 1. Está acontecendo? (disponibilidade) 2. É útil? (conteúdo relevante) 3. É usável? (interação) 4. É agradável? (naturalidade na navegação)
  • 4. Tipos de métricas ● Percepção de carregamento de página; ● Responsividade de carregamento; ● Responsividade em tempo de execução; ● Suavidade.
  • 5. Experiência de página ● Preocupação do Google com esse assunto já existe há anos; ● Fatores que já influenciam no ranqueamento: ○ Velocidade de carregamento ○ Segurança ○ Amigável para dispositivos móveis ○ Pop-ups intrusivos ● Em maio de 2020, Google publica um artigo que explica como ele passa a avaliar a experiência de página ○ https://developers.google.com/search/blog/2020/05/evaluating-page-exp erience
  • 6. Web Vitals ● Amigável a dispositivos móveis ● Navegação segura (sem malwares) ● HTTPS ● Pop-ups intrusivos (Intrusive interstitials) ● Core Web Vitals ○ LCP — Largest contentful paint ○ FID — First input delay ○ CLS — Cumulative layout shift
  • 7. Dados de laboratório x dados de campo ● Dimensões utilizadas para medir se uma página possui uma boa experiência de navegação; ● Dados de laboratório: Extraídas por ferramentas que fazem análise direta na página. Bom para feedback rápido; ● Dados de laboratório: Extraído a partir da navegação dos usuários com diversos perfis de conexão.
  • 9. LCP — Largest contentful paint ● Tempo em que foi renderizado a maior imagem ou bloco de texto na tela; ● Só é considerado a porção da página que o usuário está visualizando; ● Os elementos que estão cortados só é considerado a parte do elemento que está visível.
  • 10.
  • 11. LCP — Largest contentful paint ● Regras que precisam ser dada a atenção: ○ Elementos com overflow não visível só considera a parte visível; ○ No caso de imagens é considerado o tamanho que aparece na tela e não os dimensões da imagem original; ○ Margem, padding ou bordas não são considerados como parte do tamanho do elemento.
  • 12. LCP — Largest contentful paint ● Os elementos considerados como LCP: ○ <img> ○ <image> dentro de um elemento <svg> ○ <video> ○ Elementos com imagem de fundo definida via CSS, com exceção de gradientes ○ Elementos considerados block-level; ■ https://developer.mozilla.org/pt-BR/docs/Web/HTML/Elementos_blo ck-level
  • 13. LCP — Largest contentful paint ● Fatores que influenciam para uma métrica baixa: ○ Respostas lentas do servidor; ○ Bloqueio de renderização de JavaScript e CSS; ○ Tempo de carregamento de recursos; ○ Renderização no lado do cliente.
  • 14. FID — First input delay ● Tempo entre fazer a primeira interação com a página e ela ser executada; ● O JavaScript funciona sobre uma única thread, ou seja, ele vai executar uma ação por vez sem criar concorrência no processador. Quando uma ação é disparada, ele precisa primeiro processar o que ele está executando até liberar a thread para que a ação seja processada.
  • 15.
  • 16. FID — First input delay ● Fatores que influenciam para uma métrica baixa: ○ Grande quantidade de arquivos JavaScript sendo carregados; ○ Código JavaScript não otimizados.
  • 17. CLS — Cumulative layout shift ● Soma de todos os deslocamentos individuais inesperados durante a vida útil da página; ● Quando maior o deslocamento, maior o CLS.
  • 18.
  • 19. CLS — Cumulative layout shift ● Fórmula do CLS: CLS = fração de impacto * fração de distância ● Fração de impacto: união da área do elemento no frame `n` com a área do elemento no frame `n + 1`. ○ Se um elemento ocupa 50% da tela e é deslocado no próximo frame 25% para baixo, a área da união dos dois elementos será de 75% da janela de exibição. A fração de impacto nesse caso é 0.75. ● Fração de distância: distância de deslocamento do elemento instável entre os dois frames. ○ No mesmo caso da fração de impacto, onde o elemento se deslocou 25% na janela de exibição. A fração de distância é 0.25.
  • 20. CLS — Cumulative layout shift ● Fração de impacto: 0.75 ● Fração de distância: 0.25 ● CLS = fração de impacto * fração de distância ● CLS = 0.75 * 0.25 ● CLS = 0.1875
  • 22. Entrega de recursos ● CDN; ● Minificação de CSS e JS; ● Cache; ● <link rel=”preconnect” />; ● <link rel="preload" />; ● Compressão (brotli ou gzip);
  • 23. Imagens ● Servir imagens otimizadas para internet; ● Entregar imagens no tamanho correto; ● Utilizar lazy load para imagens fora da primeira dobra; ● Disponibilizar tamanho via atributos HTML ou CSS.
  • 24. JavaScript ● Executar o mínimo possível de JavaScript; ● Adiar JavaScript não utilizado.
  • 25. CSS ● Extrair CSS crítico; ● Adiar carregamento de CSS não-crítico; ● Carregar webfonts utilizando font-weight: swap.
  • 28. Chrome User Experience Report [field data] developers.google.com/web/tools/chrome-user-experience-report
  • 32. Web Vitals (Extensão Google Chrome) chrome.google.com/webstore/detail/web-vitals/ahfhijdlegdabablpippeagghigmibma
  • 35. Escolham os melhores para seu contexto ● LiteSpeed Cache ● W3 Total Cache ● WP Super Cache ● Breeze ● WP Fastest Cache ● WP-Optimize ● WP-Sweep ● Clearfy ● Autoptimize ● EWWW Image Optimizer ● Imagify ● Hummingbird
  • 36. WordPress Core Web Vitals Lab github.com/aztecweb/wordpress-core-web-vitals-lab