Heatmaps
Click, frustration and scroll-depth overlays on screenshots of your real pages, with per-element counts behind every hotspot.
A heatmap answers the question a page-level metric cannot: which part of the page is the problem. Bounce rate tells you the page failed. A frustration heatmap tells you it failed at the size selector, 40% of the way down, on mobile only.
DynoWeb renders three overlays on a screenshot of the actual page, taken from your live storefront, and every coloured region is backed by a real per-element count you can open.

The three modes
Click
Intensity of clicks and taps. Hot regions are where attention converts into action. The failure this catches is a primary CTA sitting in a cold zone — the button is there, nobody presses it.
Frustration
Rage clicks, dead clicks and error clicks only. A hot region here is not engagement, it is a shopper hitting something that does not work. This is the mode that maps directly onto lost revenue.
Scroll depth
How far down the page visitors actually get, with 25% / 50% / 75% / 100% milestones. If 80% of visitors never reach the product description, they are deciding without it.
Frustration mode (rage-click data) is a Pro capability. Free and Growth get click and scroll. Custom adds the full mode set plus an event-type filter, so you can isolate a single signal — swipes only, or dead clicks only — instead of the blended frustration view.
What counts as frustration
These are the signals the frustration overlay is built from. They are captured by the tracker on every session, not sampled.
| Signal | What the tracker looks for | What it usually means |
|---|---|---|
| Rage click | Rapid repeated clicks on the same target | The element looks interactive and is not responding — or the page is too slow to acknowledge the press |
| Dead click | A click on an element with no handler and no navigation | Something looks clickable. Text styled like a link, a product image with no quick view |
| Error click | A click that threw a JavaScript error | Genuinely broken. Failed form submit, crashed add-to-cart, dead nav item. Blocks the sale outright |
| Mouse shake | Rapid cursor oscillation (desktop) | Confusion about where to go next, or a page that is not responding |
| Fat-finger tap | A tap that misses a small target (mobile) | Tap targets below the 44px minimum |
Mobile gestures — swipe left/right/up/down, pinch in/out, double tap, long press — are captured alongside these. They are diagnostic in their own right: repeated pinch-out on a product page means your text or spec table is too small to read, and repeated swipe on a static image block means shoppers expect a carousel that does not exist.
Element detail
Clicking any region on the overlay opens the element panel. This is the part that turns a picture into an argument you can act on.
- Click count and click rate — raw clicks, and clicks as a share of sessions that actually saw the element
- Rage, dead and error click counts for that element specifically
- Scroll depth at that position — how many visitors ever got far enough down to see it
- Desktop vs mobile split for the same element, which is where most surprises live
The desktop/mobile split matters more than it sounds. A CTA that performs fine overall and terribly on mobile reads as "fine" in every page-level metric, because desktop traffic carries the average. The element panel is where that comes apart.
Filters
The same filter set as the rest of the app, so a heatmap is directly comparable to the dashboard number that sent you here:
- Page — any tracked URL on your store
- Date range — today, yesterday, last 7, last 30, or custom
- Device — all, desktop, mobile, tablet
- Country / region
Filter first, then read the overlay. An unfiltered heatmap on a store with 70% mobile traffic is a mobile heatmap wearing a desktop screenshot.
Scroll depth card
Scroll mode has a dedicated summary alongside the overlay:
- Percentage of sessions reaching each of the four milestones
- Maximum depth reached
- Time to 50% — how long it takes a typical visitor to get halfway
Time-to-50% is the one people ignore and shouldn't. A page where visitors reach 50% in three seconds is being skimmed past; the same depth reached over forty seconds is being read.
Limits
- Heatmaps need traffic per page. A page with a handful of sessions produces a picture that looks confident and means nothing. Read the frustration overlay on your highest-traffic pages first.
- The overlay is drawn on a screenshot, so a theme change that moves elements makes older regions land in the wrong place until a fresh screenshot is captured. Compare like-for-like windows around a redesign, not across it.
- Blended device views mislead. See above — filter by device before drawing conclusions.
- Frustration is a symptom, not a diagnosis. A hot rage-click region tells you where to look, not what broke. That is what session replay is for.
Where it goes next
A heatmap hotspot is the start of a chain, not the end:
Session Replay
Watch the sessions that generated the hotspot and see what the shopper was actually trying to do.
AI Suggestions
Frustration clusters detected here become ranked, scored suggestions with a concrete fix attached.
Impact
After you fix it, the rage-click rate on that exact selector is the KPI Impact measures.
Marketing overview: /features/heatmaps.
How DynoWeb works
DynoWeb is one loop — find the leak, decide the fix, apply it, prove what it moved. Twelve capabilities, each one a step of that loop.
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.

