From a failed checkout to the reason
What happens when the Pay button breaks at 10:03.
The visit is recorded The visit is picked for recording and saved as they browse.
Replay real visits click by click, with rage clicks flagged and every word and input masked before it leaves the browser. Free on every plan, next to your traffic and errors.
Loading the live dashboard
1click
From error to replayErrors in recorded sessions link to their replay, so you go from stack trace to replay in one click.
60days
Replay historyRecordings stay in your dashboard for 60 days.
0cookies
No cookies, no IPsReplays set no cookies and save no IP address with a recording.
100%
Masked in the browserEvery line of text and every input turns to asterisks before the recording leaves the page.
What happens when the Pay button breaks at 10:03.
The visit is recorded The visit is picked for recording and saved as they browse.
You see where visitors clicked, scrolled and typed. Their privacy stays intact: what they read and typed never leaves their device.
A coffee shop checkout shown twice. In the visitor's view the name, email and address are readable; in the replay every word is asterisks and the product photo is an empty box.
Decide how much to record and where. Everything else stays out of your visitors' way.
Record a small share of visits or every single one. Each visit is recorded in full or not at all.
With error capture on, visits outside the sample still save the minute or two before a JavaScript error.
Turn recording off for any page or whole section, like your admin area or account pages. Nothing is recorded there, and the player blurs that part of the visit.
The recorder is a separate file that loads only when it's needed, and uploads in small compressed batches in the background, so your pages stay fast.
Route changes in single-page apps built with React, Vue or Next.js show up as page views on the timeline, just like full page loads.
Headless browsers and test runners like Playwright and Cypress are never recorded, so your replays only show real people.
No new script and no new vendor. Replay runs on the Betterlytics script you already have.
Add one attribute to your script tag, or one option in the npm package.
Where the law requires consent, as in the EU, one line connects recording to your consent banner.
Set the sample, leave out private paths, and keep replays of sessions that hit an error.
<script async src="https://betterlytics.io/analytics.js" data-site-id="YOUR_SITE_ID" data-replay="true" data-replay-sample="20" data-disable-replay-on-urls="/admin/**" data-track-errors="true" data-replay-on-error="true"></script>import betterlytics from '@betterlytics/tracker' betterlytics.init('YOUR_SITE_ID', { enableSessionReplay: true, replaySample: 20, disableReplayOnUrls: ['/admin/**'], trackErrors: true, replayOnError: true,})// when your consent banner resolveswindow.betterlytics?.setReplayConsent?.(true) // if the visitor changes their mindwindow.betterlytics?.setReplayConsent?.(false) // no consent needed? set data-consent-replay="true" on the script tag instead
Session replay, also called session recording, saves how a page changed and what the visitor did on it, then rebuilds the visit in your dashboard so you can watch it like a video. No video is captured, and Betterlytics masks the text before anything is sent.
Yes. Session replay is included on every plan, including the free one, and recordings don't count toward your monthly events.
It depends on where your visitors are. In the EU, the GDPR and the ePrivacy Directive can require consent before you record a visit. Replays don't start until your site gives the go-ahead. That can come from the consent banner you already have, or from a script setting when you don't need consent.
All text on the page and every input value, including passwords, emails and search fields, is replaced with asterisks in the visitor's browser. Images and iframes are left out. You can block more with the rr-block class, or turn recording off for whole paths.
Not in a way your visitors will notice. The recorder loads without blocking your page, and only on visits that are recorded or when error capture is on. It samples mouse movement and scrolling instead of tracking every pixel, and sends compressed data in small batches in the background.
5% by default. Set data-replay-sample to anything from 0 to 100. Recordings under 15 seconds aren't kept, and a recording stops after 10 minutes without activity or 20 minutes in total.
The replay list shows each session's start page, duration, country, browser, device, error count and rage clicks, and you can hide short sessions. From an error, Watch replay opens the latest session that hit it.
Yes. When a visitor clicks the same spot again and again, Betterlytics flags it as a rage click. You see it on the replay's timeline and as a count in the replay list, so frustrated visitors are easy to find.
60 days. After that they're deleted for good.
It records websites and web apps, in desktop and mobile browsers. Native iOS and Android apps aren't supported. On touch screens, taps and scrolls are recorded, but there's no cursor to follow.
Betterlytics shows what visitors did, with every word masked. If you need heatmaps, console and network logs, readable text, or search by user and event, a dedicated tool will serve you better. Our PostHog comparison shows the differences feature by feature.
Turn it on in the script you already have and, where needed, connect your consent banner. Session replay is free on every plan.