Desde a introdução do Lighthouse, surgiram novos parâmetros relacionados à velocidade da página. Um dos parâmetros mais importantes é o First Contentful Paint (FCP). Na versão 10 do Lighthouse, em vigor a partir de junho de 2024, o impacto do FCP na pontuação geral é de 10%.

Para adotar e compreender o FCP como uma métrica, é essencial primeiro examinar a psicologia por trás dele. O conceito é semelhante ao espelhos instalados em elevadores:

Resumindo brevemente: Na primeira metade da década de 1900, o uso de elevadores em edifícios altos aumentou significativamente, mas os sistemas de elevadores eram primitivos em comparação com os dias de hoje. Por isso, surgiu a ideia de instalar espelhos nos elevadores para diminuir o tempo de permanência no elevador.

 

image-11.png
Fonte: https://web.dev/fcp/

 

Voltando ao nosso tópico: O ponto que perceptualmente faz você esperar durante o carregamento ao tentar acessar uma página é o FCP. A definição de First Contentful Paint é o tempo que leva para o primeiro texto, imagem, tela não branca, etc., ser exibido para o usuário. A unidade do FCP é segundos.

No Lighthouse, a escala de cores do FCP é determinada da seguinte forma:

  • 0-2 segundos: Verde => Rápido
  • 2-4 segundos: Laranja => Precisa de melhorias
  • Mais de 4 segundos: Vermelho => Lento

De acordo com os dados do HTTP Archive, o número de sites que podem ser considerados rápido é 25%, e 50% dos sites existentes são classificados como lentos.

 

image-10.png
Fonte: https://web.dev/first-contentful-paint/

 

O que pode ser feito para melhorar o FCP?

Reduzir o tempo de resposta do servidor

Geralmente, isso pode ser interpretado como melhorias necessárias no lado do servidor e no software. Para listar os problemas que impactam negativamente o tempo de resposta do servidor:

  • O compartilhamento do servidor, a configuração (ou seja, as configurações do servidor) e os recursos do servidor podem ser o problema. A capacidade do seu servidor deve ser aumentada de acordo com o seu tráfego. Em alguns casos, consultas de banco de dados mal escritas e componentes de software altamente complexos podem afetar seriamente o tempo de resposta do servidor.
  • A não utilização de CDN (Content Delivery Network) pode causar atrasos no acesso ao conteúdo, afetando o FCP. À medida que o tamanho do conteúdo aumenta, por exemplo, se um grande GIF animado ou vídeo for tentado ser chamado sem um CDN e o servidor principal estiver em um continente diferente, talvez seja necessário considerar soluções de CDN para resolver o FCP.

 

image-12.png
Fonte: https://gtmetrix.com/blog/first-contentful-paint-explained/

 

  • Não servir conteúdo estático com uma política de cache adequada e consistente pode sobrecarregar seu servidor desnecessariamente à medida que o número de visitantes aumenta. Por exemplo, se você não mantiver seu logotipo em cache de longo prazo enquanto o carrega em todas as páginas, você prejudicará desnecessariamente o tempo de resposta do seu servidor.
  • Redirecionamentos de página desnecessários ao acessar a página pode afetar desnecessariamente o seu FCP. 

Por exemplo, no passado, existiam configurações como esta: quando um usuário queria entrar em um site, havia um redirecionamento de HTTP para HTTPS e, se fosse móvel, um redirecionamento de HTTPS para celular (por exemplo, https:// www para https://m), e se a página fosse removida e redirecionada para outro lugar com um 301, parecia que o usuário estava sendo passado de mesa em mesa em uma repartição de finanças. Este é um exemplo extremo para melhor compreensão, mas se você redirecionar uma página para outro URL com redirecionamento 301 e depois redirecionar essa página para outra com 301, poderá estar fazendo a mesma configuração ilógica.

  • Se você não use pré-conexão ou pré-busca de DNS prefixos ao conectar-se a serviços de terceiros e conectar-se a muitos serviços de terceiros, você não estará fazendo nada benéfico para o FCP.

Reduza os recursos de bloqueio de renderização

Devo admitir que este único ponto escrito como um item de linha pode levar meses para ser resolvido.

image-13.png
Fonte: https://gtmetrix.com/eliminate-render-blocking-resources.html

Para conseguir isso, existe um método de solução onde todos JS, CSS e recursos semelhantes que bloqueiam a renderização da página são carregados após o tempo de criação da página, mas a parte inicialmente visível do site é carregada primeiro enquanto o site está carregando. No entanto, para fazer isso, todos os recursos JS, CSS e similares precisam ser examinados e os processos mais demorados precisam ser separados. Além disso, usar o mínimo possível de serviços de terceiros ajuda a otimizar o FCP.