All locations active · 99.99% uptime
Residential Proxy

Web Scraping with Residential Proxies

Collecting data regularly from a protected site is not as simple as "add a proxy and run". A residential proxy is a powerful tool, but when it is set up incorrectly it both costs a lot and fails to deliver the expected success. The difference lies in the architecture and the settings.

This article covers end to end how to design a data collection pipeline built on a residential pool. For the basic concepts, first see proxies for web scraping article.

Architecture: Separate the Layers

FIGUREA collection pipeline built on a residential pool
ARCHITECTUREURL queuepriority + retrytargets to processRate gatetokens per targetscheduled requestsRequest layerproxy + sessionraw responseVerificationcontent/block distinctionfailures back to the queueParsingselector + schemastructured dataEach layer must be able to scale independently

The validation layer is critical: if a CAPTCHA page that returns HTTP 200 is counted as "successful", your data silently becomes corrupted.

A common mistake

A status code of 200 does not mean the content is correct. Block pages, empty templates and "not available in your region" screens also return 200. Validate every response at the content level.

Choosing a Session Strategy

FIGUREWhich session model?
DECISIONHow does the target page behave?No cookies needed, every page is independentYESSessionless rotationNOSee belowThe simplest and cheapestA filter/language cookie is requiredYESShort sticky (2–5 min)NOSee belowConsistent resultsLogin is requiredYESLong sticky + account m…NOStatic IPA fixed exit per account

If you can work without sessions, do so: this is the cheapest, fastest and most resilient model.

Rate Tuning: The Most Decisive Parameter

The single setting that affects the success rate the most is the request rate. Most blocks are caused not by IP quality but by going too fast.

FIGUREThe relationship between request rate and success rate (sample measurement)
SETTING0275582109Success rate (%)Successful requests per hour (×100)0.2/s0.5/s1/s2/s4/s8/s

Even as the success rate falls, total hourly output keeps rising up to a point. The optimum point is where the cost of failed requests starts to exceed the gain — around 2/s in this example.

Optimum point

Calculate total cost as "GB per successful request". As the rate rises, failed requests consume traffic too; past a certain point, speeding up ends up being more expensive overall.

Cost Control with Resource Filtering

Because residential traffic is billed by GB, every unnecessary byte downloaded goes straight onto the bill. If you are using a browser, resource filtering is mandatory:

FIGUREBlocking image, media and tracking requests
Playwright — cost-focused configuration01BLOK_TIP = {"image", "media", "font", "stylesheet"}02BLOK_HOST = ("googletagmanager", "google-analytics", "doubleclick",03 "facebook.net", "hotjar", "clarity.ms")0405async def filtre(route):06 r = route.request07 if r.resource_type in BLOK_TIP:08 return await route.abort()09 if any(h in r.url for h in BLOK_HOST):10 return await route.abort()11 await route.continue_()1213ctx = await browser.new_context(14 proxy={"server": "http://gateway.example.com:8000",15 "username": PROXY_USER, "password": PROXY_PASS},16 locale="tr-TR", timezone_id="Europe/Istanbul")17await ctx.route("**/*", filtre)

locale and timezone_id values must stay consistent with the exit country. If the IP points to Turkey while the browser time zone points to the United States, that inconsistency is detected.

For a detailed consumption calculation, see bandwidth calculation article .

Error Handling and Retries

FIGUREInterpreting the responses you get while scraping
RESPONSE MAPCODE / SYMPTOMLIKELY CAUSESOLUTION200 + expected contentEverything is fineContinue with the same IP200 + CAPTCHA/blockThe IP is flagged on this targetRenew the session, add a wait403 ForbiddenThe IP or the pattern is blockedNew session + quarantine the target429 Too Many RequestsRate limitExponential backoff, lower the rate5xxTarget server problemPut it back in the queue, do not change the IPTimeoutThe node is slow or has droppedRetry once, then renew the session

Changing the IP on 5xx errors wastes quota for nothing — since the problem is on the target, a new IP will get the same response.

Tiered Resource Usage

Routing every request through the residential pool inflates cost unnecessarily. Tier it according to the difficulty of the target:

FIGURECost-focused tiered attempts
TIERDirect connectionunprotected targets100Datacenter proxylight protection62%62ISP proxymedium protection28%45Residentialstrict protection11%39

Only a portion of requests genuinely requires residential. A tiered model can cut total cost by almost half in a typical operation.

Product options: datacenter, ISP and residential proxy pages contain capacity and price details.

Monitoring: What Should You Log?

  • For every request: target, status code, duration, session key, attempt number.
  • For every session: exit IP, country, total requests, time of blocking.
  • Hourly totals: success rate, CAPTCHA rate, GB consumed.
  • By target: which site behaves more tolerantly at which hour?

Without this data you cannot optimize the rate setting or control cost.

Legal and Ethical Framework

When collecting data, legal compliance matters as much as technical success. General principles:

  • Collect only publicly available data; content behind a login wall requires permission.
  • If you collect personal data, assess your KVKK/GDPR obligations.
  • Read the target's terms of use; contractual restrictions are independent of technical permission.
  • Do not send requests at an intensity that would harm the target server.
  • Do not republish copyrighted content.

Summary

Scraping with a residential proxy delivers a high success rate with the right architecture and the right rate setting. Separate the layers, detect block pages at the content level, set up the rate gate per target, protect your quota with resource filtering, and use resources in tiers. The most decisive parameter is not IP quality but request rate. To test your setup, see proxy checker tool, and for scenario details, see web scraping proxy page.

Frequently Asked Questions

01How many IPs do you need for scraping?

Request rate matters far more than the number of IPs. The most reliable method is to start conservatively — around 0.5 requests per second per target and 20–40 requests per IP — measure, and then increase gradually.

02I got an HTTP 200 but there is no data, why?

You most likely received a block or verification page. Check the content signature instead of the status code: do not count a response as successful before confirming that an expected selector is present.

03Do I have to use a browser?

Not if the data appears in the HTML source or in an XHR response. Plain HTTP requests are both far cheaper and far faster. Use a browser only if the content is generated with JavaScript.

04How do I reduce the CAPTCHA rate?

First lower the speed and add jitter; in most cases that alone is enough. Then make sure the browser language, time zone and header order are consistent with the exit country.

05How do I make residential traffic cheaper?

Block image, font and tracking requests, keep compression on, route easy targets to a cheap pool, and reduce your failed-request rate. These four steps noticeably lower a typical bill.

Related Articles and Pages

NEXT STEP

Strengthen your proxy setup today.

Get started in minutes with a paid plan, or try our free proxy list first.

FREEPROXY.TR

Looking for a free proxy? You're in the right place

A complete proxy platform where you can browse up-to-date free proxy addresses, compare HTTP and SOCKS proxy types, and check your proxy connections with free tools.