Métricas de performance centradas no usuário

Todos nós sabemos da importância do desempenho. Mas, quando falamos em desempenho (e em tornar sites "rápidos"), o que queremos dizer especificamente?

A verdade é que o desempenho é relativo:

  • Um site pode ser rápido para um usuário (em uma rede rápida com um dispositivo avançado), mas lento para outro (em uma rede lenta com um dispositivo de baixo custo).
  • Dois sites podem terminar o carregamento exatamente no mesmo período, mas um deles parece carregar mais rápido (se o conteúdo for carregado progressivamente em vez de esperar até o fim para exibir algo).
  • Um site pode parecer carregar rapidamente, mas depois responder lentamente (ou não responder) à interação do usuário.

Portanto, ao falar sobre performance, é importante ser preciso e se referir a ela em termos de critérios objetivos que possam ser medidos de forma quantitativa. Esses critérios são conhecidos como metrics.

Mas só porque uma métrica é baseada em critérios objetivos e pode ser medida quantitativamente, não significa necessariamente que elas sejam úteis.

Como definir métricas

Antes, o desempenho na Web era medido com o evento load. No entanto, embora load seja um momento bem definido no ciclo de vida de uma página, esse momento não corresponde necessariamente a algo importante para o usuário.

Por exemplo, um servidor pode responder com uma página mínima que é "carregada" imediatamente, mas adia a busca de conteúdo e exibe tudo na página até alguns segundos após o disparo do evento load. Tecnicamente, essa página pode ter um tempo de carregamento rápido, mas esse tempo não corresponde à experiência real do usuário com o carregamento da página.

Nos últimos anos, os membros da equipe do Chrome, em colaboração com o W3C Web Performance Working Group, trabalharam para padronizar um conjunto de novas APIs e métricas que avaliam com mais precisão a experiência dos usuários com o desempenho de uma página da Web.

Para garantir que as métricas sejam relevantes para os usuários, nós as enquadramos em algumas perguntas-chave:

Isso está acontecendo? A navegação foi iniciada? O servidor respondeu?
É útil? O conteúdo renderizado é suficiente para que os usuários possam interagir com ele?
É utilizável? Os usuários podem interagir com a página ou ela está ocupada?
É agradável? As interações são suaves e naturais, sem atrasos e instabilidades?

Como as métricas são medidas

As métricas de desempenho geralmente são medidas de duas maneiras:

  • No laboratório:uso de ferramentas para simular o carregamento de página em um ambiente consistente e controlado
  • Em campo: com usuários reais que carregam e interagem com a página

Nenhuma dessas opções é necessariamente melhor ou pior do que a outra. Na verdade, convém usar ambas para garantir um bom desempenho.

No laboratório

Testar o desempenho no laboratório é essencial para desenvolver novos recursos. Antes de lançar os recursos para produção, é impossível medir as características de desempenho deles em usuários reais. Portanto, testá-los no laboratório antes do lançamento é a melhor maneira de evitar regressões de desempenho.

Em campo

Por outro lado, embora os testes no laboratório sejam uma representação razoável do desempenho, eles não necessariamente refletem a experiência de todos os usuários no seu site.

O desempenho de um site pode variar drasticamente com base nos recursos do dispositivo do usuário e nas condições da rede. Ele também pode variar de acordo com a interação (ou como) do usuário com a página.

Além disso, os carregamentos de página podem não ser determinísticos. Por exemplo, sites que carregam anúncios ou conteúdos personalizados podem ter características de desempenho muito diferentes de um usuário para outro. Um teste de laboratório não capturará essas diferenças.

A única maneira de saber de verdade o desempenho do seu site para os usuários é medir a performance dele à medida que os usuários carregam e interagem com ele. Esse tipo de medição é comumente chamado de monitoramento real do usuário (ou RUM).

Tipos de métricas

Há vários outros tipos de métricas relevantes para a forma como os usuários percebem a performance.

  • Velocidade de carregamento percebida:a velocidade com que uma página pode carregar e renderizar todos os elementos visuais na tela.
  • Capacidade de resposta do carregamento:a rapidez com que uma página pode carregar e executar qualquer código JavaScript necessário para que os componentes respondam rapidamente à interação do usuário.
  • Capacidade de resposta em tempo de execução:após o carregamento da página, a velocidade com que a página pode responder à interação do usuário.
  • Estabilidade visual:os elementos da página mudam de maneira que os usuários não esperam e podem interferir nas interações?
  • Suavidade:as transições e animações são renderizadas a uma taxa de frames consistente e fluem de maneira fluida de um estado para o próximo?

Considerando todos os tipos de métricas de desempenho acima, é esperado que nenhuma métrica seja suficiente para capturar todas as características de desempenho de uma página.

Métricas importantes a serem avaliadas

Essa lista inclui métricas que medem muitos dos vários aspectos do desempenho relevantes para os usuários, mas não inclui tudo. Por exemplo, a capacidade de resposta e a suavidade no momento da execução não são cobertas no momento.

Em alguns casos, novas métricas são introduzidas para cobrir áreas que estão faltando. Em outros, as melhores métricas são personalizadas especificamente para seu site.

Métricas personalizadas

As métricas de desempenho listadas acima são úteis para entender melhor as características de desempenho da maioria dos sites na Web. Elas também são boas para ter um conjunto comum de métricas para que os sites comparem a performance com a concorrência.

No entanto, às vezes um site específico é único e exige mais métricas para que você entenda o cenário completo da performance. Por exemplo, a métrica da LCP mede quando o conteúdo principal de uma página termina de carregar, mas pode haver casos em que o maior elemento não faz parte do conteúdo principal da página e, portanto, a LCP pode não ser relevante.

Para lidar com esses casos, o grupo de trabalho de desempenho da Web também padronizou APIs de nível inferior que podem ser úteis para implementar suas próprias métricas personalizadas:

Consulte o guia sobre Métricas personalizadas para saber como usar essas APIs para medir características de desempenho específicas do seu site.