Por que os dados do CrUX são diferentes dos meus dados do RUM?

Saiba por que os dados da RUM podem mostrar números diferentes das Core Web Vitals do CrUX.

O Chrome User Experience Report (CrUX, na sigla em inglês) exibe métricas que mostram como os usuários reais do Chrome interagem com destinos famosos na Web. Esses dados são coletados automaticamente pelo Chrome de usuários que ativaram o recurso e são disponibilizados com base nos critérios de qualificação do CrUX.

Por isso, os dados do CrUX estão disponíveis para milhões de sites. Muitos proprietários de sites nunca tiveram acesso aos dados de campo, e o CrUX permitiu que muitos sites vissem esse valor pela primeira vez. Como um conjunto de dados público, o CrUX também pode ser usado para análise competitiva e comparativo de mercado de métricas de experiência do usuário.

O Real User Monitoring (RUM) é semelhante ao CrUX, mas em vez de o Chrome coletar automaticamente as métricas de experiência do usuário, o código é incluído nos sites para fazer essa coleta e enviá-lo de volta a um provedor de RUM ou à solução de análise para análise posterior.

Como as duas soluções medem as métricas da experiência do usuário, é natural presumir que elas devem ser equivalentes. Pode ser confuso se notarmos diferenças. Este guia explica por que isso pode acontecer e oferece sugestões do que fazer quando os números não estiverem alinhados.

Benefícios de complementar o CrUX com uma solução RUM

O CrUX é uma ótima ferramenta para oferecer uma visão consistente de todos os sites e, como o conjunto de dados oficial do programa Core Web Vitals, os sites provavelmente vão querer ficar de olho no que está sendo mostrado. O objetivo do CrUX é oferecer uma visão geral estatisticamente relevante de milhões de sites para comparação cruzada.

No entanto, para se aprofundar na investigação de por que os dados estão mostrando os números que representam, investir em uma solução RUM completa para complementar o CrUX pode dar acesso a informações mais detalhadas do que podem ser disponibilizadas em um conjunto de dados consultável publicamente. Isso pode ajudar você a explicar e melhorar suas métricas de várias maneiras.

Análises mais detalhadas para investigar problemas

Geralmente, o CrUX pode ser usado para indicar se você tem um problema no site, mas não necessariamente onde ele está ou por quê. As soluções RUM, criadas internamente por apps como a biblioteca web-vitals ou alguns dos muitos produtos comerciais, podem ajudar a preencher essa lacuna.

Usar uma solução RUM dá a você acesso a dados muito mais refinados para todas as suas páginas e em todos os navegadores. Ele também permite dividir esses dados de maneiras que o CrUX não faz, permitindo que você detalhe e investigue áreas problemáticas do site. Eles são afetados por um segmento específico de usuários? Ou usuários que realizam determinadas ações? Quando o problema começou exatamente? Essas são perguntas muito mais fáceis de responder com os dados adicionais que uma ferramenta RUM pode fornecer.

Correlação com outras métricas de negócios

O RUM também permite que você compare diretamente as métricas de desempenho da Web com as métricas de negócios, mostrando o valor do investimento em desempenho e que outros trabalhos de desempenho devem ser priorizados. Temos vários estudos de caso com empresas que fazem essa correlação, como a Farfetch ou o The Economic Times.

Como coletar outros dados de desempenho

Uma solução RUM permite a coleta de outras métricas personalizadas, diretamente ligadas ao seu negócio específico. Um dos exemplos mais conhecidos é a métrica Tempo até o primeiro tweet do Twitter. Essas medidas específicas do site podem ser correlacionadas com as melhorias nas Core Web Vitals e as métricas de negócios.

Diferenças entre dois conjuntos de dados de campo

Um homem com um relógio sabe que horas são. Um homem com dois relógios nunca tem certeza.

Lei de Segal

Sempre que você tem duas fontes de dados, pode ser confuso e frustrante o motivo da divergência entre elas. Da mesma forma que é importante entender a diferença entre as métricas de laboratório e de campo, também pode haver diferenças entre duas fontes de dados de campo. Embora os dados sejam os mesmos em um mundo ideal, há muitas razões pelas quais eles podem ser diferentes.

Dados de laboratório versus dados de campo

Primeiro, verifique se você está analisando métricas de laboratório (sintéticas) ou de campo (RUM). Embora seja natural presumir que os produtos RUM analisam apenas dados de campo, muitos deles também oferecem um componente de laboratório.

Os dados do laboratório são muito úteis devido às condições fixas em que são medidos. Pode ser usado para monitorar alterações ou regressões inesperadas em um ambiente de produção sem o ruído de uma população de campo em constante mudança. No entanto, os dados do laboratório podem não representar a experiência real do usuário, então as métricas de campo podem mostrar resultados muito diferentes.

Populações

Os conjuntos de dados usados pelas soluções CrUX e RUM podem ser diferentes devido às diferenças na medição das visitas à página, dependendo de quais navegadores, usuários, sites e dispositivos estão sendo comparados.

Navegadores incluídos

O Chrome User Experience Report, como o nome sugere, está disponível apenas no Chrome. Embora existam muitos navegadores baseados no Chromium (Edge, Opera, Brave, entre outros) que também são compatíveis com as mesmas métricas do Chrome, considerando a base de código compartilhada do núcleo, somente os usuários do Chrome fornecem dados ao CrUX. Essa restrição também significa que os usuários do Chrome no iOS não estão incluídos, porque ele usa o mecanismo de navegador Webkit. Os WebViews do Android também não contam como "Chrome". Portanto, os dados desses usuários não são incluídos, embora as guias personalizadas do Chrome sejam incluídas.

Embora o Chrome seja um dos navegadores mais usados no mundo e, portanto, provavelmente ofereceria uma ampla representação do desempenho do seu site na maioria dos casos, avaliar que o navegador não é, de forma alguma, uma avaliação de todos os seus usuários. Isso pode explicar uma diferença principal entre RUM e CrUX. Isso vale principalmente para técnicas de desempenho que dependem de APIs ou de formatos de imagem disponíveis apenas no Chrome, por exemplo.

A falta de dados sobre o iOS também pode levar a um viés. Por exemplo, como os usuários de iOS normalmente usam dispositivos com melhor desempenho ou visitam mais países com uma infraestrutura de rede melhor, isso pode gerar métricas gerais de desempenho altas. Por outro lado, excluí-los (como o CrUX faz) pode levar a dados distorcidos entre os visitantes finais do site (exemplo de estudo de caso). Os usuários do Android normalmente têm uma gama mais ampla de dispositivos, recursos de dispositivos e mercados.

As soluções RUM podem conseguir dados de navegadores que não sejam o Chrome e, em especial, de navegadores baseados no Chromium que geralmente têm as mesmas métricas integradas (como as Core Web Vitals). Navegadores não baseados no Chromium também são medidos por soluções RUM, mas podem ter um conjunto mais limitado de métricas. Por exemplo, Cumulative Layout Shift (CLS) e Intraction to Next Paint (INP) estão atualmente disponíveis apenas em navegadores baseados no Chromium. Algumas outras métricas, como a Primeira exibição de conteúdo (FCP, na sigla em inglês), podem ser medidas de maneira bem diferente (veja mais tarde).

Usuários que aceitaram

Além de ser limitado aos usuários do Chrome, o CrUX é ainda mais restrito, medindo apenas um subconjunto de usuários do Chrome que aceitaram compartilhar esses dados durante a instalação do navegador.

Provedores de RUM também analisam apenas um subconjunto de usuários, geralmente devido a avisos de banner de cookie (pedir aos usuários que optem pela coleta de dados RUM) ou bloqueadores de rastreamento. Isso poderá afetar negativamente alguns carregamentos de página iniciais se a confirmação não for dada até a segunda página ou a subsequente, quando alguns dos recursos do site já foram armazenados em cache nas páginas anteriores. Se isso acontecer com frequência, as métricas poderão parecer mais favoráveis no RUM do que realmente são se os carregamentos iniciais de página mais lentos forem excluídos em um número suficiente de casos.

Sites incluídos

O objetivo do CrUX é apenas a geração de relatórios em sites públicos. Por isso, há outros critérios de qualificação que podem fazer com que os dados não sejam registrados no CrUX. O mais notável desses critérios é que o site deve ser publicamente descoberto e suficientemente popular para garantir um tamanho de amostra mínimo do qual se possa tirar conclusões significativas. Na maioria dos casos, isso faz com que nenhum dado fique disponível no CrUX. Essa diferença não é tão confusa em comparação com os dados disponíveis, mas é diferente, mas explica por que isso acontece.

No entanto, se páginas específicas de um site forem marcadas como indexáveis, mas outras não, você verá apenas um subconjunto de URLs no CrUX. Se a origem for publicamente detectável, todas as visualizações de página dela serão incluídas nos dados no nível da origem, mas os dados no nível do URL podem não estar disponíveis.

Dispositivo

O CrUX segmenta os dados por celular, computador e tablet. No entanto, muitas ferramentas se concentram nos dois primeiros itens e podem não expor os dados do tablet ou incluí-los em dispositivos móveis ou computadores. As características de desempenho em dispositivos móveis e computadores podem ser bem diferentes em termos de conteúdo enviado e de recursos dos dispositivos que os visualizam.

Os dados RUM permitem segmentar o tráfego de maneira semelhante, mas geralmente mostram dados consolidados por padrão. O RUM só pode permitir a segmentação por tipo de dispositivo (por exemplo, dispositivo móvel) ou navegador (por exemplo, Chrome), mas não para ver apenas o tráfego do Chrome para dispositivos móveis. Ao comparar os dados do CrUX, faça comparações usando o filtro por tipo de dispositivo e pelo navegador Chrome.

Amostragem

As soluções de RUM normalmente permitem ajustar a taxa de amostragem dos visitantes que ativaram o recurso onde os dados são coletados. Isso pode ser usado para reduzir o volume de dados que precisa ser analisado e para reduzir os custos de serviços RUM comerciais. Se esse tamanho da amostra é muito pequeno e não representa a população como um todo, as métricas resultantes também serão distorcidas de forma semelhante. Converse com seu provedor de RUM sobre o tamanho de amostragem adequado para seu site.

Agregação de dados

Por sua natureza, os dados de campo incluirão muitos pontos de dados das mesmas métricas, comparados aos dados de laboratório, o que fornecerá um valor único. Se esses dados forem agregados de maneira diferente para a geração de relatórios, pode haver outro motivo para as diferenças entre o CrUX e o RUM.

Período

Os dados do CrUX são baseados em uma janela deslizante de tráfego de 28 dias. Não é possível mudar esse período. No entanto, os dados do CrUX BigQuery são armazenados para cada mês, permitindo que você confira meses anteriores. Além disso, a API CrUX History também fornece dados históricos de um período semanal. Ambas ainda fornecem dados com base na janela deslizante de 28 dias.

Os dados RUM normalmente têm uma granularidade muito maior para ver o impacto das mudanças com mais rapidez. Ao escolher períodos menores, no entanto, os dados RUM podem ser indevidamente afetados por flutuações no tráfego e nos visitantes do site. Ao comparar os dados do RUM com os do CrUX, sempre analise o desempenho nos últimos 28 dias. Quando você estiver satisfeito com os dados semelhantes, poderá analisar outros períodos para analisar os dados RUM.

Agregação de estatísticas

As métricas do CrUX são medidas no 75o percentil, ou seja, considerando o valor que 75% das visualizações de página alcançaram. Haverá extremos nos dados de campo, e a remoção das piores experiências de 25% será aplicada a um valor que se espera que a maioria dos visitantes atinja.

Os produtos RUM geralmente oferecem um número maior de opções de como agregar as métricas, incluindo 75o percentil, mediana e outros percentis. Ao comparar os valores de RUM com os dados do CrUX, é necessário garantir que você esteja analisando os dados do 75o percentil para realizar comparações semelhantes.

Os dados do histograma no CrUX incluem todos os dados disponíveis (não apenas o 75o percentil) e mostram o número de visualizações de página em cada classificação, mas a pontuação agregada será baseada no 75o percentil. Esses dados do CrUX são exibidos em ferramentas como o PageSpeed Insights:

Captura de tela do PageSpeed Insights mostrando histogramas de carregamentos da página de classificação da LCP
O PageSpeed Insights mostra o 75o percentil e os dados de histograma do CrUX

Diferenças nas métricas

Existem muitas métricas usadas para medir o desempenho da Web. Por isso, ao comparar dois conjuntos diferentes de dados, é importante entender quais métricas estão sendo medidas e como elas estão sendo usadas.

Métricas medidas

Os dados do CrUX são o conjunto de dados oficial da iniciativa Core Web Vitals e medem principalmente essas métricas (LCP, CLS e INP), com algumas métricas adicionais para complementá-las.

As ferramentas RUM geralmente incluem essas Core Web Vitals, mas também costumam incluir muitas outras métricas. Alguns provedores de RUM também medem a experiência do usuário usando sua própria combinação de todas essas métricas, talvez para fornecer um "índice de felicidade" ou algo assim. Ao comparar os dados do RUM com o CrUX, faça uma comparação parecida.

As ferramentas que avaliam o status de aprovação/reprovação nas Core Web Vitals devem considerar a aprovação de uma página se atender aos objetivos recomendados no 75o percentil de todas as Core Web Vitals. Se o INP não estiver presente para páginas sem interações, somente a LCP e CLS precisarão ser aprovadas.

Diferenças de métricas entre navegadores

O CrUX só é medido em navegadores Chrome. Consulte os Registros de mudanças das Métricas da Web para ver como eles mudam a cada versão do Chrome.

As soluções RUM, no entanto, medirão a partir de uma variedade maior de navegadores. Os navegadores baseados no Chromium (Edge, Opera etc.) provavelmente serão semelhantes ao Chrome, a menos que ele esteja implementando novas alterações conforme indicado no registro de alterações.

Para navegadores que não sejam Chromium, as diferenças podem ser mais significativas. A Primeira exibição de conteúdo (FCP, na sigla em inglês), por exemplo, está disponível no Safari e no Firefox, mas é medida de outra forma. Isso pode levar a variações significativas nos períodos informados. Como mencionado anteriormente, se você quiser comparar o RUM com o CrUX, é melhor filtrar apenas os usuários do Chrome para permitir uma comparação.

Cronologia das métricas

As métricas das Core Web Vitals são fornecidas pelas APIs do navegador da Web, mas isso não significa que não haja potencial para diferenças nos valores informados ao usá-las. Exatamente quando a medição da métrica é realizada (no carregamento da página ou durante todo o ciclo de vida da página) pode levar a diferenças. As ferramentas RUM nem sempre medem as métricas da mesma maneira, mesmo que usem os mesmos nomes, e as mesmas APIs do navegador para acessar os dados, o que pode ser confuso.

A Maior exibição de conteúdo (LCP) é uma métrica de carregamento de página. Alguns elementos da LCP podem ser informados pela API da Web se elementos maiores forem carregados mais tarde após a renderização inicial. O elemento final da LCP é quando a página termina de carregar ou o usuário interage com a página. Portanto, podem surgir diferenças se o elemento da LCP for informado antes desses dois eventos.

Além disso, nos dados de campo, o elemento da LCP pode ser diferente, dependendo de como a página é carregada. Para um carregamento de página padrão que mostra a parte superior do conteúdo da página, o elemento da LCP dependerá principalmente do tamanho da tela. No entanto, se a página for aberta com um link fixo mais abaixo no documento ou com um link direto para um app de página única (SPA), vamos falar mais sobre isso depois, o elemento da LCP pode ser diferente.

Não presuma que os tempos de LCP fornecidos no CrUX ou no RUM são baseados no mesmo elemento que as ferramentas do laboratório. Embora o CrUX forneça o valor geral de LCP por página ou origem, o RUM pode segmentar ainda mais para identificar sessões individuais com problemas de LCP.

A CLS cumulativa de layout é medida durante toda a vida útil da página. Portanto, a CLS de carregamento de página inicial pode não representar as páginas que causam mudanças maiores depois do carregamento da página e da interação do usuário com ela. Portanto, obter o valor de CLS somente após o carregamento da página (como muitos produtos RUM fazem), portanto, retornará um resultado diferente de pegar o valor de CLS depois que o usuário terminar de acessar a página.

A métrica de capacidade de resposta da Interação com a próxima exibição (INP) exige que uma entrada seja medida e observa todas as interações de cliques, toques e teclados durante a vida útil da página, de maneira semelhante à CLS. Portanto, o valor informado do INP pode ser muito diferente se for medido depois que o usuário fizer várias interações na página.

O CrUX segue a documentação das Core Web Vitals e faz a medição delas durante todo o ciclo de vida da página. Muitos provedores de RUM optam por medir essas métricas após o carregamento da página ou em algum outro momento (por exemplo, quando uma call-to-action é clicada) por vários motivos.

Entender quando seu provedor de RUM sabe quando as Core Web Vitals são medidas é importante ao observar variações inexplicáveis entre as duas fontes de dados.

Aplicativos de página única

Os aplicativos de página única (SPA) atualizam o conteúdo da página atual, em vez de realizar a navegação tradicional no nível do navegador. Isso significa que o navegador não os vê como navegações nas páginas, apesar das experiências dos usuários. As APIs Core Web Vitals fornecidas pelo navegador não levam isso em consideração. Portanto, o CrUX não é compatível com essas navegações nas páginas. Estamos trabalhando para resolver esse problema. Consulte a postagem Testes com a medição de navegações flexíveis para mais informações.

Alguns provedores de RUM tentam detectar "navegações suaves" em SPAs, mas, se também atribuirem métricas das Core Web Vitals a essas "navegações flexíveis", isso resultará em diferenças no CrUX, porque as APIs subjacentes não oferecem suporte a isso em muitas das métricas.

Diferenças entre o CrUX e a API Web

Além das diferenças em quais visualizações de página são medidas e o que é medido, há alguns outros cenários mais complicados que você precisa conhecer que podem levar a diferenças nos dados do CrUX e do RUM. Alguns deles se devem a limitações das APIs da Web usadas para medir as métricas, e outros em que os resultados retornados pela API precisam ser tratados de forma diferente para certos cenários. A documentação das Core Web Vitals lista essas diferenças para LCP e CLS, mas as principais diferenças estão indicadas abaixo.

Cache de avanço e retorno

O CrUX considera as restaurações de cache de avanço e retorno (ou bfcache) como navegação na página, mesmo que elas não resultem em um carregamento de página tradicional. Como as APIs da Web não as tratam como um carregamento de página, as soluções RUM precisam tomar medidas adicionais para que essas páginas sejam contabilizadas se quiserem corresponder ao CrUX. Esses carregamentos de página são consideravelmente mais rápidos e podem resultar em um desempenho geral melhor informado para um site. Portanto, não incluí-los pode resultar em métricas de desempenho geral da página piores. Consulte sua solução RUM para entender se ela processa páginas restauradas pelo bfcache.

Iframes

Por motivos de segurança e privacidade, as páginas de nível superior não têm acesso ao conteúdo dentro de iframes (nem mesmo iframes de mesma origem). Isso significa que as métricas de desempenho para conteúdo só podem ser medidas pelo próprio iframe, e não pelas APIs da Web na página de enquadramento. Se o conteúdo do iframe incluir o elemento da LCP ou afetar a CLS ou o INP do usuário, ele não vai estar disponível para soluções RUM (incluindo a biblioteca Web-vitals JavaScript do Google).

No entanto, o CrUX, que é medido pelo próprio navegador Chrome e não pelo JavaScript na página, não tem essas limitações. O mesmo acontece com as métricas de iframes ao gerar relatórios sobre as Core Web Vitals. Isso reflete com mais precisão a experiência do usuário, mas pode ser outro motivo para as diferenças entre sites que usam iframes.

Um exemplo concreto de como isso pode levar a diferenças entre os dados de LCP no CrUX e no RUM é incorporado <video>. O primeiro frame pintado de um elemento <video> com reprodução automática pode contar como candidato à LCP, mas as incorporações de serviços conhecidos de streaming de vídeo podem colocar esses elementos em uma <iframe>. O CrUX pode responder por isso, porque pode acessar o conteúdo do <iframe>, mas as soluções RUM não.

Recursos de origem cruzada

A mídia LCP veiculada de outros domínios não fornece tempo de renderização na API PerformanceObserver, a menos que o cabeçalho Timing-Allow-Origin (TAO, na sigla em inglês) seja fornecido devido às restrições de segurança do navegador para reduzir os ataques de tempo. Isso volta ao tempo de carregamento do recurso, mas pode ser muito diferente de quando o conteúdo foi realmente pintado.

Isso pode levar à situação aparentemente impossível em que a LCP é informada pelas APIs da Web como anterior à FCP. Esse não é o caso, mas só aparece devido a essa restrição de segurança.

Novamente, o CrUX informa os dados de tempo de renderização das Core Web Vitals. Recomendamos que os sites limitem o conteúdo de origem cruzada que afete as Core Web Vitals e ativem o TAO sempre que possível para uma medição mais precisa. Outros recursos de origem cruzada podem estar sujeitos a restrições semelhantes.

Guias em segundo plano

Mesmo que uma página não esteja aberta em uma guia em segundo plano, ela ainda vai emitir métricas usando APIs da Web. No entanto, eles não são informados pelo CrUX porque fornecem tempos que são inconsistentes com a experiência do usuário. As soluções RUM também devem considerar ignorá-las ou, pelo menos, explicar como essas visualizações de página são tratadas.

Então, o que podemos fazer?

Mostramos por que pode haver diferenças entre os dados do CrUX e do RUM, seja devido a diferenças na metodologia usada por cada um ou devido a quais usuários e visualizações de página foram incluídos ou excluídos. O ideal é que ambos os conjuntos de dados ainda representem o desempenho do seu site para que sejam úteis, mas este artigo deve descrever por que é muito improvável que recebam exatamente os mesmos números em cada um.

Quando as diferenças forem pequenas (por exemplo, relatando uma LCP de 2 segundos versus 2,2 segundos), os dois conjuntos de dados serão úteis e geralmente podem ser considerados em sincronia aproximada.

Quando diferenças pronunciadas fazem você questionar a precisão dos dados, tente compreendê-las. Os dados do RUM podem ser filtrados para estarem mais alinhados com o CrUX (considerando apenas os usuários do Chrome, para computadores ou dispositivos móveis, com valores do 75o percentil ao longo de 28 dias) para reduzir essas diferenças?

Em caso afirmativo, e você pode fazer com que os dados correspondam de forma mais próxima, você ainda deve perguntar por que está vendo essas diferenças nos dados gerais e o que isso significa. Os usuários que não usam o Chrome estão distorcendo suas métricas de maneira positiva ou negativa? Isso fornece mais informações sobre onde você tem problemas de desempenho que podem ser priorizados?

Se os usuários que não usam o Chrome estão tendo resultados diferentes, é possível usar esse insight valioso que o RUM forneceu para otimizar de forma diferente. Por exemplo, algumas APIs não estão disponíveis em determinados navegadores, mas você pode considerar alternativas para navegadores incompatíveis para melhorar a experiência. Também é possível oferecer uma experiência diferente, mas com melhor desempenho aos usuários em redes ou dispositivos restritos. O CrUX é limitado aos dados do Chrome, mas você precisa considerar a experiência de todos os visitantes do site para priorizar as melhorias. Os dados RUM podem preencher essa lacuna.

Quando você entender os motivos dessas diferenças, ambas as ferramentas poderão ser extremamente úteis para entender as experiências do usuário no seu site e ajudar a melhorar isso, mesmo que os números não sejam idênticos. Use seus dados do RUM para complementar os dados do CrUX e se aprofundar no que o CrUX está dizendo em alto nível, segmentando seu tráfego para ajudar a identificar se são áreas específicas do seu site ou da base de usuários que precisam de atenção.

Analisar as tendências para saber se suas melhorias estão gerando os impactos positivos esperados geralmente é mais importante do que fazer com que cada número seja exatamente igual entre as duas fontes de dados. Como mencionado acima, o RUM permite que você observe diferentes períodos para saber com antecedência quais serão suas pontuações do CrUX de 28 dias, embora analisar períodos muito curtos possa levar a dados confusos, por isso o CrUX usa 28 dias.

Muitas vezes, não há respostas "certas" ou "erradas" nessas diferentes métricas. Elas simplesmente têm uma perspectiva diferente sobre os usuários e como eles estão vivendo seu site. Desde que você entenda por que essas diferenças acontecem e o que isso pode fazer para conduzir sua tomada de decisão, é mais importante atender melhor aos visitantes do seu site.

Agradecimentos

Imagem em miniatura de Steven Lelham no Unsplash (em inglês)