Start with the symptom
Hardware faults are much easier to diagnose when you begin from what you are actually experiencing rather than from what you think might be broken. Find your symptom below.
| What you notice | Likely cause | Test |
|---|---|---|
| One click opens two things, or drags keep dropping | Switch chatter from worn contacts | Double click test |
| Pages jump back up while scrolling down | Dirty or failing wheel encoder | Scroll test |
| Cursor moves on its own | Sensor obstruction, bad surface, or a drifting controller | Drift test |
| A button does nothing at all | Dead switch, or a software binding intercepting it | Button test |
| Aim feels heavy, stuttery or inconsistent | Unstable report rate from interference or a failing cable | Polling rate test |
| Everything feels delayed | Display refresh rate, background load, or software rendering | Latency test |
| Typing produces doubled letters | Keyboard switch chatter | Keyboard test |
Why most mouse problems are fixable
The failures people replace mice for are overwhelmingly mechanical, and mechanical failures are usually cleanable. A switch that double clicks has an oxide layer on a metal contact. A wheel that jumps has dust in an encoder slot. A cursor that drifts often has a single hair across the sensor lens. None of those require a new mouse, and all of them can be addressed with isopropyl alcohol and compressed air for the price of a coffee.
That is the principle behind every verdict on this site: the cheapest fix that could plausibly work comes first, and replacing the hardware comes last. We tell you when something is genuinely beyond repair, but that is a much smaller share of cases than the replacement-first advice elsewhere would suggest.
How these tests work
Everything here runs on standard browser input events. When you click, scroll, or move the mouse, the browser hands the page a timestamped event, and precise timing of those events reveals a great deal about the hardware producing them. A switch that bounces produces intervals no human finger could generate. An encoder that misreads produces direction changes inside a single stroke. A sensor that drifts produces movement while your hand is nowhere near the mouse.
There are limits, and we are specific about them rather than glossing over them. A browser cannot see your USB polling interval directly, cannot measure true end-to-end latency, and cannot see faults your mouse firmware has already filtered out. Each test page explains what it can and cannot determine, and the methodology page covers our approach across all of them.
Frequently asked questions
Are these mouse tests really free?
Yes, all of them, with no account and no download. The site is funded by advertising, which is why you will see ad units on the pages. Every test runs entirely inside your browser.
Does anything get uploaded about my hardware?
No. Every measurement happens locally in your browser and the results are never sent anywhere. Your personal best on the CPS test is stored in your own browser and clearing your browser data removes it.
Which test should I run first?
It depends on the symptom. If a single click sometimes registers twice, start with the double click test. If pages jump while scrolling, use the scroll test. If your cursor moves on its own, run the drift test. If you are not sure anything is wrong and just want a general check, the mouse button test covers the most ground quickest.
Do these tests work on a laptop touchpad?
Partly. The CPS test and the scroll test both accept touchpad input. Tests that need a physical wheel, side buttons, or a movement sensor cannot produce meaningful readings from a touchpad, and each page says so where it applies.
How accurate are browser-based hardware tests?
It varies by test, and we are specific about it on each page rather than claiming uniform precision. Button and switch tests are highly accurate because we are timing discrete events. Polling rate is a good estimate when the browser supports coalesced pointer events. Latency is deliberately presented as a relative comparison instrument rather than an absolute figure, because a browser genuinely cannot see the whole input chain.