Tempo de leitura: 5 minutos

A métrica CLS (Cumulative Layout Shift) é fundamental para garantir uma experiência de usuário estável e previsível em seu site, evitando que elementos se movam inesperadamente durante o carregamento da página.

Compreender o CLS não apenas melhora a experiência do usuário, mas também impacta diretamente o desempenho do seu site nos algoritmos de busca, já que esta métrica faz parte dos Core Web Vitals do Google, influenciando o ranqueamento nas buscas.

O que é o Cumulative Layout Shift (CLS) e por que é importante?

O Cumulative Layout Shift (CLS) é uma métrica de experiência do usuário que mede a estabilidade visual de uma página durante seu carregamento. Em termos simples, ele quantifica quanto os elementos visíveis da página se movem inesperadamente enquanto a página está sendo carregada.

Quando você visita um site e, de repente, um botão se move no momento em que você ia clicar nele, ou um texto desloca-se para baixo porque uma imagem foi carregada, isso é um layout shift (deslocamento de layout). Esses deslocamentos são frustrantes e podem levar a cliques acidentais ou perda de contexto.

O CLS é calculado multiplicando a fração da tela afetada pelo deslocamento pela distância que os elementos se moveram, e então somando todos os deslocamentos que ocorrem durante a vida útil da página.

“O CLS é uma das métricas mais importantes para garantir uma boa experiência do usuário. Quando elementos se movem inesperadamente, os usuários podem clicar no lugar errado ou perder sua posição na leitura, o que causa frustração e aumenta a taxa de rejeição.” – Addy Osmani, Engenheiro de Software do Google Chrome

CLS igual a 0: É possível e desejável?

Um CLS igual a 0 significa que absolutamente nenhum elemento visível da página se move de forma inesperada durante todo o carregamento e interação do usuário. Embora seja tecnicamente possível alcançar um CLS de 0, é importante entender algumas nuances:

  • É o ideal teórico: Um CLS de 0 representa a perfeição na estabilidade visual, onde nada se move sem a interação direta do usuário.
  • Raramente necessário: O Google considera um CLS abaixo de 0.1 como “bom”, o que permite pequenos deslocamentos imperceptíveis ou não disruptivos.
  • Pode ser contraproducente: Perseguir um CLS de exatamente 0 pode levar a soluções que prejudicam outros aspectos da experiência, como velocidade de carregamento.

Quando o CLS de 0 é realmente importante?

Existem cenários onde buscar um CLS próximo de 0 é particularmente importante:

  • Sites de e-commerce onde cliques acidentais podem levar a compras não intencionais
  • Interfaces que exigem precisão, como editores de texto ou ferramentas de design
  • Aplicações críticas onde erros de interação podem ter consequências sérias
  • Sites com alto volume de interações de usuário em elementos que poderiam se deslocar

Como medir o CLS do seu site

Antes de otimizar, você precisa saber onde está. Existem várias ferramentas que podem ajudar a medir o CLS do seu site:

  • PageSpeed Insights: Ferramenta oficial do Google que fornece métricas de Core Web Vitals, incluindo CLS.
  • Lighthouse: Disponível no Chrome DevTools, oferece auditorias detalhadas de performance.
  • Chrome User Experience Report: Fornece dados de experiência do usuário real.
  • Web Vitals Extension: Extensão do Chrome que mostra métricas em tempo real.
  • Search Console: Mostra relatórios de Core Web Vitals para suas páginas indexadas.

Interpretando os resultados do CLS

Segundo as diretrizes do Google:

  • Bom: CLS menor que 0.1
  • Precisa de melhoria: CLS entre 0.1 e 0.25
  • Ruim: CLS acima de 0.25

“Nem todo layout shift é ruim. De fato, muitos sites dinâmicos naturalmente mudam seu layout como parte da interação do usuário. Essas mudanças são esperadas e não contam negativamente para o CLS quando ocorrem dentro de 500ms da interação do usuário.” – Philip Walton, Engenheiro do Google e especialista em Web Vitals

Principais causas de CLS alto e como corrigi-las

Para alcançar um CLS próximo de 0, você precisa identificar e corrigir as causas comuns de deslocamentos de layout:

1. Imagens sem dimensões definidas

Quando imagens carregam sem dimensões especificadas, o navegador não sabe quanto espaço reservar para elas, causando deslocamentos quando finalmente são carregadas.

Solução: Sempre especifique width e height para todas as imagens, ou use aspect-ratio em CSS.

Descrição da imagem

2. Anúncios, embeds e iframes sem espaço reservado

Elementos de terceiros como anúncios frequentemente causam os piores deslocamentos de layout.

Solução: Reserve espaço para esses elementos com min-height e width, ou use um contêiner com proporções fixas.

.ad-container {
min-height: 250px;
width: 100%;
background: #f1f1f1;
}

3. Conteúdo injetado dinamicamente

Conteúdo que é adicionado à página após o carregamento inicial pode empurrar outros elementos para baixo.

Solução: Reserve espaço para conteúdo dinâmico ou carregue-o acima do conteúdo visível inicial.

4. Fontes web que causam FOIT/FOUT

Fontes personalizadas podem causar Flash of Invisible Text (FOIT) ou Flash of Unstyled Text (FOUT) quando carregam.

Solução: Use font-display: swap e pré-carregue fontes críticas:

5. Animações que causam layout shifts

Animações que modificam propriedades como width, height, ou position podem causar deslocamentos.

Solução: Anime apenas propriedades de transform e opacity, que não causam recálculo de layout.

Estratégias avançadas para minimizar o CLS

Para chegar o mais próximo possível de um CLS de 0, considere estas estratégias avançadas:

  • Skeleton screens: Use placeholders que imitam o layout final enquanto o conteúdo carrega.
  • Pré-cálculo de alturas: Para conteúdo dinâmico, calcule e reserve espaço com base em estimativas de tamanho.
  • Carregamento preguiçoso inteligente: Implemente lazy loading apenas para conteúdo abaixo da dobra, com dimensões pré-definidas.
  • Priorização de recursos críticos: Carregue primeiro os recursos que afetam o layout visível inicial.
  • Contenção de layout: Use contain: layout para isolar partes da página que podem sofrer mudanças.

Equilibrando CLS com outras métricas de performance

É importante lembrar que o CLS é apenas uma das métricas de Core Web Vitals. Buscar um CLS de 0 não deve comprometer outras métricas importantes:

  • Largest Contentful Paint (LCP): Mede o tempo de carregamento do maior conteúdo visível.
  • First Input Delay (FID): Mede a responsividade da página à primeira interação do usuário.
  • Time to First Byte (TTFB): Mede a velocidade inicial de resposta do servidor.

O ideal é encontrar um equilíbrio que otimize todas as métricas relevantes para seu caso de uso específico.

Conclusão: O CLS perfeito é possível?

Embora um CLS de exatamente 0 seja tecnicamente possível, o mais importante é garantir que sua página tenha um CLS abaixo de 0.1, considerado “bom” pelos padrões do Google. Isso proporciona uma experiência estável para os usuários sem sacrificar outros aspectos importantes do desempenho.

Lembre-se que o objetivo final não é atingir métricas perfeitas por si só, mas proporcionar a melhor experiência possível para seus usuários. Um site com CLS baixo é mais agradável de usar, reduz frustrações e aumenta a confiança dos visitantes.

Ao implementar as técnicas discutidas neste artigo, você estará no caminho certo para criar uma experiência web estável e previsível, beneficiando tanto seus usuários quanto o desempenho do seu site nos mecanismos de busca.

Você já conseguiu implementar alguma dessas técnicas para reduzir o CLS no seu site? Quais foram os maiores desafios que encontrou ao tentar melhorar a estabilidade visual da sua página?

Avatar de Rafael P.

Perguntas Frequentes

O que exatamente é Cumulative Layout Shift (CLS)?

Cumulative Layout Shift (CLS) é uma métrica que mede a soma total de todas as mudanças de layout inesperadas que ocorrem durante o carregamento de uma página. Um CLS de 0 indica que não houve deslocamento de elementos, proporcionando uma experiência de usuário mais estável.

Por que o CLS é importante para a experiência do usuário?

O CLS é importante porque mudanças inesperadas de layout podem causar confusão e frustração para os usuários, levando a cliques acidentais e uma navegação ruim. Um CLS baixo ajuda a manter a estabilidade visual, melhorando a satisfação do usuário.

Como o CLS afeta o SEO e o ranqueamento do meu site?

O CLS é um dos Core Web Vitals do Google, o que significa que ele é um fator considerado para o ranqueamento nos resultados de busca. Um site com um bom desempenho em CLS tende a ter uma classificação melhor, pois o Google prioriza sites que oferecem uma boa experiência ao usuário.

Quais são as principais causas de um alto CLS?

Um alto CLS pode ser causado por imagens sem tamanho definido, fontes que não são carregadas corretamente, anúncios dinâmicos ou qualquer elemento que se mova durante o carregamento da página. É importante garantir que todos os elementos tenham espaço reservado apropriado.

Como posso melhorar o meu CLS?

Para melhorar o CLS, você pode definir tamanhos explícitos para imagens e vídeos, evitar o uso de anúncios que causem deslocamento, e garantir que os recursos de fontes sejam carregados rapidamente. Além disso, utilize ferramentas de análise de desempenho para monitorar e otimizar constantemente seu site.

O caminho até aqui

Início » Checklist » Performance e Core Web Vitals » O Cumulative Layout Shift (CLS) é igual a 0?

Somente membros podem interagir com o conteúdo.