O que é Cumulative Layout Shift (CLS) e como corrigi-lo

O guia definitivo para encontrar, medir e corrigir o Cumulative Layout Shift para o seu site

Arjen Karel Core Web Vitals Consultant
Arjen Karel - linkedin
Last update: 2026-03-27

Cumulative Layout Shift (CLS) em resumo

O Cumulative Layout Shift (CLS) é um Core Web Vitals que mede a estabilidade visual de uma página da web. Ele quantifica quanto do conteúdo visível se move inesperadamente durante o ciclo de vida da página, usando a fórmula: fração de impacto multiplicada pela fração de distância. Uma boa pontuação de CLS é inferior a 0.1, enquanto pontuações acima de 0.25 são consideradas ruins. Pelo menos 75% das visitas à página devem ter uma pontuação "boa" para passar.

O Cumulative Layout Shift (CLS) é uma métrica centrada no usuário que mede a estabilidade visual de uma página da web. Ele rastreia com que frequência e o quanto o conteúdo em uma página se move conforme ela é carregada. As mudanças de layout podem ser frustrantes para os usuários, pois podem levar a cliques acidentais, formatação de página quebrada e uma experiência geral confusa.

Desde 2020, o Cumulative Layout Shift (CLS) é uma das três métricas do Core Web Vitals. O CLS representa a parte de estabilidade visual do Core Web Vitals e determina quão estável é o conteúdo principal da página da web durante todo o seu ciclo de vida.

Em termos simples: uma boa pontuação de CLS garantirá uma experiência visualmente estável!

Como Corrigir o Cumulative Layout Shift (CLS)

O que é Cumulative Layout Shift (CLS)?

O Cumulative Layout Shift (CLS) representa a parte de "estabilidade visual" do Core Web Vitals. O Cumulative Layout Shift (CLS) mede os movimentos da página à medida que o conteúdo é renderizado ou novo conteúdo é mostrado na página. Ele calcula uma pontuação baseada em quanto da página está se movendo inesperadamente e a que distância se move. Essas mudanças de conteúdo são muito irritantes, fazendo com que você perca o seu lugar em um artigo que começou a ler ou, pior ainda, fazendo com que você clique no botão errado!

O que é uma boa pontuação de Cumulative Layout Shift (CLS)?

Uma boa pontuação de CLS é qualquer valor entre 0 e 0.1. Se a sua pontuação de CLS estiver entre 0.1 e 0.25, ela precisa de melhorias. Qualquer pontuação de CLS acima de 0.25 é considerada ruim. Para ser aprovado no Core Web Vitals para o Cumulative Layout Shift, pelo menos 75% dos seus visitantes precisam ter uma pontuação de CLS "boa".

Importância do CLS na performance web e na user experience

O Cumulative Layout Shift (CLS) está ligado tanto à performance web quanto à user experience porque impacta diretamente o quão estável e previsível uma página da web parece enquanto carrega. Eis por que isso importa:

  • UX, engajamento e percepção da marca: Mudanças de layout inesperadas interrompem o fluxo do usuário, tornando mais difícil encontrar informações, clicar em botões e interagir com a página como pretendido. Essa frustração pode levar a experiências ruins em que os usuários abandonam o site completamente. A user experience de um site reflete na marca por trás dele. Mudanças frequentes de layout podem dar a impressão de um site mal projetado ou mantido, prejudicar o engajamento do usuário e levar à diminuição da interação e, possivelmente, a taxas de rejeição mais altas.
  • Acessibilidade: Mudanças de layout podem ser particularmente prejudiciais para usuários com deficiências que dependem de tecnologias assistivas ou leitores de tela. Um layout estável garante que todos possam navegar e interagir com o site de forma eficaz.
  • SEO e Ranking de Pesquisa: Os Core Web Vitals são um fator de ranqueamento pequeno, mas significativo, no Google. O Google, junto com outros motores de busca, prioriza sites que oferecem uma boa user experience. O CLS é uma das métricas do Core Web Vitals que o Google considera ao classificar sites. Otimizar para o CLS pode dar ao seu site uma vantagem competitiva nos resultados de pesquisa.

Como o CLS é medido?

O CLS de uma página pode ser medido com a Layout Instability API. A seguir está um uso simples desta API:

new PerformanceObserver((entryList) => {
  for (const entry of entryList.getEntries()) {
    console.log('Layout shift:', entry);
  }
}).observe({type: 'layout-shift', buffered: true});

Calculando o CLS

O CLS é calculado usando uma fórmula simples, mas elegante:

CLS = sum(impact-fraction * distance-fraction)

A fração de impacto mede quanto do conteúdo visível da página foi deslocado. A fração de distância mede a que distância o conteúdo foi deslocado. Se, por exemplo, 50% da página (quanto) foi deslocado em 25% (a que distância) do viewport da página, a pontuação de CLS = 0.50 * 0.25 = 0.125.

Mudanças de layout esperadas vs. inesperadas

Nem todas as mudanças de layout são ruins, apenas aquelas que você não espera. Quando você clica em um link "carregar mais itens", por exemplo, você esperaria que mais itens aparecessem na página e que o conteúdo da página mudasse de lugar.

É por isso que apenas mudanças de layout inesperadas causarão uma contribuição para o CLS. Por exemplo, se um usuário clica em um botão e, em resposta, um novo conteúdo é adicionado à página (por exemplo, um menu suspenso), a mudança de layout será excluída do CLS. Para ser mais preciso: mudanças de layout que ocorrem dentro de 500 milissegundos após a entrada do usuário serão excluídas dos cálculos.

Sessões de mudança de layout

Quando o CLS foi introduzido pela primeira vez, alguns sites foram punidos injustamente com uma pontuação de CLS ruim. Por exemplo, uma página que implementa rolagem infinita teria o impacto do conteúdo recém-adicionado somado à pontuação total de CLS a cada nova rolagem. É por isso que o CLS agora é calculado em sessões. Cada sessão tem uma duração máxima de 5 segundos e um intervalo de 1 segundo entre as mudanças de layout. A sessão com a maior pontuação de CLS se tornará a pontuação final de CLS.

Se, por exemplo, durante a primeira sessão a pontuação de CLS for 0.095, em seguida, na próxima sessão, o CLS for 0.15, e na última sessão a pontuação de CLS for 0, a pontuação final de CLS será a mais alta das três: 0.15.

O CLS e os Core Web Vitals

O Cumulative Layout Shift (CLS) é uma métrica importante e centrada no usuário para medir a estabilidade visual. O Cumulative Layout Shift (CLS) faz parte dos Core Web Vitals junto com o Largest Contentful Paint (LCP) e o Interaction to Next Paint (INP). Juntas, essas três métricas medem a performance de carregamento, a interatividade e a estabilidade visual.

Causas comuns de CLS

A origem de todas as mudanças de layout é basicamente a mesma. Em algum momento, um elemento que estava posicionado acima de outro elemento ocupou mais ou menos espaço do que antes. Isso geralmente se deve a uma ou mais destas causas:

Imagens, vídeos e iframes sem dimensões

Mídia sem dimensões definidas é a causa número um de CLS na web. De acordo com o Web Almanac de 2025, 62% das páginas mobile têm pelo menos uma imagem sem dimensões explícitas. Para o guia completo abordando imagens, vídeos e iframes sem tamanho, a armadilha do CSS width: auto, direção de arte, incompatibilidades de imagens responsivas, lazy loading e imagens de placeholder, veja Como Imagens e Mídia Causam o Layout Shift.

Trocas de web fonts

Web fonts são baixadas da internet enquanto a página é renderizada com uma fallback font. Quando a web font chega, a diferença de tamanho entre a fallback e a fonte final causa uma mudança de layout. Apenas 11% das páginas fazem preload de web fonts, o que significa que a grande maioria da web está vulnerável ao CLS por troca de fonte (font-swap).

A correção envolve duas técnicas: fazer com que a fallback font corresponda à web font usando substituições de métricas do @font-face (size-adjust, ascent-override), e acelerar a entrega da fonte por meio de self-hosting e preload de fontes críticas. Veja o guia de identificar e corrigir para exemplos de código.

Animações e transições CSS

As animações CSS que usam propriedades que acionam o layout (layout-triggering properties), como top, left, width e height, fazem com que o navegador recalcule o layout em cada quadro, produzindo CLS. De acordo com o Web Almanac, 39% das páginas mobile têm animações não compostas (non-composited) contribuindo para o CLS. A correção é usar transform e opacity em vez disso, que rodam no compositor da GPU e nunca acionam o layout. Para o passo a passo completo, veja mudança de layout causada por transições CSS.

Anúncios, embeds e conteúdo injetado dinamicamente

Anúncios carregam tarde e empurram o conteúdo para baixo. Banners de consentimento de cookies aparecem e deslocam a página. Requisições AJAX injetam novo conteúdo sem reservar espaço. Todos esses são o mesmo problema: algo aparece na página que o navegador não conhecia no momento da renderização. A solução é sempre reservar espaço com min-height e isolar o contêiner com contain: layout style. Para embeds de terceiros como YouTube e Google Maps, o padrão facade elimina o CLS totalmente.

Mudanças de layout acionadas por rolagem (scroll)

Esta é a causa de CLS que o Lighthouse nunca detectará. Cabeçalhos que se ocultam na rolagem, efeitos parallax e barras de navegação que encolhem costumam animar top ou height, e a rolagem não é uma entrada excludente na especificação da Layout Instability. Cada mudança de layout acionada pela rolagem conta para a sua pontuação de CLS. A correção: use transform: translateY() para qualquer animação acionada por rolagem. Veja como animações acionadas por rolagem causam CLS para o passo a passo completo.

Encontrando e corrigindo problemas de CLS

O diagnóstico do CLS segue a mesma metodologia que prioriza os dados de campo (field data) como os outros Core Web Vitals. Comece com o Google Search Console ou uma ferramenta de RUM como o CoreDash para confirmar quais páginas foram afetadas e quais elementos estão se deslocando. Em seguida, use o Chrome DevTools ou a extensão Core Web Vitals Visualizer para reproduzir o problema localmente e identificar a causa raiz.

Para o processo de diagnóstico passo a passo completo, tutoriais de ferramentas, correções de código para cada causa e uma checklist de correção rápida, consulte o nosso guia dedicado: Encontrar e Corrigir Problemas de Cumulative Layout Shift (CLS).

Estudo de caso: Rakuten 24 e o impacto do CLS nos negócios

A Rakuten 24, uma grande plataforma japonesa de e-commerce, realizou um estudo detalhado sobre o impacto do Cumulative Layout Shift em suas métricas de negócios. Ao reduzir o CLS em suas páginas de produtos e categorias, a Rakuten 24 alcançou resultados notáveis:

  • Aumento de 53,37% na receita por visitante para usuários que experimentaram um CLS baixo em comparação com aqueles com CLS alto.
  • Aumento de 33,13% na taxa de conversão para a mesma coorte de CLS melhorado.
  • Queda de 15,20% na taxa de rejeição entre os visitantes com experiências de página estáveis.

Esses números demonstram que o CLS não é meramente uma métrica técnica. A instabilidade visual custa diretamente receita aos negócios ao frustrar os usuários durante sua jornada de navegação e compra. Quando os elementos mudam inesperadamente, os usuários perdem a confiança, clicam errado e abandonam as suas sessões. O estudo da Rakuten 24 confirma que investir na otimização do CLS tem um retorno sobre o investimento mensurável, especialmente para sites de e-commerce onde cada interação conta.

O que os dados reais de CLS mostram

Os dados do CoreDash mostram que o CLS é o Core Web Vitals com melhor performance, com 92,8% dos carregamentos de página no corewebvitals.io alcançando uma pontuação "boa" e praticamente nenhuma diferença entre dispositivos mobile e desktop. Tanto o desktop (92,8% bom) quanto o mobile (92,7% bom) alcançam pontuações de CLS quase perfeitas, com um p75 de 0 em ambos os tipos de dispositivos.

Isso contrasta com métricas como o LCP e o INP, onde a performance no mobile é significativamente pior do que no desktop. O CLS é excepcionalmente melhor no mobile do que no desktop em toda a web de forma geral, o que é o inverso de qualquer outro Core Web Vitals.

Globalmente, de acordo com o Web Almanac de 2025, o cenário é menos otimista:

  • 72% dos sites alcançam boas pontuações de CLS no geral, enquanto 11% têm um CLS ruim.
  • 62% das páginas mobile têm pelo menos uma imagem sem dimensões (uma queda em relação aos 66% em 2024, mas ainda um grande contribuinte para o CLS).
  • 39% das páginas mobile têm animações não compostas contribuindo para o CLS.
  • Apenas 11% das páginas fazem preload de web fonts, o que significa que a grande maioria dos sites está vulnerável a mudanças de layout por troca de fonte.

O CLS demonstrou uma melhoria global constante ano após ano, mas os dados revelam que imagens sem dimensões e animações não compostas continuam sendo as duas causas mais comuns. Resolver apenas esses dois problemas eliminaria as mudanças de layout para uma grande parte da web.

Guias relacionados

Esta página central (hub) aborda o Cumulative Layout Shift em alto nível. Para uma orientação detalhada e prática sobre como encontrar e corrigir problemas de CLS, explore estes guias dedicados:

Para uma visão geral completa de todas as métricas dos Core Web Vitals e estratégias de otimização, visite a visão geral dos Core Web Vitals ou use a Checklist Definitiva de Core Web Vitals para auditar o seu site.

About the author

Arjen Karel is a web performance consultant and the creator of CoreDash, a Real User Monitoring platform that tracks Core Web Vitals data across hundreds of sites. He also built the Core Web Vitals Visualizer Chrome extension. He has helped clients achieve passing Core Web Vitals scores on over 925,000 mobile URLs.

Fiz o CoreDash pras minhas próprias auditorias.

Menos de 1KB. Hospedado na UE. Sem banner de cookies. Agora com suporte a MCP.

Testa o CoreDash grátis

Suas Perguntas Sobre CLS Respondidas

Entendendo o CLS

O que é uma boa pontuação de CLS?

Uma boa pontuação de CLS é 0.1 ou inferior. Pontuações entre 0.1 e 0.25 precisam de melhorias, e pontuações acima de 0.25 são consideradas ruins. Para ser aprovado na avaliação dos Core Web Vitals, pelo menos 75% das suas visitas à página devem ter uma pontuação de CLS de 0.1 ou melhor. Diferentemente das métricas baseadas em tempo, como o LCP ou o INP, o CLS é uma pontuação sem unidade calculada a partir da fração de impacto e da fração de distância das mudanças de layout.

Como o CLS é calculado?

O CLS é calculado usando a fórmula: fração de impacto multiplicada pela fração de distância. A fração de impacto é a porcentagem do viewport que foi afetada pela mudança. A fração de distância é a distância que os elementos se moveram, como uma porcentagem do viewport. Por exemplo, se 50% do viewport mudou e o conteúdo se moveu 25% da altura do viewport, a pontuação de CLS para essa mudança seria 0.50 * 0.25 = 0.125. O navegador agrupa as mudanças em "janelas de sessão" (máximo de 5 segundos, com um intervalo de 1 segundo entre as mudanças), e a maior janela de sessão se torna a pontuação final de CLS.

Causas e Correções

O que causa o Cumulative Layout Shift?

As causas mais comuns de CLS são imagens e iframes sem os atributos explícitos de width e height, web fonts que são trocadas com dimensões diferentes, conteúdo injetado dinamicamente (anúncios, banners de cookies, barras promocionais), animações CSS que usam propriedades que acionam o layout (top, left, width, height em vez de transform), e scripts de terceiros de carregamento tardio. De acordo com dados globais, 62% das páginas mobile têm imagens sem tamanho e 40% têm animações não compostas, tornando essas os dois principais contribuintes para o CLS.

As mudanças de layout iniciadas pelo usuário contam para o CLS?

Não, as mudanças de layout que ocorrem dentro de 500 milissegundos após uma interação do usuário (clique, toque ou pressionamento de tecla) são excluídas da pontuação de CLS. O navegador marca essas mudanças com a flag "hadRecentInput" e não as inclui no cálculo. No entanto, se a resposta a uma interação do usuário demorar mais de 500 milissegundos, qualquer mudança de layout que ocorra após essa janela de 500ms contará para o CLS. É por isso que é importante garantir que todas as respostas interativas sejam concluídas rapidamente.

CLS e SEO

O CLS afeta os rankings de SEO?

Sim, o CLS é um dos três Core Web Vitals que o Google usa como um sinal de ranqueamento. Embora o Google tenha afirmado que os Core Web Vitals são um fator de ranqueamento relativamente pequeno em comparação com a relevância do conteúdo, eles podem ser o critério de desempate entre páginas com qualidade de conteúdo semelhante. Mais importante ainda, um CLS ruim impacta diretamente o comportamento do usuário: o estudo de caso da Rakuten 24 mostrou uma diferença de 53,37% na receita por visitante entre os usuários que experimentaram CLS baixo versus CLS alto. Melhorar o CLS beneficia tanto os seus rankings de pesquisa quanto as suas taxas de conversão.

O que é Cumulative Layout Shift (CLS) e como corrigi-loCore Web Vitals O que é Cumulative Layout Shift (CLS) e como corrigi-lo