Session Replay

Session replay is the qualitative half of behavioral analytics — anonymized recordings of real sessions that show you why visitors hesitate, rage-click, or bail.
Session Replay
Anonymized recordings of real user sessions — clicks, scrolls, hovers, rage taps — used to diagnose friction analytics alone can't explain.
Session replay captures the DOM-level interactions of a real visit and plays them back as a video-like timeline. You see mouse paths, scroll depth, form interactions, hesitations, and rage clicks — but not the pixels of the underlying page, which are reconstructed from the markup so personal data stays masked.
It sits inside the broader category of behavioral analytics as the qualitative complement to aggregate dashboards. GA4 tells you 38% drop off at checkout step 2; replay shows you why — a shipping field that rejects valid postcodes, a CTA hidden below the fold on iPhone SE, a coupon error that doesn't render.
Replays are most valuable on pages where aggregate metrics flag a problem but don't explain it: a checkout step with abnormal drop-off, a product page with high scroll depth but low add-to-cart rate, or a landing page whose bounce rate jumped after a deploy. You watch enough sessions to see the pattern, then form a hypothesis.
What replay is not: a population study. Ten sessions is a qualitative sample, not a statistic. Pair it with funnel data and heatmaps from your behavioral analytics stack — the recordings tell you what to test, the analytics confirm whether the fix moved the needle.
Friction Score = (Rage Clicks + Dead Clicks + Error Clicks) / Total Sessions × 100
Rage Clicks
Rage clicks
Three or more clicks within 1 second on the same element — a frustration signal.
Dead Clicks
Dead clicks
Clicks on non-interactive elements the user expected to respond (e.g. a decorative icon).
Error Clicks
Error clicks
Clicks followed within 2 seconds by a JS error or 4xx/5xx request.
Total Sessions
Total sessions
Recorded sessions over the same window.
A Shopify apparel store reviews 2,400 recorded sessions over a week on its product detail template.
Rage clicks: 96
Dead clicks: 144
Error clicks: 24
Total sessions: 2400
→ 11.0% friction score
Anything above ~6% on a PDP warrants investigation. Watching ten of those rage-click sessions reveals the size selector swallows the first tap on mobile Safari — a fix worth A/B testing.
Sampling matters. Recording 100% of sessions is wasteful and slows the page on low-end Android; most tools default to 10-30% sampling and let you boost coverage on high-value funnels like checkout. Filter your replay library by event (rage click, form error, exit on step 3) rather than scrolling a chronological list — you'll find the signal in minutes instead of hours.
Typical friction signal rates by page type (Shopify / WooCommerce stores, €1M-€15M revenue)
| Page type | Rage click rate | Dead click rate | Avg. friction score |
|---|---|---|---|
| Homepage | 1.2-2.5% | 3-5% | 5-7% |
| Collection / category | 1.5-3% | 4-6% | 6-9% |
| Product detail (PDP) | 2-4% | 5-8% | 7-11% |
| Cart | 3-5% | 4-7% | 8-12% |
| Checkout step 1 | 4-7% | 3-5% | 9-13% |
| Checkout step 2-3 | 5-9% | 2-4% | 10-15% |
Friction climbs as users move down-funnel, which is normal — frustration concentrates where stakes are highest. Use these ranges as a sniff test: a PDP scoring 18% is genuinely broken; checkout step 3 scoring 11% is roughly on par. Watch sessions where the score sits two points above your category band, not the median ones.
Session replay FAQ
It can be, with the right setup. Mask all input fields by default, exclude payment and login pages, honor cookie consent before recording starts, and document replay in your privacy policy. Most modern tools mask PII automatically — but you're still the controller, so audit what's actually captured before going live.
Heatmaps aggregate clicks and scrolls across thousands of sessions into one image — great for spotting which CTA gets attention. Replay shows one user's full journey in sequence, including hesitations and errors. You use heatmaps to find the page worth investigating and replay to understand why it underperforms.
For a specific friction question (e.g. why does checkout step 2 drop 40%?), 10-15 filtered sessions usually surface the pattern. For exploratory review of a new template, budget 30-50. Past that you're getting diminishing returns — switch to quantitative validation.
A well-built recorder adds 15-40 KB and runs asynchronously, so Core Web Vitals impact is usually under 50ms on LCP. Heavy tools that record every DOM mutation at 60fps can hurt low-end mobile though. Sample at 20-30% and exclude non-critical paths to stay safe.
Yes, and that's the highest-value cohort. Filter by exit event (exited cart, abandoned checkout, hit a 404) and watch only those. Pair with the converted-cohort baseline to see what the bailers experienced that buyers didn't.
GA4 tells you the what and where (38% drop at checkout step 2). Replay tells you the why (postcode validation rejects valid UK formats on mobile). Most teams jump from a GA4 funnel anomaly straight into replays filtered by that step — the two tools answer adjacent questions.
A rage click is three or more rapid clicks on the same element within roughly a second — a clear frustration signal that something looked clickable but didn't respond. It's the single most actionable replay event because it points to a specific broken interaction, not a vague drop-off.
Rarely. 100% sampling costs storage, slows the page, and buries the signal under noise. 20-30% global with 100% on checkout is a sensible default for most stores under €15M revenue. Boost selectively when you're actively diagnosing a funnel.
Only if you explicitly unmask a field — and you almost never should. Inputs are masked by default in any compliant tool, replaced by asterisks or block characters at the DOM level so the raw text never leaves the browser. Email, postcode, and payment fields stay masked even if you unmask others.
30-90 days covers most CRO use cases — long enough to compare against a release, short enough to keep storage and privacy exposure modest. Tie retention to a documented business need; indefinite retention is hard to defend under GDPR and gives you data you'll never watch anyway.
Get an AI expert review of your site
Paste your URL — Metricuno's AI runs the same heuristic checks a senior CRO consultant would, scoring your page and prioritising the fixes that'll move conversion fastest.