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.
| Rating | Threshold |
|---|---|
| Good | ≤ 2.5 seconds |
| Needs Improvement | 2.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.
| Rating | Threshold |
|---|---|
| Good | ≤ 0.1 |
| Needs Improvement | 0.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.
| Rating | Threshold |
|---|---|
| Good | ≤ 200 ms |
| Needs Improvement | 200 - 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.
| Rating | Threshold |
|---|---|
| Good | ≤ 800 ms |
| Needs Improvement | 800 - 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.
| Rating | Threshold |
|---|---|
| Good | ≤ 1.8 seconds |
| Needs Improvement | 1.8 - 3.0 seconds |
| Poor | > 3.0 seconds |
Using the RUM Dashboard
The RUM section in your domain has nine views:
| Page | What it shows |
|---|---|
| Overview | All Core Web Vitals at a glance, with trends, geographic heatmap, and a per-page table |
| LCP | Dedicated Largest Contentful Paint analysis with LCP-resource breakdown |
| INP | Interaction to Next Paint with input-delay / processing / presentation subparts |
| CLS | Cumulative Layout Shift with Above the Fold vs. Below the Fold toggle |
| TTFB | Time to First Byte with per-page and per-country breakdown |
| FCP | First Contentful Paint with per-page and per-country breakdown |
| Errors | JavaScript and resource errors grouped by message |
| Engagement | Engagement metrics correlated with performance |
| Page Views | Pageviews, 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 visitorsdata-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
- Optimize and compress images
- Use a CDN for static assets
- Preload critical resources
- Minimize render-blocking resources
Improving CLS
- Always include width/height on images
- Reserve space for ads and embeds
- Avoid inserting content above existing content
- Use CSS containment
Improving INP
- Break up long JavaScript tasks
- Use web workers for heavy processing
- Debounce input handlers
- Minimize main thread work
Improving TTFB
- Use a CDN
- Enable caching
- Optimize database queries
- Use HTTP/2 or HTTP/3