Skip to content
proxycosts
Prices checked up to Oct 24, 2026

200 OK but blocked: when a proxy request succeeds and the page is wrong

A 200 is not an error. The standard says it “indicates that the request has succeeded” (RFC 9110, section 15.3.1), and for the network that is true: the proxy connected, the site answered, the page arrived. What a 200 does not promise is that the page is the one you wanted. Many sites answer a request they distrust with a 200 and a captcha, a “verify you are human” page, an empty shell or a page from another country. Your code sees success; your data is wrong.

Proxy error · Last revised Oct 20, 2026

On this page

How to tell

Check the content, not the code. Our test page (Oct 19, 2026) returned:

curl -s -x "http://USERNAME:[email protected]:8000" \
  -w "\nproxy %{http_connect} site %{http_code} size %{size_download}\n" https://the-site-you-need.com/page

<html><title>Access denied</title><body>Please verify you are a human</body></html>
proxy 200 site 200 size 83

Three checks catch most of these:

  1. Look for one thing the real page always has. A product price, a result count, a heading. If it is missing, count the request as failed, whatever the code.
  2. Compare the size. A real product page is usually tens or hundreds of KB; a block page often a few KB. A response far smaller than usual is a block until proven otherwise.
  3. Search for the words block pages use. “captcha”, “verify you are human”, “access denied”, “unusual traffic”. Log the address and session that got them.

Fix it, most likely cause first

  1. The site distrusts the address type. Datacenter addresses get challenge pages far more often than residential or mobile ones. If a datacenter plan gets them on the site your job needs, compare plans by residential vs datacenter cost.
  2. The request does not look like a browser. A script’s default user agent, missing headers or no cookies are enough for many sites. Send a browser’s headers, keep cookies within a session, and load pages at a browser’s pace.
  3. The page needs JavaScript. If the page you get is an empty frame that a browser would fill in, fetch it with a headless browser, not a plain HTTP request.
  4. The page is from the wrong place. A 200 with another country’s prices or language means the exit is not where you need it. Set the country in the proxy login and check where the address really is (proxy location accuracy).
  5. One session asked for too much. A long sticky session sends every request from one address. Rotate more often (static vs rotating proxies).

Why it matters for cost

A block page is traffic, and a plan billed by the GB charges for it unless the provider’s terms say failed requests are free. Worse, it is counted as a success by any tool that checks only the code, so the cost of the job is the cost of every page divided by the pages that were real. The cost per successful request calculator turns your own success rate into that figure; the box below prices a run of blocked pages at today’s cheapest rate.

What failed responses cost: on a plan billed by the GB, a refused or blocked page is traffic too, unless your provider's terms say failed requests are free. 1,000 of them at about 100 KB each are 0.1 GB, about $0.07 at today's cheapest residential rate for 50 GB (Geonode, $0.69 a GB, the cheapest of 55 plans checked up to Oct 24, 2026). A retry loop that runs all night, 10 requests a second for 8 hours, is 288,000 of them: 28.8 GB, about $19.96. Price your own amount →

A site that refuses openly answers 403 Forbidden or 429 Too Many Requests. To check that requests really leave from the proxy, see how to test a proxy.

Price it for your amount

Today's checkout totals, every billing type competing. Change the amount to recalculate.

Geonode

$34.65

Residential monthly subscription · Monthly

50 GB needed50 GB included
Rolls over while subscribed · 0 GB unused

Checked Oct 24, 2026 · $0.69 per GB used

Buy at Geonode →

GB and IP packages use separate amounts and billing units.

On this page