Hardik Dewra

3 min read

What heatmaps and session recordings actually tell you

Scroll maps, rage clicks and dead clicks find the blockers your analytics miss. How to sample, segment and stay on the right side of privacy law.

Heatmaps show you where people scrolled, clicked and spent their time. Session recordings show you what happened in between. Use heatmaps and session recordings well and they hand you ideas your analytics never will: which section stops the scroll, which non-clickable thing people keep tapping, and where a visitor gives up on your form.

Three maps, three different questions

A scroll map shows how far down the page people get. It is the fastest way to learn that most of your visitors never reach the pricing section. A click map shows what they touch, including things that are not links. An attention map, sometimes called an area map, shows where the time goes. Each one answers a different question, so pick your question first. Opening all three and hoping something jumps out is how people waste an afternoon and change a button colour.

The frustration signals are the useful part

Modern tools tag behaviour as well as position, and the behaviour tags hold the real findings. Microsoft Clarity flags a rage click when someone clicks repeatedly in a clustered area in rapid succession. That usually means they expected the element to be interactive. A dead click is a click on an element that gives no feedback in a reasonable time, so no visual change and no navigation. A quick back is a click away from the page followed by a fast return, which means the destination let them down. Excessive scrolling means the session had far more vertical scrolling than the norm.

Watch recordings in batches, with a filter on

Watching random sessions is entertainment. Filter first, then watch ten in a row and take notes in one document. Good filters: people who started the form and never submitted, sessions with a rage click in them, sessions from a single ad campaign, mobile sessions only. Ten filtered recordings from one segment will show you the same two or three blockers again and again. Two hundred unfiltered recordings give you two hundred anecdotes and no pattern.

Small samples produce confident nonsense

Nielsen Norman Group guidance for eyetracking studies is 30 users per heatmap, and recruiting around 39 to allow for unusable recordings. A map drawn from ten people changes completely depending on which ten you happened to get. Click maps collected passively are just as unstable. Wait for a few hundred sessions on a single page template before you read anything into a cluster. Split desktop from mobile too, because merging two layouts into one map draws a picture of a page that does not exist.

Segment or the map turns to mush

One heatmap that averages cold paid social with returning email traffic describes nobody. Split by device, by source, and by outcome where the tool allows it. Comparing the scroll map of visitors who converted with the map of visitors who did not is the most useful view these tools offer. If converters reliably reach a section that non-converters never see, you have found something worth moving up the page. This is a change worth testing.

Privacy is not optional

You are recording real people. Clarity masks sensitive content by default and offers strict, balanced and relaxed modes, with input box contents masked in every mode. You can also mask any element by adding a data-clarity-mask attribute. Use it on anything that shows personal data. Your privacy policy has to say that you use behavioural analytics, what gets captured, and who processes it. In the EU you need consent before the cookies go down. Hold every recording tool you install to the same standard.

Turn what heatmaps and session recordings show into one change

Write the finding as a sentence with a number in it. Sixty percent of mobile visitors stop scrolling before the pricing section. Then write the change, ship it, and look at the same map again two weeks later. One more thing is worth checking. These scripts have a weight, and a recorder that has loaded on every page for a year while nobody opened it in six months is pure cost. Sample a percentage of your traffic instead of all of it, and pull the tag once the question is answered.