Your machine misses the check’s deadline
The “checking your browser” page is not waiting on your connection. It is waiting on your processor, and it has a deadline. Miss it and the interstitial reloads and starts again.
Close your other tabs and reload the page. That single change clears this row more often than everything else on this page put together, and it takes four seconds.
An interstitial challenge hands your browser a computation — some arithmetic, some rendering, some measurement of how your browser behaves — and asks for the answer back within a short window. The window exists because the challenge cannot wait forever on a page it suspects is hostile.
A browser that answers in time proceeds. A browser that does not is indistinguishable, from the challenge's side, from one that refused. There is no third outcome, and that is the loop you are stuck in.
What eats the budget
- Extensions. Every one of them runs its own content script on every page you open, before the challenge script gets its turn. Ten extensions is ten programs competing for the same thread.
- Other tabs. A background tab that is decoding video or running a heavy script shares your processor with the challenge.
- Thermal and power throttling. A laptop on battery saver, or one that has been hot for an hour, can run at a fraction of its rated speed.
- Software graphics. Every pixel the challenge draws goes through the processor instead of a graphics chip, which is both slow and its own separate row.
- Old hardware, honestly. A machine from 2013 running a 2026 challenge is doing an amount of work nobody designed for it.
Is it my internet connection?
Almost certainly not, and this is the most common wrong guess about this symptom — reasonably so, because a spinner is what a slow connection looks like everywhere else on the web.
The challenge script is small and arrives in a moment even on a poor connection. What takes time is running it, and running it happens entirely on your machine. You can confirm this without any tools: if other pages load normally while the interstitial hangs, your connection is fine and the wait is local. If a video plays smoothly in another tab while the challenge sits there, that is confirmation twice over — and it is also, awkwardly, part of the cause.
How long is “a few seconds”, really?
This site does not know, and no page that has not been given a vendor's configuration does. The window is chosen by whoever deployed the challenge, it differs between vendors, it differs between the same vendor's protection levels, and it is not published.
What can be said without inventing anything: the window is short enough that ordinary competition for the processor decides the outcome, and it is fixed while the amount of work on your machine is not. That asymmetry is the whole row. Anything you free up before the challenge runs is time it gets.
How this page measured it
Your reading reports the wall-clock time of this page's own read, which is a far heavier job than any challenge runs — tens of seconds rather than a few. It is not a simulation of a challenge and it is not presented as one. It is a load test on the same processor, and a machine that struggles here struggles there.
Alongside it, forty animation frames are sampled immediately after the read, with your extensions still running, and the number slower than 24 milliseconds is printed. That is the number that most directly describes what the challenge is up against.
Why does it work on my phone and not my laptop?
Because the comparison is not about raw speed, and a recent phone is frequently the faster machine anyway. Three differences matter more.
Your phone runs almost no extensions. On a laptop, every extension's content script runs before the page's own code on every load; on a phone browser there is usually nothing in that queue.
Your phone has one page in the foreground and aggressively suspends the rest. Your laptop has thirty tabs, several of them doing work you have forgotten about.
Your phone is on mobile data, which is a differently classified address — so if the phone gets through, it may not be the speed that made the difference at all. Test the laptop with the tabs closed before concluding anything.
Getting the time back
- Close the other tabs before you go back to the site. This is the largest and cheapest single change.
- Turn off the heaviest extensions temporarily. Not all of them — the two or three that inject the most.
- Plug the laptop in and let it cool. Power and thermal throttling are invisible and enormous.
- Turn hardware acceleration back on if your graphics row also fired. The two rows compound.
What to close, in what order
If you want to be systematic rather than closing everything, the ranking below is by how much of the processor a tab typically holds while it sits in the background. Work down it until the challenge completes.
- Anything playing or decoding video, including a paused video that is still buffering, and any tab with a live call in it.
- Web applications that keep working while unfocused — a mail client, a chat client, a document editor with autosave, an online spreadsheet with live data.
- Tabs with automatically refreshing content: dashboards, live scores, anything that updates itself while you are not looking.
- Everything else, which is usually cheap, and a browser window from yesterday you have not looked at since.
Execution budget
Your machine does not finish the check's work before the check gives up.
- Close other tabs before you go back to the site. A challenge shares the same processor as everything else you have open.
- Disable the heaviest extensions temporarily — each one runs its own script on every page you open.
- If the machine is old or the battery saver is on, plug it in. Thermal and power throttling both cost you the deadline.
A row's place on your reading is one multiplication, and both halves of it are published. Neither half is a measurement.
- Surprisal −log₂ of an assumed probability of 0.1500 for “a full read of the browser took longer than 20 seconds”
- 2.74 bits
- Challenge weight Missing the challenge's JavaScript deadline — how much a bot check is judged to act on it
- 0.55
- Rank The product. It orders the rows and nothing else.
- 1.51
Why that assumption
Wall-clock time for this page's own collector, which is a heavier job than any challenge runs. Assumed from the spread of ordinary consumer hardware.
We think this one is probably wrong
This one is measurable and should stop being an assumption. The readings these sites now store will make it countable once there are enough of them.
Why that weight
Interstitials give the page a few seconds to finish a computation and report back. A machine that misses the deadline is indistinguishable, to the challenge, from one that refused to run it. This is the cause behind most 'checking your browser' hangs.
Every assumption, with its number → · Every weight, and what is deliberately not measured →
- “Checking your browser” never finishes The interstitial sits there with its spinner. Eventually it reloads and starts again, or it gives up and shows an error.
- “Press and hold” keeps coming back You hold the button until it fills, the page reloads, and the button is there again. Sometimes it never fills at all.
Questions about the “Execution budget” row
- Why does “checking your browser” take so long on my computer?
- Because the interstitial handed your browser a computation and set a deadline for the answer, and everything else running on your machine is competing for the same processor. Extensions run first on every page load, background tabs keep working, and a laptop that is hot or on battery saver may be running well below its rated speed. The wait is local, not on the network.
- Is a slow internet connection causing the bot check to fail?
- Almost never. The challenge script is small and arrives quickly even on a poor connection; what takes time is running it, and that happens entirely on your machine. If other pages load normally while the interstitial hangs, your connection is fine and the problem is how much of your processor is already spoken for.
- How many seconds does a bot check actually allow?
- Nobody outside the vendor knows, the deadlines are not published, and they differ by vendor and by how strictly a site has configured its protection. What is safe to say is that the window is short enough for ordinary competition for the processor to decide the outcome — which is why closing tabs changes results that feel like they should be about hardware.
- Will closing tabs really fix a captcha loop?
- It fixes the version of the loop caused by a missed deadline, which is the one where the interstitial reloads itself rather than showing you a refusal. It does nothing for a loop caused by a pass that cannot be stored or an address that is being scored. Reading your browser tells you which of those you have before you rearrange your desktop.
- Does an old computer mean I will always get bot checks?
- No, but it does mean the margin is thinner and the other rows matter more. A machine with less headroom passes when little else is competing and fails when a video is decoding in another tab. Closing tabs, turning hardware acceleration back on, and running on mains power widen that margin considerably without spending anything.
READ AT PRIOR TABLE ED. 1.0.0 · 2026-10-13 · ASSUMED, NOT MEASURED
The rank is taken against 15 written assumptions about how common each value is and 16 written weights about how much each one matters. 9 of them we think are probably wrong. Real counts from the browsers these sites have read appear beside a row, never inside its rank. Read the assumptions →
The rows you cannot fix from a settings page
A VPN you need for work, an address your ISP shares with a thousand other subscribers, a laptop with no graphics chip, a hardened profile that breaks the sites it was meant to protect — none of these have a checkbox. What is left is to present a reading that is internally consistent and ordinary on purpose, instead of one that is accidentally strange.
Donut Browser does that at the engine level: its Wayfern Chromium fork applies the fingerprint through CDP injection rather than patching JavaScript in the page, and it refuses to launch a profile whose proxy exit country, time zone and language contradict the profile's own fingerprint — which is the top row of most readings on this site. It is AGPL-3.0, it has no telemetry of any kind, and it runs on macOS, Windows and Linux.
Stated plainly: this site has no test results showing what any particular anti-bot service does with any particular browser, and neither does Donut Browser's own repository. What can be checked is the source, which is public.
Free · AGPL-3.0 · github.com/zhom/donutbrowser