Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Como otimizar seu site com lighthouse e core we...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Juliana Negreiros
October 02, 2021
Technology
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Como otimizar seu site com lighthouse e core web vitals
He4rtConf 2021
Juliana Negreiros
October 02, 2021
More Decks by Juliana Negreiros
See All by Juliana Negreiros
Um guia para começar no mundo Front End
juunegreiros
0
340
Desmistificando a área de TI
juunegreiros
0
90
Introdução ao Git
juunegreiros
0
65
Webpacker e a Jornada do Heroi
juunegreiros
0
37
Como modularizar seu front-end sem depender de um framework
juunegreiros
0
93
Sopa de Letrinhas CSS | Alphabet soup CSS
juunegreiros
1
85
Pensando logicamente: introdução à lógica de programação | Thinking logically: introduction to programming logic
juunegreiros
0
71
Carreiras em TI
juunegreiros
0
63
Javascript, um menino serelepe | Javascript, a serelepe guy
juunegreiros
0
280
Other Decks in Technology
See All in Technology
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
130
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
220
LLM Internals: 언어 모델의 계보와 알고리즘 진화 (2023~2026)
inureyes
PRO
0
620
Goでデータパイプラインを作ろう
sansantech
PRO
1
500
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
FORENSIA: ローカルLLMフォレンジックハーネス
sumeshi
2
420
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
650
私がブラウザを自作したくなった理由
supurazako
1
260
Genie Codeハンズオン応用編
taka_aki
0
120
ハーレムエンジニアリング
kazuma777777
0
180
エンドユーザー視点で見る SansanのMeraki活用と内製自動化
sansantech
PRO
0
110
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
650
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
470
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The Spectacular Lies of Maps
axbom
PRO
1
920
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
390
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Transcript
Como otimizar seu site com Lighthouse e core web vitals
@juunegreiros FE na Consumer Affairs Instrutora na Alura Rails Girls
Sorocaba e SorocabaJS 2
1. Propósito
2. Web vitals
Web Vitals ➜ Iniciativa do Google ➜ Propósito de simplificação
5
2. Core Web Vitals
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
Métricas - como medir? ➜ Laboratório ➜ Campo 8
Como medir? - laboratório ➜ Lighthouse ➜ WebPageTest 9
Como medir? - campo ➜ Page Speed Insights ➜ Relatório
de principais métricas ➜ Relatório de Experiência do Usuário 10
LCP Largest Contentful Paint 11 (Carregamento)
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
LCP - Elementos ➜ <img> ➜ <image> dentro de <svg>
➜ <video> ➜ Imagem de fundo carregada com url() ➜ Elemento de bloco 13
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
15
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
Tempo de resposta do servidor 17 ➜ Otimizar o seu
servidor ➜ Usar CDN ➜ Caches ➜ Antecipar a conexão de terceiros <link rel="preconnect" href="" />
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
19
20
21
22 Source > Coverage
23 Source > Coverage
FID First Input Delay 24 (Interatividade)
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
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
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
CLS Content Layout Shifting 28 (Estabilidade Visual)
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
30
CLS - o que considera? ➜ Apenas as inesperadas ➜
Não considera transform ➜ Fração de impacto * fração de distância 31
32 Fração de impacto 75% 0.75
33 Fração de distância 25% 0.25
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
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"/>
Fontes 36 ➜ FOIT X FOUT ➜ Reduzir tamanho do
web-font ➜ Verificar quando sua fonte foi carregada ➜ Font-display: optional
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
38
39
40 É isso, obrigada!