Monitoramento sintético vs RUM: quando usar cada um (e quando os dois)
As duas grandes famílias de monitoramento de performance — sintético e RUM — são complementares, não substitutas. Cada uma mente sozinha. Veja qual usar para alerta, qual para SEO, e como montar a stack certa.
- A diferença entre monitoramento sintético e RUM — em termos que importam pra quem opera loja.
- Por que cada um sozinho mente, e quando misturar os dois.
- Onde sintético ganha (alerta, regressão, baseline confiável) e onde RUM ganha (Google, p75 real).
- Stack recomendada conforme o tamanho da operação.
Quando alguém diz "estou monitorando minha loja", a próxima pergunta é "como?". As duas grandes famílias são monitoramento sintético (você simula um usuário) e RUM (você mede o usuário real). São complementares — não substitutos. Quem opera e-commerce de verdade precisa dos dois — e entender quando cada um mente.
As duas famílias
| Aspecto | Sintético | RUM (Real User Monitoring) |
|---|---|---|
| Quem mede | Robô (Chromium, Playwright, k6) | Usuário real, via JS no browser |
| Onde mede | De data center (uma ou várias regiões) | Da rede do usuário (variável) |
| Frequência | Controlada (a cada N minutos) | Toda visita coletada (sample size grande) |
| Comparabilidade | Alta (mesma máquina, mesma rede) | Baixa (cada visita é diferente) |
| Custo de captura | Servidor + execução por teste | Bytes JS + endpoint de ingest |
| Detecta loja fora? | Sim — em segundos | Não — sem visita, sem dado |
| Reflete usuário real? | Parcial | Sim, integralmente |
Quando o sintético mente
Sintético é um robô rodando em data center, com rede gigabit. Ele te diz que o LCP está em 1.2s — e o seu cliente em 4G, hora do almoço, está vendo 3.8s. Os dois números estão certos, são contextos diferentes.
- Subestima latência da última milha (a parte mais cara da rede para o usuário móvel brasileiro).
- Não captura abandono — só mede tempo até página completar; usuário real abandona antes.
- Não captura distribuição — mostra um número, não p75.
- Falso positivo de cache: a 5ª execução em 5 minutos pega cache de tudo. Por isso execuções intercaladas com cache frio importam.
Quando o RUM mente
RUM coleta usuário real — sim. Mas com vieses que valem entender:
- Sobrerrepresentação de dispositivos rápidos. Usuário com celular velho e rede ruim navega menos, gera menos amostra. O p75 do RUM pode parecer melhor que a realidade do cliente "médio".
- Não detecta queda total. Se a loja cair, ninguém visita; o RUM fica em silêncio. Você descobre por ausência de dado, não por dado.
- Não roda em fluxo crítico. Você não consegue forçar o cliente a tentar finalizar pedido. Quem testa checkout sintético sabe na hora; RUM só vê quem chegou lá.
- Dependente de JS. Se o JS quebra antes do
web-vitals.jscarregar, o dado nunca chega. Erro fatal de JS = ausência (não erro) no RUM.
Como combinar os dois
Use sintético para:
- Alerta de incidente — fora do ar, checkout quebrado, certificado inválido. Tem que ser sintético porque não depende de visita.
- Regressão de performance — comparar versão de hoje com versão de ontem, mesmo ambiente. RUM tem ruído demais para isso.
- Cobertura de fluxo crítico — login, carrinho, checkout, busca. Caminhos que clientes quebram silenciosamente.
- Comparação geográfica controlada — "p95 da home medindo de SP vs de BSB".
Use RUM para:
- Core Web Vitals reais — o que o Google usa. Sem isso, você não tem dado de SEO. [1]
- Segmentação por device, geografia, rede — você descobre que p75 de LCP em 4G está em 5s, mesmo com Wi-Fi em 1.8s.
- Funil de conversão por performance — correlacionar abandono com tempo de página.
- Detecção de "lento só para um pedaço" — uma região, um device, um operador móvel.
Stack recomendada por tamanho
Loja pequena (até R$ 1mi/ano)
- Sintético: 3–5 testes (home, categoria, produto, checkout, busca) a cada 5 minutos.
- RUM: CrUX via Search Console — grátis, suficiente.
- Custo: ~R$ 30–100/mês.
Loja média (R$ 1–20 mi/ano)
- Sintético: 10–30 testes, alertas em Discord/Slack, monitoramento de SSL/DNS/robots.
- RUM: CrUX +
web-vitals.jspróprio enviando para um endpoint simples. - Custo: ~R$ 100–500/mês.
Loja grande (R$ 20mi+/ano)
- Sintético: multi-região, integração com CI/CD para gate de deploy.
- RUM: solução paga (Datadog RUM, Akamai mPulse) com retenção longa, segmentação fina.
- APM: New Relic ou Datadog APM para correlacionar com backend.
- Custo: ~R$ 1.000–5.000/mês.
Armadilhas finais
- Não compare número sintético com número RUM diretamente. São medidas de coisas diferentes. Use sintético para tendência interna e RUM para comparar contra meta de Google.
- Cuidado com o efeito "100% verde" do sintético. Se você roda só em horário comercial, vai dar tudo verde. Rode 24/7.
- Cuidado com o efeito "média boa" do RUM. Mediana é mentirosa em performance. Use sempre p75 ou p90.
Veja também Core Web Vitals para loja virtual para a parte de métrica e os 7 alertas essenciais para a parte de alerta.
Referências
- Google Search Central. Page experience and Core Web Vitals — use field data, not lab data. developers.google.com/search/docs/appearance/page-experience
- Catchpoint. Digital Experience Monitoring (DEM) — Industry Benchmark, relatórios anuais. catchpoint.com/resources
- Akamai mPulse. Real User Monitoring — Best Practices. techdocs.akamai.com/mpulse
- Datadog. Synthetic Monitoring & RUM — Documentation. docs.datadoghq.com/synthetics · docs.datadoghq.com/real_user_monitoring
- web.dev. How to measure Core Web Vitals — field vs lab data. web.dev/articles/lab-and-field-data-differences
- HTTP Archive Web Almanac 2024. Capabilities, Performance & Privacy chapters. almanac.httparchive.org
Perguntas frequentes
- Posso usar só CrUX em vez de implementar RUM próprio?
- Para loja pequena ou média, sim. CrUX é grátis, vem do Chrome real e é o que o Google usa para SEO. A desvantagem é que tem janela de 28 dias (não real-time) e só te dá o agregado p75 — você não consegue segmentar por device ou geografia fina.
- Sintético detecta loja fora?
- Sim, em segundos. É o uso principal do sintético — porque ele dispara a teste mesmo quando não tem visita. RUM, por definição, fica em silêncio se a loja cair: ninguém visitando, ninguém reportando.
- Qual diferença entre p50 e p75 nesse contexto?
- p50 (mediana) representa o usuário "médio". p75 representa o usuário no top 25% pior — é o que Google usa em Core Web Vitals porque captura o sofrimento sem ser dominado por outliers. Sempre olhe p75 (ou p90), nunca média/mediana.
Continue lendo
Monitore tudo isso automaticamente
A Especialista Loja Virtual roda navegação real no seu site a cada poucos minutos, alerta no Discord, Slack ou e-mail e mostra screenshot do incidente. Comece grátis.
