Performance & CWV · Glossary · Updated Apr 2026

Real User Monitoring(RUM)

Definition

Real User Monitoring (RUM) is the practice of measuring performance and Core Web Vitals from actual user sessions rather than synthetic lab tests. CrUX is the public RUM dataset Google uses for ranking; private RUM tools (SpeedCurve, DebugBear, Datadog, New Relic) add per-session granularity, custom dimensions, and authenticated-page coverage.

Find related

Long definition

RUM instruments real browsers — every visitor, every device, every network condition — and ships the resulting metrics back to a collector. The contrast is with synthetic monitoring (Lighthouse, WebPageTest), which runs the same scripted load on the same controlled environment repeatedly. Synthetic answers "is the page fast under condition X". RUM answers "what do users actually experience".

The technical core is the browser's Performance APIs: PerformanceObserver for LCP, LayoutShift entries for CLS, and event timing entries for INP. Google publishes the web-vitals JS library as the canonical client-side instrumentation — most RUM products either bundle it or follow its conventions.

Two tiers of RUM:

  • Public RUMCrUX. Free, opt-in via Chrome, aggregated to URL/origin, 75th percentile only, ~1,000-sample threshold. The dataset Google ranks on.
  • Private RUM — SpeedCurve, DebugBear, Akamai mPulse, Datadog Browser RUM, New Relic Browser, Sentry Performance, and Cloudflare's Web Analytics RUM. Per-session data, custom dimensions (logged-in vs anonymous, A/B variant, page template), authenticated pages, and sub-1k-sample URLs.

Why both: CrUX is what Google sees, but it has gaps — no auth pages, no Safari/Firefox/Edge, no per-session detail, no custom dimensions. Private RUM fills the gaps. The mature setup uses CrUX as the ranking ground truth and private RUM for diagnosis ("which template is regressing", "is the new checkout slower than the old one for returning users").

Sampling matters. Sending every page load to a RUM endpoint costs bandwidth, server capacity, and money. Most teams sample 10-100% depending on traffic; the 75th percentile remains stable above ~1,000 samples per page-template-per-day.

Common misconceptions

  • "RUM and synthetic measure the same thing." They overlap on metric names but diverge on what they capture. Synthetic is one controlled run; RUM is millions of real, varied loads. Both are necessary — neither replaces the other.
  • "CrUX is the only RUM I need." CrUX covers the ranking question. It doesn't cover authenticated pages, doesn't segment by template or A/B variant, and doesn't help you debug a regression in the next 24 hours. Private RUM does.
  • "More RUM data means better data." Past ~1,000 samples per metric per window, the 75th percentile stabilizes. More volume helps with rare events (slowest 1%) but doesn't materially move the headline number.
  • "RUM proves causation." It correlates session attributes with performance. Whether a slow page caused a bounce or a bounce-prone user happened to land on a slow page requires controlled experiments, not RUM alone.