O guia deco para performance
Exemplo: a deco oferece componentes comoImage
que ajudam a acelerar a entrega de imagens de forma eficiente, mas nada impede que o usuário continue usando o elementoimg
.
Importante: o mais importante (a regra de ouro) é a experiência do usuário. Por vezes, o sistema pode não entregar o melhor desempenho, desde que isso seja uma decisão consciente para entregar a melhor experiência ao usuário.
Métrica | Significado | exemplo de bom valor |
---|---|---|
FCP | Tempo até a primeira exibição de conteúdo | até 1,8s |
LCP | Tempo até a maior exibição de conteúdo | até 2,5s |
TBT | Tempo crítico bloqueante até que o usuário possa interagir | 200ms |
Speed Index | Índice do desempenho da página em popular conteúdo | até 3,4 |
CLS | Índice da quantidade de mudanças de layout cumulativa | até 0,1 |
fonte (adaptado)A google agrega essas métricas em um índice entre 0 e 100, gerando a nota do pagespeed. Como é um teste executável em um ambiente em produção, ele é sujeito a variações, no entanto, uma queda abrupta no valor do pagespeed implica em olhar para o desempenho da página o quanto antes.
Métrica | Significado |
---|---|
Config LCP | Configurações de carregamento do maior conteúdo da página |
Page HTML | Tamanho da página em bytes |
Page Islands | Número de ilhas na páginas |
Islands Props | Tamanho em bytes das propriedades das ilhas |
Loaders latencies | Tempo de resposta dos loaders da página |
100 kb/s
levará 5s
para baixar uma página de
500 kb
. Isto é especialmente impactante para usuários de dispositivos móveis
operando em redes ou situações de baixa capacidade de banda.
Acesse através do site CrUX da google ou diretamente da App CrUX no seu site deco.Por ser uma métrica coletada, ela só tem significado agregado. A google categoriza os valores tipicamente mês-a-mês, por isso é mais uma métrica de acompanhamento para diagnosticar eventuais problemas de comportamento que passaram desapercebidos ao longo do tempo, ou que refletem a mudança de público da página.
sections
, até que a página volte a
ter um bom desempenho. A section
mais recentemente apagada (ou seus
loaders
ou ilhas
) pode ser a causa do problema.Dica: use os componentes deco de imagens, como<Image>
e<Picture>
, e os configure corretamente, incluindo largura e altura.
Dica: Use fontes padrão oferecidas pela google. Se preciso use fontes de pouco tamanho (dando preferência a woff/woff2).
Dica: Tente só usar o que for extritamente necessário ou substituir scripts de terceiros por versões mais leves. Se não for possível, postergue a execução do script para depois que a página já estiver carregado e o usuário estiver interagindo com ela.
Dicas:
- Use
inline loaders
para transformar dados a serem enviados a uma section e/ou ilha- Considere postergar a exibição (
Deferred
) de sections com loaders custosos- Altere as props do loader para diminuir a quantidade de dados carregados nos loaders
- Salve os loaders que são reutilizados em diferentes páginas/sections
Dicas: Prefira CSS puro para evitar ilhas. Utilizechildren
para passar um JSX para dentro de uma ilha. Reduza o máximo possível o escopo da ilha (ex.: prefira um botão como ilha, do que todo umform
).