ProxyNova does not show you its proxy addresses. It assembles each one inside your browser, using four different tricks in rotation. A script that reads the page finds an empty table where the proxies should be. We decoded all four, tested what came out, and measured eight rival lists the same afternoon. The result was the opposite of what we expected: ProxyNova had the best addresses in the market. The reason to leave is not quality. It is that you cannot automate anything against a list you are not allowed to read.
What we measured, and how
On 9 September 2026 we ran one test across nine public free proxy lists. One machine, one German datacentre, one afternoon. Same test, same day, same place, so the numbers compare.
For each list we fetched whatever machine-readable file the publisher serves. Then we parsed every address in it and took a random sample of up to 120. Random matters, because a list that sorts its healthiest entries to the top would flatter itself. Taking the first hundred would hand it that flattery for free.
Then we tested each entry properly, which does not mean a port check. We opened the address, spoke its protocol and fetched a real page through it. The reply had to carry an exit address that was not our own. Anything less is not proxying, and the difference is not small.
| List | Addresses published | First run | Thirty minutes later |
|---|---|---|---|
| ProxyNova (decoded) | 26 of 37 rows | 53.8% | not re-run |
| free-proxy-list.net | 300 | 34.2% | 38.3% |
| ProxyScrape | 624 to 671 | 26.7% | 33.3% |
| Spys.me | 400 | 25.0% | 13.3% |
| monosans (GitHub) | 619 | 20.8% | 12.5% |
| iplocate (GitHub) | 646 to 718 | 18.3% | 16.7% |
| Geonode | 500 | not parsed | 7.5% |
| TheSpeedX (GitHub) | 3,024 | 7.5% | 5.0% |
| Proxifly (GitHub) | 2,385 | 2.5% | 4.2% |
| FreeProxy.World | 50 | not parsed | 2.0% |
| clarketm (GitHub) | 400 | 0.8% | 0.0% |
In the first run, 163 of 961 sampled entries relayed a request. That is 17.0 percent. The second run gave 158 of 1,131, which is 14.0 percent. The best list in the set is many times better than the worst. No reader could know that, because not one of these lists publishes a success rate.
We measured twice, and the numbers moved
Half an hour after the first pass we ran the whole audit again. Same machine, same method, same sample size.
Eight lists were measured twice with a usable sample. The median moved 3.3 percentage points. The largest move was 11.7. Spys.me went from 25.0 percent to 13.3. monosans went from 20.8 to 12.5. Two lists moved the other way: ProxyScrape rose from 26.7 to 33.3, and free-proxy-list.net from 34.2 to 38.3.
With a sample of 120 the ordinary error near a 17 percent rate is about 3.4 points. Swings of eight to twelve points are therefore real churn, not noise.
Read every number on this page with that in mind. None of them is a verdict. They are two photographs of a market that reshuffles inside an hour. That is the strongest argument on this page. A list publishing a bare count, with no date and no method, is telling you nothing.
Two more endpoints did not answer at all. OpenProxy.space returned HTTP 521 and proxy-list.download returned HTTP 502.
Why ProxyNova was missing from our first pass
Our first run parsed zero addresses from ProxyNova. That was our failure rather than their emptiness. It is worth explaining, because it turned out to be the whole story of this page.
ProxyNova serves a table with a visible port, a country and a last-checked time. Where the address should be, it serves a small script. The address is built at render time, and the page rotates between four methods:
- String arithmetic. A longer string is cut down with
substring, using expressions like16-6and46-23instead of plain numbers. - Character codes. An array of integers is mapped through
String.fromCharCodewith a fixed offset applied to each one. - Base64. A fragment arrives encoded and is decoded with
atob. - Repetition. A short literal is repeated, then sliced back down to the part that matters.
Different rows use different methods, and several rows combine two or three. The effect is that the address never exists in what the server sends you.
How we read it without running their code
The obvious way to resolve those expressions is to run them. We did not, and the reason is worth stating plainly. That would mean running JavaScript from a company we are measuring, inside our own network.
So we wrote a parser for the small, closed set of operations those expressions use. It refuses anything outside that set. When a row used a shape we had not met before, the parser stopped rather than guessed.
That discipline shows in the result. Of 37 rows we decoded 26 and left 9 unresolved, and those 9 are reported as unresolved. They are not counted as failures of the list, because we do not know what they were.
What came out of it
Of the 26 addresses we decoded, 16 accepted a connection and 14 carried a real request. That is 53.8 percent, the highest figure anywhere in our audit.
The median working entry answered in 5,963 milliseconds. That is close to six seconds, and it is the honest cost of that quality. Several rival lists were faster on the entries that worked, and far worse at working at all.
So the obfuscation is not hiding a bad list, it is protecting a good one. That is a fair thing for an operator to do with something it maintains. It is also the exact reason a developer eventually leaves.
What you actually lose by leaving
Be clear about the trade before you switch. Every alternative in the table above is a step down in reliability. Some are a very long step down.
What you gain is a list a machine can read. If your job is a scraper, a rotation pool or anything on a schedule, that is decisive. An address you cannot fetch is worth nothing, however good it is.
If you only need a browser proxy now and then, that trade is a bad one. Stay where you are.
Two things no free list will tell you
We run a free pool of our own and watch what happens to these addresses. That lets us report their lifespan rather than guess at it.
Across 691,179 free proxies we have watched die, the median life was 144.5 hours, about six days. 22.6 percent died inside the first hour. 17.0 percent were still answering a month later. A list that is not re-checked constantly is wrong within a day.
The second thing is harder to see and matters more. Of the live free proxies we hold fraud data for, 89.3 percent were flagged for recent abuse. None of them were residential. That is why an address that connects perfectly still fails on the site you actually care about. It was burned long before you found it.
Watch for addresses that are not proxies at all
One list in our set publishes 50 addresses on its front page. We looked up the owner of every one. Thirty-nine of them belonged to a content delivery network. Two were network addresses ending in zero, which no host can ever answer on.
Those are not proxies. They are edge servers that answer any request carrying the right host header. That looks alive to a naive checker while relaying nothing at all. We made this exact mistake ourselves in an earlier audit of our own. It cost us 287 results, every one of which we threw out. Any list that has not made the same correction is publishing addresses that cannot work.
Where free stops, in numbers
Free proxies are the right tool for a test or a geo check. Checking a page from another country is a genuine use. Our own free list exists for exactly that.
When a job has to keep running, the numbers above explain why they stop. The address is shared, already flagged, and gone in about six days. HProxy paid proxies use residential, ISP, mobile and datacenter addresses that are not already flagged. They are billed by the gigabyte with no subscription, from $0.44/GB.
Method and limits
Everything above is one measurement, on 9 September 2026, from one datacentre in Germany. A home connection or a school network may well see different results. Several of these operators treat a datacentre address differently from a residential one.
The sample sizes differ by list, because we sampled up to 120 entries from each. Several lists publish fewer than that. The ProxyNova figure rests on 26 decoded addresses, the smallest sample on this page. It should be read as one.
We tested these lists on one day. Free proxy lists change hourly, which is the point of the whole exercise. We will re-run this audit and republish the table under a new date. We will not quietly edit this one.
Sources
- Our own market audit of nine public proxy lists, 9 September 2026, and the ProxyNova decoder built for it. Both instruments and their raw output are kept with this article's research folder.
- Our own free proxy pool: 763,409 addresses seen since it opened, 691,179 with a recorded death, queried 5 September 2026.
- RFC 1928, SOCKS Protocol Version 5, IETF, March 1996.
- RFC 7239, Forwarded HTTP Extension, IETF, June 2014.

