Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Como otimizar seu site com lighthouse e core we...

Como otimizar seu site com lighthouse e core web vitals

He4rtConf 2021

Juliana Negreiros

October 02, 2021
Tweet

More Decks by Juliana Negreiros

Other Decks in Technology

Transcript

  1. Métricas - problemas ➜ Seja mais rápido pra um usuário

    do que pra outro ➜ Carregamento rápido, mas demore pra conseguir usar ➜ Rápido, mas as coisas mudam depois 7
  2. Como medir? - campo ➜ Page Speed Insights ➜ Relatório

    de principais métricas ➜ Relatório de Experiência do Usuário 10
  3. Em quanto tempo, após o início da página, o maior

    elemento da página é carregado? LCP 12 GOOD NEEDS IMPROVEMENT POOR 2.5 sec 4.0 sec
  4. LCP - Elementos ➜ <img> ➜ <image> dentro de <svg>

    ➜ <video> ➜ Imagem de fundo carregada com url() ➜ Elemento de bloco 13
  5. E como saber qual é o maior? 14 ➜ Não

    é o tamanho em bytes ➜ Ignora coisas que não estão sendo efetivamente mostradas e espaçamentos ➜ Se redimensionado, considera o menor valor ➜ Se um elemento maior carregar depois, troca o maior elemento ➜ Interação do usuário interrompe essa troca
  6. 15

  7. Causas mais comuns ➜ Tempo de resposta do servidor ➜

    JS e CSS que bloqueiam a renderização ➜ Tempos lentos de carregamentos de recurso ➜ Renderização do lado do cliente 16
  8. Tempo de resposta do servidor 17 ➜ Otimizar o seu

    servidor ➜ Usar CDN ➜ Caches ➜ Antecipar a conexão de terceiros <link rel="preconnect" href="" />
  9. CSS e JS 18 ➜ Minificar arquivo ➜ Embutir o

    que for crítico ➜ Adiar o que não for crítico - JS: async/defer - CSS: preload/onload ➜ Verifica se ta carregando na hora certa
  10. 19

  11. 20

  12. 21

  13. Depois que o usuário interagir pela primeira vez com algo,

    qual o tempo da reação do site? FID 25 GOOD NEEDS IMPROVEMENT POOR 100ms 300ms
  14. FID - o que considera? ➜ Tempo de atraso e

    não tempo de processamento ➜ Mesmo se não tiver listener do evento ➜ Só a primeira entrada ➜ Usuários tem pesos diferentes 26
  15. Dicas ➜ Reduzir código de terceiros ➜ Reduzir tempo de

    execução do JS ➜ Minimizar trabalho na thread principal ➜ Diminuir o tamanho de transferência ➜ Tudo que falei no anterior 27
  16. Qual a maior quantidade de cadeia de mudanças inesperadas de

    conteúdo que a página teve? CLS 29 GOOD NEEDS IMPROVEMENT POOR 0.1 0.25
  17. 30

  18. CLS - o que considera? ➜ Apenas as inesperadas ➜

    Não considera transform ➜ Fração de impacto * fração de distância 31
  19. Causas mais comuns 34 ➜ Alguma coisa mudou de posição

    ➜ Alguma coisa mudou de tamanho ➜ Alguma coisa entrou no DOM depois ➜ Animações mudaram algum layout
  20. Imagens 35 ➜ Usar width/height ➜ Aspect-ratio ou content-fit ➜

    Elemento pai com aspect-ratio definido ➜ Srcset para imagens dinâmicas <img srcset="a-1000.jpg 1000w, a-2000.jpg 2000w, a-3000.jpg 3000w"/>
  21. Fontes 36 ➜ FOIT X FOUT ➜ Reduzir tamanho do

    web-font ➜ Verificar quando sua fonte foi carregada ➜ Font-display: optional
  22. Outras dicas 37 ➜ Não colocar conteúdo dinâmico acima de

    conteúdo que já existe ➜ Reservar o local do anúncio antes da lib ➜ Se possível, dê preferência pro transform
  23. 38

  24. 39