Rage clicks
A rage click is a burst of rapid clicks on the same spot. It usually means a visitor expected something to happen and it did not.
How Replayowl detects them
A burst counts as one rage click when all of these hold:
- At least 3 clicks.
- Each click comes within 0.5 seconds of the previous one.
- The whole burst fits within 2 seconds.
- Every click lands within 32 pixels of the first.
The rule is in src/shared/analyze.ts and runs the same way on the server, for search, and in the player, for the timeline. A burst that spans two uploads is still caught.
Double-clicks to select a word do not count, since they are only two clicks.
What usually causes them
- Something looks clickable but is not. A product image, a card, an underlined heading.
- The click works but nothing visible happens. The cart updates off screen, or a request is slow and there is no loading state.
- An error. The button’s handler threw. In Replayowl, look for a red diamond on the timeline near the rage click; the console panel shows the stack trace.
- Layout shift. The button moved just as the visitor clicked, and they keep trying.
- Disabled controls with no explanation. A submit button that stays disabled until a hidden field is valid.
Finding them
In the Replayowl dashboard, filter the session list by Rage clicks. Combine it with a page filter, such as /checkout, to focus on the pages that matter most. In a replay, rage clicks are red dots on the timeline, and the cursor shows a red ripple at the spot.
Over the API: GET /api/sessions?rage=1&url=/checkout.
Try it
In the live demo, click one spot in the shop three or four times quickly, then press Replay. You will see the red dot on the timeline.