Menu
Session evidence and privacy

What Session Replay Actually Captures—and What It Does Not

Learn how browser session replay reconstructs a visit, which DOM and interaction data it may capture, where fidelity breaks down, and what it cannot reveal.

Understand the three recording models

Session replay is not one universal implementation
ModelStored representationStrengthMain limitation
DOM and event reconstructionInitial document representation plus timestamped mutations and interactionsStructured elements, selectors, text, targeted masking, often efficientPlayer reconstructs; missing/changed data can diverge from the original
Image or frame captureScreenshots, image frames, or encoded display streamPreserves captured pixels, including some difficult visual surfacesLess structurally searchable; frame rate, storage, and visual privacy trade-offs
HybridDOM/events plus selected frames, canvas, network, console, errors, or performanceCombines structural, visual, and diagnostic evidenceLargest complexity, privacy surface, bandwidth, and failure surface

No model is universally best. Choose from the product surfaces, question, privacy constraints, required diagnostic depth, and operating cost. Do not call a hybrid product “more complete” without naming which layers are enabled and what each omits.

Three ways to store a session

DOM and events

A document representation plus timestamped mutations and interactions. Searchable and maskable element by element.

The player reconstructs the page, so missing or changed data can diverge from the original.

Image frames

Screenshots or an encoded display stream. Preserves the pixels that were captured, including difficult visual surfaces.

Not structurally searchable; frame rate, storage and visual privacy all trade off.

Hybrid

DOM and events plus selected frames, canvas, network, console or performance layers.

Largest complexity, privacy surface, bandwidth and failure surface.

No model is universally best. A hybrid product is not “more complete” until you name which layers are enabled and what each one omits.

DOM replay stores structured browser state and events; screen recording stores visual frames. Hybrid systems combine selected elements of both.

How DOM reconstruction works

  1. Recorder starts: project, Visit, time, viewport, URL policy, and configuration are established.
  2. Initial snapshot: the accessible document structure, text/attributes/styles, and approved state are serialized after masking/blocking rules.
  3. Mutations: a MutationObserver or equivalent captures selected nodes appearing, disappearing, moving, or changing.
  4. Interactions: clicks, pointer/touch samples, scroll, input changes, viewport changes, focus/visibility, routes, and custom events may be recorded.
  5. Timestamping and batching: records are ordered, compressed, and delivered in chunks; page-close delivery can be incomplete.
  6. Storage and indexing: payloads plus safe User, Company, Visit, route, and quality metadata are retained according to policy.
  7. Player: a sandbox reconstructs the initial tree, applies later records in order, and advances through captured time.

rrweb is one concrete open-source implementation of this pattern, not a universal definition of every replay product. Its design separates serialization, incremental observers, sandboxing, and playback. Plugins can add canvas or console behavior, expanding both evidence and risk.

Snapshot once, then record what changed

1

Initial snapshot

The accessible document is serialized after masking and blocking rules apply

2

Mutations and interactions

Nodes appearing, moving or changing; clicks, scroll, input, routes, viewport

3

Timestamp and batch

Ordered, compressed and delivered in chunks

Delivery at page close can be incomplete

4

Store and index

Payloads plus safe User, Company, Visit, route and quality metadata

5

Player

A sandbox rebuilds the initial tree, then applies later records in order

rrweb is one concrete implementation of this pattern, not a definition every product follows. What you watch is a reconstruction, not a recording of the screen.

DOM-based replay commonly stores an initial page representation and timestamped changes, then reconstructs the sequence in a player. Optional diagnostics are separate layers.

What replay may capture

Actual content depends on recorder, options, browser, page architecture, privacy configuration, and installed diagnostics. “Common” is not “guaranteed.”

Common, optional, and integration-defined capture
CategoryTypical statusUseful evidenceImportant limit or risk
Initial DOM and mutationsCommon in DOM replayVisible structure and state changesBlocked/inaccessible nodes and missing early state can break reconstruction
Text and attributesOften, unless transformedLabels, validation, element stateNames, IDs, tokens, account data, and temporary messages may be sensitive
Input changesConfiguration-dependentCorrections, selections, workflow progressionHigh-risk; password defaults do not cover ordinary sensitive fields
Clicks, pointer, touch, scrollCommon, often sampled/throttledInteraction sequence and visible regionDoes not prove gaze, reading, expectation, or emotion
Viewport, resize, focus, visibilityCommon or optional metadataResponsive layout and background-tab contextVisibility/focus is not attention; combined metadata can increase identifiability
Routes and history changesUsually instrumentedSPA navigation and page contextURLs can contain identifiers, queries, filenames, and tokens
Styles and assetsReferenced, copied, or transformedLayout and appearanceAssets can move, expire, require authorization, or change later
User, Company, custom eventsIntegration-definedB2B actor/account and business workflow contextStale membership, account switching, impersonation, and unsafe properties can misattribute or expose data
Console and errorsOptional/plugin/vendor-specificWarnings, stack traces, frontend failuresLogs can contain objects, credentials, paths, and customer data
Network and GraphQLOptional/vendor-specificURL/method/status/duration and selected failuresHeaders, bodies, variables, and results are a major privacy surface
PerformanceOptionalResource, navigation, rendering, and long-task contextTiming does not automatically identify the visible cause
Canvas/screenshots/media stateExplicit specialized captureOtherwise difficult visual outputStorage, compatibility, and visual privacy grow substantially

Inspect emitted browser requests and stored payloads. A configuration screen saying “mask text” does not prove values are absent from DOM attributes, URLs, metadata, console logs, network bodies, canvas frames, search indexes, or exports.

Four tiers, from commonly captured to never observable

Commonly captured

initial DOM and mutationstext and attributesclicks, pointer, scrollviewport and focusroutes and historystyles and assets

Optional, off by default

input valuesconsole and errorsnetwork and GraphQLperformance timingcanvas and media stateUser and Company context

Outside a page recorder

server stateother tabs and appsemail and chatfull device environmentpopulation prevalence

Never observable

thoughtsmotivationsatisfactionexpectationgaze and attentionconfusion

A settings screen saying “mask text” does not prove values are absent from attributes, URLs, metadata, console logs, network bodies, canvas frames, search indexes or exports. Inspect the payload that actually leaves the browser.

What a replay contains depends on implementation and configuration. Some data is commonly captured, some requires explicit support, and user intent remains unobservable.

Know what replay cannot reveal and where capture breaks

Replay normally does not reveal the user's thoughts, motivation, satisfaction, expectation, gaze, attention, off-screen conversation, complete device environment, complete backend truth, or population prevalence. It cannot prove that a person was confused or that a pattern caused an outcome.

Difficult browser surfaces need explicit testing:

  • Canvas: DOM observation sees the canvas element, not drawing pixels. Some recorders capture commands or frames; cross-origin assets can taint export paths.
  • WebGL: complex GPU state and resources require specialized capture; ordinary DOM replay is insufficient.
  • Video/audio: playback state may be captured, but media content, DRM, controls, and timing can differ.
  • Cross-origin iframes: the same-origin policy usually prevents parent-page access; coordinated instrumentation is required.
  • Same-origin iframes: potentially recordable, but lifecycle and nested-document support vary.
  • Shadow DOM: open roots may be supported; closed roots and component implementation vary.
  • Rich-text editors and third-party widgets: custom DOM, iframes, canvas, or internal state can be incomplete.
  • Native browser controls: select menus, file pickers, permission dialogs, autofill, and browser chrome are not ordinary page DOM.
  • CSS animations, fonts, and assets: changed timing, unavailable files, authentication, or later versions can alter playback.

A replay is also bounded by its start and end. It may begin after page initialization, miss batches on abrupt close, or omit activity outside the instrumented surface. Quality flags should identify missing snapshot, sequence gap, incomplete finalization, or incompatible version.

Handle SPAs, account switching, tabs, and fidelity

Single-page applications change route and state without a full reload. Instrument history/navigation and maintain a normalized Page model; DOM mutations alone do not create analytical page views. Record modal, drawer, tab, and workflow state explicitly when it matters.

B2B applications must track active Company/workspace context over time. A person can switch accounts during one browser session. Preserve when the switch occurred so later events and replay search are attributed correctly, and distinguish support impersonation from customer activity.

Treat tabs as separate contexts

Each tab or window generally has its own recorder context. A replay may show the page losing visibility or focus but not what happened in another tab, a native application, an email, or a spreadsheet. Shared Visit IDs across tabs can create ordering ambiguity unless the implementation models them explicitly.

Playback can diverge because events were lost or sampled, the initial snapshot was late, assets changed, unsupported elements were skipped, timing/order differed, the recorder/player version changed, or privacy controls removed content. Reconstruction fidelity must be treated as evidence quality, not assumed perfection.

Interpret masking, diagnostics, and timing correctly

Masking transforms content; blocking omits an element/subtree; exclusion stops or prevents recording. Each changes what evidence remains. A masked input can show that typing occurred, but length/timing may still leak limited information and the same value may appear elsewhere. Test dynamic copies, validation messages, attributes, URLs, filenames, and temporary states.

Optional console, network, error, performance, and custom-event data must have independent privacy filters and retention. Visual masking does not redact them. Prefer allowlisted fields and safe categories over raw headers or bodies.

Interpret replay time carefully

Replay time is reconstructed event time, not necessarily engaged time. Long gaps can mean reading, waiting, background tabs, idle devices, off-screen work, or missing events. Page Visibility and focus can improve context but cannot prove attention. For measured engagement, define activity rules separately and label the metric.

Screen recording and DOM replay should not be conflated. A screen-capture stream records selected pixels and may include browser/system surfaces with user permission. DOM replay records instrumented page structure/events and reconstructs them later. The privacy, fidelity, storage, and access boundaries differ.

Illustrative B2B example: two workspaces

Fictional example: an administrator configures an integration in Workspace A, opens documentation in another tab, switches to Workspace B, returns, changes credentials, tests the connection, and encounters a visible error before later success.

Separate observed evidence from unsupported claims
Replay may showReplay does not establishAdditional evidence
Workspace switch event and normalized routesWhy the administrator switchedAccount/workspace membership and interview context
Repeated credential-field edits, if safely representedWhether the credential was forgotten or unavailableSupport research; do not capture the secret
Visible error state and later successful stateThe backend root causeStructured error category and server logs
Page lost visibility while documentation was opened elsewhereWhat happened in the other tab or whether it was readNone unless separately and lawfully instrumented
Successful connection-test eventLong-term business value or satisfactionRecurring sync data and customer-confirmed outcome

An evidence-based finding is: “In this Visit, the administrator switched workspaces, returned to Integration setup, received a visible authentication error, changed the credential field, and later completed a connection test.” An unsupported finding is: “The user was confused by credentials.”

To estimate prevalence, query structured connection-test failures across the eligible population. To diagnose backend cause, inspect approved logs. To understand expectation, use research. Replay is one layer in a chain of evidence.

Use replay responsibly with account context

  1. Verify the recorder, enabled options, versions, and emitted data.
  2. Check masking, blocking, exclusion, URLs, identity, and optional diagnostics.
  3. Confirm Company, workspace, User, role, impersonation, and Visit context.
  4. Review structured route and meaningful-event data.
  5. Write exact observations with timestamps.
  6. Separate interpretations and alternatives.
  7. Name missing browser, backend, qualitative, or population evidence.
  8. Compare successful and unsuccessful Visits.
  9. Validate prevalence quantitatively and causes with the right method.
  10. Document fidelity and privacy limitations in the finding.

Hymetry connects Visits to normalized Pages, Companies, and Users so reviewers can start from a product signal and open selected session evidence. The connection supplies B2B context; it does not make a replay complete, representative, or a window into intent.

Frequently asked questions

Is session replay a video?

Often no. DOM-based replay stores structured snapshots and events, then reconstructs them. Some products use images, frames, or hybrid layers.

What does DOM-based replay record?

Typically an initial serialized document plus selected mutations, interactions, viewport/route state, and configured metadata after privacy transformations.

Does replay record passwords?

Responsible defaults commonly mask password fields, but teams must test actual payloads and exclude other sensitive fields, copies, logs, URLs, canvas, and temporary states.

Can replay capture another browser tab?

Not usually from the current page recorder. It may record visibility/focus changes, but another tab or application needs separate instrumentation.

Does replay capture network requests and console errors?

Only when an optional product/plugin layer is enabled. They are not inherent to visual/DOM replay and require separate privacy controls.

Why can playback differ from the original?

Missing events, changed assets, unsupported elements, timing/order, version incompatibility, and intentional masking/blocking can change reconstruction.

Can replay prove a user was confused?

No. It shows captured behavior and interface state. Intent or emotion is an interpretation needing qualitative evidence.

Is self-hosted replay automatically more private?

No. Collection scope, filtering, access, security, retention, deletion, backups, and operational practice determine privacy outcomes.

Sources

rrweb architecture and implementation
Browser and web-platform behavior
Optional diagnostics and Hymetry context
Additional references from the original article

About Hymetry

Hymetry is account-centric product intelligence for B2B SaaS. It helps teams understand how customer companies and the users inside them adopt and use their product.