What rage and dead clicks reveal
A rage click is a rapid series of clicks on the same spot. Usually there is an expectation behind it that something should happen, and impatience when it does not. A dead click is a single click to which the page shows no visible response: nothing opens, nothing loads, nothing changes. Both signals are symptoms. They tell you where visitors get stuck, not why. That is what makes them useful: they direct attention to the few elements where expectation and behaviour diverge.
It is well documented that weak clickability cues cost time. In an eyetracking experiment, the Nielsen Norman Group compared pages with strong and with weak signifiers of clickability, for example underlined blue links versus links styled like body text, or raised buttons versus flat ghost buttons. On the versions with weak signifiers, participants needed on average 22 percent more time to find the target they were looking for (Nielsen Norman Group 2017), and they had on average 25 percent more fixations (Nielsen Norman Group 2017). The study involved 71 web users on a desktop computer (Nielsen Norman Group 2017) working on 9 pages; each page existed in two nearly identical versions that differed only in their signifiers (Nielsen Norman Group 2017).
One detail from the same study describes the dead click before it happens. On a jewellery retailer’s page, participants were asked to find pearl jewellery. In the version where the link looked like normal text, 9 of 24 participants stopped at the subheading because they believed it was clickable, and overlooked the actual link below it (Nielsen Norman Group 2017). In a shop, that would be a dead click on a heading without a function.
A single dead click on body text is usually noise: visitors select text or set the focus. The signal becomes meaningful only when it clusters on one element across several days and many visitors. And a rapid series of clicks on the quantity plus button is intent, not anger. Assess frustration signals together with the element and its purpose.
Typical click traps in online shops
Most broken click targets stem not from a spectacular bug but from a gap between design and function. Something looks like a button but is not one. Or it is meant to be one, but the code behind it was disconnected during the last theme update. Six patterns come up particularly often in shops:
Labels such as “New”, “Bestseller” or a discount sit on the product image and look like buttons. Anyone who taps them expects terms and gets nothing. Typical pattern: clustered rage clicks on a small area.
In category lists the image is not linked, or image and title lead to different places. Inspirational images lead only to a category instead of the item shown.
Underlined words such as “Size guide” or “Shipping costs” with no link and no overlay behind them, often after a theme change that removed the function but kept the formatting.
The sale week banner is embedded as an image, and the link is missing or points to an expired campaign. Clicks lead nowhere.
“Add to cart” stays grey until a size is selected, but no text says so. The visitor clicks several times, the page stays silent.
Filters, quantity changes or the cart respond only after a noticeable delay. The visitor clicks again, and in the end the item is in the cart twice.
An older benchmark from the Baymard Institute shows how common unclear click areas are: on 76 percent of 50 major US e-commerce sites, it was unclear to users in the product lists exactly what could be clicked and where a click would lead (Baymard Institute 2016). In their usability tests, the researchers also repeatedly observed wasted clicks on product descriptions and attributes that turned out to be static text (Baymard Institute 2016). That is the dead click in its purest form.
With inspirational images the situation has improved, but the issue has not gone away. In the Baymard Institute benchmark, 91 percent of the sites examined already consistently linked the depicted products in 2019 (Baymard Institute 2020), while 9 percent offered no easy way to the items shown (Baymard Institute 2020). During testing, some users assumed that clicking directly on a depicted product would take them to exactly that item (Baymard Institute 2020). Sites that do not offer this produce clicks that lead nowhere. How to analyse gallery and image interactions as a whole is covered in the article analysing product images and videos.
How XICTRAQ® detects both signals
XICTRAQ® captures rage and dead clicks in two places that work differently and therefore use different thresholds. The first is the click heatmap of the cookieless analytics. For every click, the tracker reports the page, the position relative to page width and height, the element type and the element’s visible label, and it flags every click with two attributes: rage click yes or no, dead click yes or no. Three clicks close together within one second count as a rage click. A click that is followed neither by a change to the page structure (DOM) nor by a navigation counts as a dead click.
The heatmap does not count links with a target or form submit buttons as dead, because they change the page or submit a form. A link with an empty jump target whose script no longer runs is therefore more likely to show up in the recording. And the tracker only counts clicks made with a mouse pointer or a finger as rage clicks: pressing Enter three times in the search field does not produce a rage click.
The heatmap itself shows the click cloud over a real screenshot for each page and device class, meaning desktop, tablet and mobile, and lists the 20 most-clicked elements with their labels. The AI assistant summarises the flags: ask it about rage and dead clicks, and for the ten most-clicked pages in the selected period it returns the totals of both signals per page alongside the number of all clicks. The heatmap view itself does not display the flags. How both signals are defined is described in the manual under form and media analytics.
The second place is session recordings. A regular job analyses every completed recording and assigns auto-tags: rage_click for three or more clicks within two seconds in a 30-pixel radius around the first click, dead_click for a click without a DOM change and without a page change within 1.5 seconds, plus error if a script error was recorded during the session. The recordings list can be filtered by these tags, and they appear as badges on each recording. The details are described in the manual for session recording.
| Attribute | Heatmap (tracker, cookieless) | Recording (auto-tag, with consent) |
|---|---|---|
| Rage click | three clicks close together within one second | three or more clicks within two seconds in a 30-pixel radius |
| Dead click | no DOM change and no navigation after the click, links with a target and submit buttons excluded | no DOM change and no page change within 1.5 seconds |
| Counting | every click flagged individually | one tag per recording, regardless of the number of incidents |
| Keyboard | only pointer clicks count as rage clicks | clicks without a pointer position do not count as rage clicks |
| Where to see it | totals per page via the AI assistant (ten most-clicked pages); the heatmap shows the click cloud and top elements | recordings list with tag filter and replay |
| Requirement | Business plan, heatmap enabled in the settings (default) | Business plan, recording enabled and consent given |
The heatmap defines the rage click more narrowly (one second, close together), the recording more broadly (two seconds, 30 pixels). In addition, the heatmap flags every click, whereas a recording receives at most one tag per signal. Figures from the two sources therefore cannot be offset against each other: the heatmap finds pages and elements, the recording shows what happened before and after the click.
Privacy: heatmap without cookies, recording with consent
Click capture for the heatmap sets no cookies and stores nothing in browser storage. It transmits, among other things, the page, position, device class, element type and a label shortened to 100 characters. Areas marked with the data-xictraq-block attribute deliver no text at all, areas marked with data-xictraq-mask are masked, and the tracker also obscures patterns such as email addresses, account numbers or card numbers in click texts. As a rule, this measurement does not require a consent banner; the legal assessment in an individual case remains with the operator. Background: GDPR-compliant heatmaps.
Session recording is different. It stores an identifier in browser storage for the duration of the session, and under German law storing information on the user’s device is only permitted with consent unless it is strictly necessary (Section 25 TDDDG). XICTRAQ® therefore starts recording only once it is enabled in the settings and your consent solution reports consent; recording stops if consent is withdrawn. Recordings are kept for a maximum of 90 days. How recording runs technically from your own domain and which fields are masked is explained in the article on session recording with first-party infrastructure.
<!-- Tracker: heatmap and click signals run without cookies -->
<script defer src="https://api.xictraq.com/t.js" data-site="YOUR-SITE-ID"></script>
<!-- Calls from your consent solution: record only after consent -->
<script>
function onRecordingConsent() { xictraq.consent('granted'); }
function onRecordingRevoked() { xictraq.consent('denied'); }
</script>
<!-- Area without text in clicks and recordings -->
<section data-xictraq-block>Customer account and addresses</section>
<!-- Text is transmitted masked -->
<span data-xictraq-mask>Customer number of the logged-in customer</span>From signal to cause in five steps
A frustration signal is the start of an investigation, not its result. A fixed sequence has proven useful, leading from the broad overview to the individual session and only at the end to the change:
- Narrow down the pages. Ask the AI assistant for the rage and dead click totals of the most-clicked pages and relate them to all clicks on the page. Busy pages naturally collect more signals.
- Identify the element. Open the page’s heatmap in the right device class. If a badge, an image or a heading ranks high in the list of most-clicked elements, it is a candidate.
- Watch sessions. Filter the recordings list under “Signal” by “Rage click” (
rage_click) or “Dead click” (dead_click) and play back two or three recordings of the page. Was something still loading before the click, did the layout shift, did an error message appear? - Assign the cause. Distinguish three cases: the element looks clickable but is not meant to be (expectation). It should be clickable but does not respond (defect). It responds, but too late (speed).
- Fix and measure again. After the correction, compare periods of equal length before and after. If the signals on the element drop significantly, you found the right cause.
The assignment determines the measure: with a false expectation, looking at the code does not help; with a defect, no design change helps; and with a speed problem, the cause often lies in scripts that are blocking the browser at that moment. In the graphic above, the discount label is a case of expectation, because visitors are looking for the promotion terms behind it. The size guide, by contrast, is a defect: underlined, but without a function. The following overview maps the most common combinations:
| Signal and location | Likely cause | Measure |
|---|---|---|
| Rage clicks on a badge or product image | element looks clickable but has no function | link it, for example to the promotion terms, or design it as a plain notice |
| Dead clicks on underlined text | link in appearance only, function removed | add a real link or overlay, otherwise remove the formatting |
| Dead clicks on a promo banner | link target missing or campaign expired | set a target, replace the banner when the promotion ends |
| Rage clicks on “Add to cart” | button disabled without a hint or response too slow | show the reason for the lock, give immediate feedback on click |
| Rage clicks on arrows or gallery dots (mobile) | tap target too small or too close to other targets | enlarge the area, create spacing |
| Dead clicks scattered across body text | selecting text, setting focus | as a rule, no action needed |
When the page responds too late
Not every rage click is caused by a dead element. Often the page responds, just not fast enough. The classic response time limits come from usability research: up to about 0.1 seconds, users perceive a response as instantaneous; up to about 1 second, their flow of thought stays uninterrupted; from about 10 seconds, their attention to the task fades (Nielsen Norman Group 1993). At one second, the heatmap threshold for rage clicks sits exactly at the second limit: anyone who clicks three times within that time is clearly signalling that they do not want to wait any longer.
There is a dedicated metric for measuring this in the browser. Interaction to Next Paint (INP) captures the delay of clicks, taps and keyboard input until the next visible response. A value of up to 200 milliseconds is considered good (Google, web.dev), a value above 500 milliseconds poor (Google, web.dev). The metric matters because most interaction happens after loading: according to Chrome usage data, users spend 90 percent of their time on a page after it has loaded (Google, web.dev). The documentation illustrates the link to rage clicks with an example: if long tasks block an accordion from opening, the user clicks several times, thinking the page is broken (Google, web.dev).
Across the web, responsiveness has improved, but secondary pages are lagging behind. In July 2025, 77 percent of websites achieved a good INP score on mobile devices (HTTP Archive Web Almanac 2025). At the level of individual pages, mobile home pages reached 80 percent (HTTP Archive Web Almanac 2025), secondary pages only 69 percent (HTTP Archive Web Almanac 2025). Secondary pages such as category and product pages are exactly where filters, galleries and form validation sit, the very elements on which rage clicks cluster. How to reduce INP in a targeted way is described in the article on optimizing INP; the free Core Web Vitals check provides a first reading.
A typical case before sale days: the add-to-cart button waits for the server and shows nothing in the meantime. The customer clicks again, and the item ends up in the cart twice. The page collects more rage clicks, and recordings tagged rage_click show a series of quick clicks on the button with a delayed change. The remedy is an immediate loading state on the button and a lock against submitting twice.
A third cause is layout shifts. If an element slides down at the very moment the customer clicks, the click hits the wrong target. Unexpected shifts can cause users to click the wrong link or button (Google, web.dev). A Cumulative Layout Shift (CLS) of at most 0.1 is considered good (Google, web.dev). In the heatmap, this shows up as a click cloud in a spot where nothing clickable appears in the screenshot, often just below a banner or a shipping notice that loads late.
Tap targets and accessibility
On mobile devices there is another cause: the target is simply too small. Gallery dots, arrows, close buttons and quantity buttons shrink to areas of a few millimetres on a phone. The Web Content Accessibility Guidelines set a lower limit for this: under WCAG 2.2, a target for pointer input must be at least 24 × 24 CSS pixels at level AA, with exceptions such as sufficient spacing from other targets (W3C WCAG 2.2). The stricter level AAA requires 44 × 44 CSS pixels (W3C WCAG 2.2). Review rage clicks separately by device class.
Broken click targets do not only affect mouse users. A link or button without an accessible name is just as dead a target for screen reader users, except that no heatmap shows it. In the annual review of the home pages of the one million most visited websites, empty links were found on 46.3 percent of pages (WebAIM Million 2026) and empty buttons on 30.6 percent (WebAIM Million 2026). Then there are elements that only respond to the mouse, such as a div with a click function that cannot be reached by keyboard. Because the heatmap only counts pointer clicks as rage clicks, such barriers remain invisible there.
You can find them with an accessibility scan according to WCAG 2.2 and a test without a mouse, as described in the article on keyboard navigation testing. Heatmap and scan complement each other: one shows where mouse users get stuck, the other where other users never reach the target in the first place.
Checklist before Black Week
In year-end trading, every lost click weighs more heavily. For Black Friday and Cyber Monday, the German Retail Federation expected sales of 5.8 billion euros in 2025 (HDE). In 2026, Black Friday falls on 27 November. Starting to collect data now gives you a good five weeks of baseline and time to fix click traps and measure the effect. These points belong on the list:
- Check promotional areas: every banner, tile and discount label of the promotion leads to a suitable target.
- Defuse badges: labels on product images are either linked or clearly do not look like buttons.
- Clean up fake links: underlined text without a function becomes a link or loses its underline.
- Explain disabled buttons: wherever “Add to cart” requires a selection, the reason is shown right at the button.
- Feedback on click: cart, filters and quantity changes show a loading state immediately.
- Measure tap targets on mobile: arrows, dots and close buttons reach at least the level AA size.
- Click through the critical path automatically: a browser monitor checks the route from product page to checkout at fixed intervals.
- Compare signals before and after: after each correction, compare periods of equal length.
Frustration signals only reveal problems once customers experience them. For the most important paths, it is also worth having a check that does not wait for visitors: browser monitoring clicks through defined steps with a real browser and reports when a step does not deliver the expected result. What that looks like for redeeming a discount code is shown in the article on checking discount code redemption with a browser check.
Keeping click targets in view for good
Broken click targets arise continuously: with every new banner, every campaign, every plugin update. If you treat rage and dead clicks as a fixed part of your analysis, you will usually spot such breaks within a few days rather than at the end of the month in the conversion rate. A sensible rhythm for shops: review the pages with the most signals every week, check the most important product and category pages after every deploy, and work through the checklist before sale days. That way, a frustration signal becomes a task, and the task becomes a click target that works again.
This article draws on: Nielsen Norman Group, “Flat UI Elements Attract Less Attention and Cause Uncertainty” (3 September 2017) and “Response Times: The 3 Important Limits” (1993, updated 2014); Baymard Institute, “Hover UX: Use Synchronized Hover Effects & Unified Hit-Areas” (16 August 2016) and “Inspirational Images Should Link to All Depicted Products” (8 September 2020); Google, web.dev, articles on INP and CLS; HTTP Archive, Web Almanac 2025, Performance chapter; W3C, WCAG 2.2, Recommendation of 12 December 2024, success criteria 2.5.5 and 2.5.8; WebAIM, The WebAIM Million, 2026 report; German Retail Federation (HDE), press release of 17 November 2025; Section 25 TDDDG. The detection thresholds are taken from the XICTRAQ® manual.
What is the difference between a rage click and a dead click?
Why does XICTRAQ® use two different thresholds for rage clicks?
rage_click tag for three or more clicks within two seconds in a 30-pixel radius. You should therefore not compare figures from the two sources directly.