Session Replay

Reconstructed visitor sessions with frustration markers on the timeline, so you can jump to the moment something went wrong instead of watching from the top.

Numbers tell you a page underperformed. A replay tells you a shopper tapped the variant picker four times, scrolled up to re-read the shipping line, scrolled back down, and closed the tab. The second one is what changes a decision.

DynoWeb records nothing resembling video. The tracker captures a compact stream of DOM mutations and interaction events, and the player reconstructs the page from that stream — which is why recording is cheap enough to leave on and why replays load quickly.

Session replay player mid-session with timeline markers.

What you see

  • The page as the visitor saw it — reconstructed markup and styles, not a screenshot slideshow
  • Cursor movement and clicks, including the ones that did nothing
  • Scroll behaviour — where they moved fast, where they stopped
  • Form interaction — which fields were entered, which were skipped, where they abandoned. No field values are captured
  • Navigation across pages within the session, as one continuous replay
  • Frustration markers on the timeline — rage clicks, dead clicks and error clicks are pinned so you can skip straight to them

The markers are the feature. Watching a four-minute session from the start is a tax nobody pays twice; jumping to the three rage clicks at 01:12 is a habit.

Recording controls

Settings → Replays. These exist so recording volume stays proportional to what you will actually watch.

ControlEffectWhy you'd use it
Enable replaysMaster switchOff entirely if you only want aggregate data
Frustrated sessions onlyRecords a session only if it produced frustration signalsEvery replay in the list is one where something went wrong — highest insight per minute watched
Duration limitsMinimum and maximum session lengthSkips one-second bounces and pathological forty-minute idle tabs
Daily recording capCeiling on sessions recorded per dayKeeps a traffic spike from consuming the day's recording in an hour
RetentionHow long recordings are keptBounded by your plan; see below

Frustrated-sessions-only is the setting most stores should use

On a store doing thousands of sessions a month, the unfiltered replay list is mostly people who bought without difficulty or left in four seconds. Filtering to frustration turns the list into a queue of problems.

Retention is what plans buy

Recording and watching replays are available on every plan, including Free. What a higher plan buys is history:

PlanRetention
Free30 days
Growth90 days
Pro180 days
Custom365 days

Recordings past your window are cleaned up automatically. Recent history is never quietly removed to create upgrade pressure — the retention window is the whole mechanic.

Long retention is not a vanity number. It is what lets you answer "was this already broken before the March theme update?", which is the question that usually settles an argument about what to roll back.

Getting to a replay

Four entry points, because the useful replay is almost never the one at the top of a chronological list:

Replays index

The full list, filtered by date, device, country, frustration level or revenue.

From a heatmap

Drill from a frustration hotspot into the sessions that produced it.

From Page Explorer

Start at the page with the bad metric, then watch sessions on that page.

From Event Explorer

Start at the signal type — 'show me dead clicks' — and land on the session where it happened.

The replays index itself follows Shopify's native index pattern: filters, tabs, sort, bulk actions and pagination, so it behaves like every other list surface in the Shopify admin rather than a bespoke table.

Replay index filtered to friction sessions.

The investigation flow

Replay is step four of a funnel that starts wide:

  1. Dashboard — rage clicks are up 40% week over week
  2. Page Explorer — 320 of them are on the product page, 50 on the homepage
  3. Event Explorer — on the product page they concentrate on one selector
  4. Session Replay — and here is a shopper tapping that selector six times, shaking the cursor, and leaving

That is the sequence a CRO consultant runs. The difference is the elapsed time.

Privacy

  • No video is captured, and no field values are recorded from forms
  • Data is anonymised; no personally identifying information is collected
  • Geolocation is anonymised to country level
  • Bot and crawler sessions are filtered before ingestion, so they never appear in the list

Limits

  • Replay shows behaviour, not intent. You are inferring the reason from what the shopper did. Watch three sessions with the same symptom before you commit to a story about why.
  • Sampling is a real constraint. With frustrated sessions only on, or a daily cap in force, the list is not a random sample of your traffic — it is deliberately biased toward problems. That is what you want for diagnosis and wrong for estimating how common something is. Use the aggregate rollups for frequency.
  • Reconstruction is not pixel-perfect. Assets that have since changed or been removed, and heavily dynamic third-party embeds, can replay imperfectly.
  • A session that ends is not necessarily a session that failed. Plenty of people leave to think about it and come back later on another device, where DynoWeb sees a new session.

Marketing overview: /features/session-replay.