VitalSentinel
Features

RUM Monitoring

Track Core Web Vitals and performance metrics from real users visiting your website.

Real User Monitoring (RUM) collects performance data from actual visitors to your website. Unlike synthetic tests that run in controlled environments, RUM shows you how real users experience your site across different devices, networks, and locations.

What is RUM?

RUM captures browser-based metrics as users interact with your website:

  • Performance metrics from the browser's Performance API
  • Core Web Vitals as defined by Google
  • User engagement like scroll depth and time on page
  • JavaScript errors that affect user experience

Core Web Vitals

VitalSentinel tracks all Core Web Vitals metrics:

LCP (Largest Contentful Paint)

Measures loading performance - how quickly the largest visible element loads.

RatingThreshold
Good≤ 2.5 seconds
Needs Improvement2.5 - 4.0 seconds
Poor> 4.0 seconds

Common causes of poor LCP:

  • Slow server response times
  • Render-blocking JavaScript/CSS
  • Large images without optimization
  • Client-side rendering delays

CLS (Cumulative Layout Shift)

Measures visual stability - how much the page layout shifts unexpectedly.

RatingThreshold
Good≤ 0.1
Needs Improvement0.1 - 0.25
Poor> 0.25

Common causes of poor CLS:

  • Images without dimensions
  • Ads or embeds without reserved space
  • Dynamically injected content
  • Web fonts causing text shift

INP (Interaction to Next Paint)

Measures responsiveness - how quickly the page responds to user interactions.

RatingThreshold
Good≤ 200 ms
Needs Improvement200 - 500 ms
Poor> 500 ms

Common causes of poor INP:

  • Long JavaScript tasks blocking the main thread
  • Heavy event handlers
  • Large DOM size
  • Third-party scripts

TTFB (Time to First Byte)

Measures server responsiveness - time from request to first byte of response.

RatingThreshold
Good≤ 800 ms
Needs Improvement800 - 1800 ms
Poor> 1800 ms

Common causes of poor TTFB:

  • Slow server processing
  • No CDN or caching
  • Database query delays
  • Geographic distance to server

FCP (First Contentful Paint)

Measures initial render - when the first content appears on screen.

RatingThreshold
Good≤ 1.8 seconds
Needs Improvement1.8 - 3.0 seconds
Poor> 3.0 seconds

Using the RUM Dashboard

The RUM section in your domain has nine views:

PageWhat it shows
OverviewAll Core Web Vitals at a glance, with trends, geographic heatmap, and a per-page table
LCPDedicated Largest Contentful Paint analysis with LCP-resource breakdown
INPInteraction to Next Paint with input-delay / processing / presentation subparts
CLSCumulative Layout Shift with Above the Fold vs. Below the Fold toggle
TTFBTime to First Byte with per-page and per-country breakdown
FCPFirst Contentful Paint with per-page and per-country breakdown
ErrorsJavaScript and resource errors grouped by message
EngagementEngagement metrics correlated with performance
Page ViewsPageviews, unique visitors, bounce rate, session duration per page

Overview

The RUM overview shows every Core Web Vital in one place:

  • A metric card per Web Vital (LCP, INP, CLS, FCP, TTFB) with the P75 readout, a green/amber/red status, and a distribution bar
  • A trend chart you can flip between metrics
  • A geographic heatmap showing performance by country
  • A per-page table ranking pages by their Web Vital scores

If RUM isn't installed yet, the page surfaces the install instructions instead of empty charts.

Filters

All metric pages share the same filter strip:

  • Date range – pick any window
  • Device – Mobile / Desktop
  • Percentile selector on the trend chart – P50 / P75 / P90
  • Advanced filter modal – narrow by page, country, browser, OS, or connection type

Percentile Values

VitalSentinel displays the 75th percentile (P75) value for each metric by default. This means 75% of your users experience this value or better.

The P75 is the industry standard for Core Web Vitals assessment and is what Google uses for search ranking evaluation.

Per-Metric Pages

Each Core Web Vital has its own dedicated page with:

  • Metric card – current P75 with status color and distribution bar
  • Trend chart – line + bar combo with selectable percentile
  • Geographic heatmap – same metric broken down by country
  • Pages table – pages ranked by the metric, worst first
  • Metric-specific breakdown – for example, LCP shows which resource type (image / font / script / text) was the LCP element; INP shows input-delay / processing / presentation subparts; CLS adds an Above-the-Fold / Below-the-Fold toggle

Engagement, Errors, and Page Views

The RUM section also includes three non-vitals views:

  • Engagement – performance × engagement correlations (scroll depth, bounce rate, rage clicks, time on page).
  • Errors – JavaScript and resource errors grouped by message, with browser / OS / device filters.
  • Page Views – paginated list of pages with pageview count, unique visitors, bounce rate, average session duration, and entry / exit data.

Data Interpretation

Sample Rate

By default, 100% of visitors are tracked. For high-traffic sites, you can reduce this:

  • data-sample-rate="0.5" tracks 50% of visitors
  • data-sample-rate="0.1" tracks 10% of visitors

Lower sample rates reduce data costs while maintaining statistical significance.

Mobile vs Desktop

Core Web Vitals are measured separately for mobile and desktop:

  • Mobile devices typically have slower connections
  • Mobile CPUs are less powerful
  • Google uses mobile metrics for search ranking

Geographic Variance

Performance varies by location due to:

  • Distance to servers
  • Network infrastructure quality
  • Device prevalence

Best Practices

Improving LCP

  1. Optimize and compress images
  2. Use a CDN for static assets
  3. Preload critical resources
  4. Minimize render-blocking resources

Improving CLS

  1. Always include width/height on images
  2. Reserve space for ads and embeds
  3. Avoid inserting content above existing content
  4. Use CSS containment

Improving INP

  1. Break up long JavaScript tasks
  2. Use web workers for heavy processing
  3. Debounce input handlers
  4. Minimize main thread work

Improving TTFB

  1. Use a CDN
  2. Enable caching
  3. Optimize database queries
  4. Use HTTP/2 or HTTP/3

On this page