Crawler Proxy: Choosing and Configuring Proxies for Web Scraping

Crawler

A single IP address sending thousands of requests gets rate-limited or banned within minutes on any defended site, which is the entire reason crawler proxy setups exist. A crawler proxy sits between your scraper and the target website and forwards each request through a different IP, so the traffic reads as many separate users instead of one machine. Routing requests through a proxy pool is what lets a scraper run for weeks instead of an hour, and the engineering problem is narrower than it looks: match the proxy type and rotation to how hard the target defends itself.

Choosing the proxy type wrong is the most expensive mistake in web scraping. Overspend and you pay for residential proxies on a site that never checks IP reputation. Underspend and cheap datacenter proxies get rejected on the first protected endpoint. The role of proxies in web scraping is narrow but decisive: they spread requests across many IP addresses so no single address trips a rate limit, and they place each request in the region whose content you actually want to read.

 

How a crawler proxy works

A proxy server is an intermediary that hides the origin of a request. Your crawler connects to the proxy instead of the site, the proxy server makes the outbound request, and it passes the answer back, so the target website logs the proxy's IP and never yours. Two protocol families cover almost all web scraping. HTTP and HTTPS proxies understand web traffic and open a TLS tunnel with the CONNECT method for HTTPS, so the proxy sees the destination host but not the encrypted body. SOCKS5 proxies work at the transport layer, forward raw TCP and UDP, and add less overhead for anything that is not HTTP.

Proxy for Crawler

Figure 1. A request travels from the crawler through the proxy to the target website; the proxy swaps the source IP, so the site never sees the real one.

Authentication decides how your crawler proves it may use the proxy, and the method affects deployment more than people expect. IP whitelisting ties access to your server's own IP address, so no credentials travel in the request, but you must register every machine that connects, which is awkward when a crawler runs on changing cloud IPs. Username and password authentication sends a Proxy-Authorization header on each call and works from any IP, which suits autoscaling scrapers but leaks credentials into logs if you are careless. Whitelisting is safer for a fixed fleet; credential auth is the only workable option when IPs change constantly.

Proxys.io's ProxyControl extension shows one authentication trap directly. Because login and password cannot be written for SOCKS5 inside the plugin, only HTTP(S) IPs are configurable there, and SOCKS5 addresses have to run through a helper such as Proxifier. It is a small limitation, but it catches people who buy SOCKS proxies expecting to point a browser at them with one click, then discover the browser extension silently ignores the credentials they entered.

Rotation happens in one of two places, and the split determines how much code you write. Either your crawler picks a different proxy IP per request from a list it manages, or the provider runs a backconnect gateway, a single hostname that swaps the exit IP for you. Both change the IP the target website sees, but the responsibility moves. The list approach gives full control and full ownership of detecting and dropping dead proxies, while the gateway hides the pool behind one endpoint and gives up control over which IP each request uses.

Proxy types for crawlers: datacenter, residential, ISP, and mobile

For a crawler, the only distinction an anti-bot system reacts to is the network behind the IP address: a hosting company or a consumer ISP. That fact drives detectability and price across every proxy type, so knowing the different types of proxies is the first filter when you pick web scraping proxies. The table below compares the four kinds crawlers use; the notes after it say when each is the right call.

Proxy type

Where the IP comes from

Detectability

Relative cost

Best fit

Datacenter

Hosting providers (AWS, OVH, Hetzner)

High, known ASNs

Lowest

Open sites, SEO data, price checks

Residential

Real home connections via ISPs

Low, looks like a user

High

Reputation-checked sites, e-commerce

ISP (static residential)

ISP-registered, datacenter-hosted

Low and stable

Medium-high

Long-lived accounts, stable sessions

Mobile

3G/4G/5G carrier networks (CGNAT)

Very low

Highest

The hardest anti-bot targets

For a crawler, the two poles are datacenter proxies and residential proxies. Datacenter proxies are cheap, fast, and fine on sites that never check the IP, but their ASNs sit on every anti-bot vendor's blocklist, so they bypass basic filters and fail the moment a target inspects reputation. Residential proxies draw on a vast network of real residential IP addresses that internet service providers assign to homes, so residential IPs read as real users and bypass the reputation checks datacenter ranges fail. They cost more, often per gigabyte, which makes large-scale data collection expensive. Match them to the target: datacenter proxies for open pages, residential proxies where the site checks who is knocking.

Between and beyond those poles sit ISP proxies and mobile proxies. ISP proxies register the IP to a consumer ISP but host it in a datacenter, so it keeps residential reputation while staying static, which suits a crawler that must hold one trusted IP across a long session. Rotating ISP proxies add IP rotation on top of that reputation for higher-volume runs. Mobile proxies route through carrier networks where one IP is shared by multiple users through CGNAT, so blocking it would hit real customers, which earns them the highest trust and the highest price. Reserve mobile proxies for targets that already defeat residential proxies.

Two cross-cutting choices matter less but still bite. Shared proxies split one IP among customers and let a stranger's behavior burn it, while dedicated proxies keep the address and its reputation yours. IPv6 proxies are cheap because addresses are plentiful, but many targets distrust large IPv6 ranges, so their success rate depends on the destination, and IPv4 stays the safer default. Proxy quality inside a type matters as much as the type itself: a clean datacenter IP beats a burned residential one, and proxy solutions scale from one static IP to thousands, sized only by the target's rate limit.

Testing how much proxy type actually moves your block rate is easier when several types sit under one account. proxys.io sells datacenter, residential, and mobile IPv4 across locations including the United States, United Kingdom, Germany, France, and Poland, plus cheaper IPv6 and shared IPv4. Its IPv6 plans start around $0.13 per IP monthly and datacenter IPv4 from roughly $1.40, which is enough range to benchmark different proxy types on your own targets before committing budget to a single tier.

How to choose a proxy for a crawl

Start from the target site's defenses, not the price list, because the right proxy is simply the cheapest type that gets through reliably. Choosing a proxy for web scraping is a decision about the target rather than about the proxy, and the table below maps common defense levels to the proxy type that clears them without overspending. The rule underneath it is constant: pay for exactly as much trust as the site checks for, and not one tier more. The mapping holds because detection, not price, decides: anti-bot vendors flag datacenter proxies by ASN while residential proxies pass as real users, a gap Thales' 2026 report ties to bad bots now riding residential IPs with valid fingerprints.

Target defense

Recommended proxy type

Why it fits

No serious anti-bot

Datacenter proxies

Cheapest option that passes; residential is wasted budget

IP reputation and rate limits

Residential or ISP proxies

Consumer-network trust clears the checks

Fingerprinting and behavior

Residential or mobile plus a real browser

Only a full browser can bypass behavioral scoring

Pool size is arithmetic, not intuition, and getting it wrong wastes the entire budget. If a site allows 60 requests an hour from one IP and you need 60,000 requests in that hour, you need at least 1,000 IP addresses in the proxy pool so no single address crosses the limit. Undersize the proxy pool and rotation cannot save you, because you cycle through IPs that each hit the ceiling and get banned in turn. Concurrency compounds this: if the provider caps simultaneous connections to an IP, real throughput is pool size times that cap, not whatever your crawler can open.

Geo-targeting matters whenever the page changes by country, which covers most e-commerce and pricing work. Certain websites serve different prices, stock, and language by region, so the proxy's location has to match the market you are measuring; a crawler reading German retail prices needs German residential IPs, and generic IPs return the wrong page. The same geo-targeting reaches geo-restricted content such as region-specific catalogs, and it keeps geo-restrictions on localized pricing from skewing the data you collect while using proxies for market research.

Evaluating proxy providers comes down to cost per successful request, not the sticker price for each IP. Test success rate on your actual targets first, because a provider that is strong on one site can fail on another. Then weigh pool size and refresh rate, how many IPs are already burned, the concurrency and number of requests allowed for each address, and whether billing is per IP, per GB, or flat, since per-GB pricing punishes large-scale data extraction. A cheap proxy service with a small, overused proxy pool produces more retries and a lower success rate, so it usually costs more per successful page than a pricier proxy service with clean IPs.

A dedicated web scraping proxy provider tunes its proxy network for high request volume, which is worth paying for on large jobs but overkill for a one-off scrape. Most proxy service providers publish pool sizes and locations, and most offer a free trial or a handful of test IPs. Use the free trial to measure real behavior on your own targets before committing, because published numbers rarely match what a specific site does to you. Flexible pricing across proxy types lets you mix cheap datacenter proxies with residential proxies only where a site forces the upgrade.

Crawler Proxy set up

Figure 2. Choosing a proxy: take the cheapest tier that clears the target's defenses, since cost climbs from datacenter to mobile.

Setting up and rotating proxies

Setting up a crawler proxy takes one dictionary in code, and everything harder is the rotation strategy layered on top. Client libraries exist for most programming languages, from Python's requests library to Node's axios and Go's net/http, and the shape is identical everywhere: you tell the HTTP client which proxy to route each request through. The minimal version in the requests library assigns one proxy for both HTTP and HTTPS traffic, which is enough to confirm the proxy works before you build anything around it.

import requests

 

proxies = {

    "http": "http://user:pass@proxy-host:port",

    "https": "http://user:pass@proxy-host:port",

}

r = requests.get("https://example.com", proxies=proxies, timeout=15)

print(r.status_code)

A production setup adds five things the minimal example lacks, and skipping any of them shows up later as avoidable blocks that look mysterious until you trace them back to the pool. The first two handle rotation and failure, the next two handle rate and cleanup, and the last handles session identity. Each maps to a specific way sites detect automated traffic, so treat the list as requirements rather than optional polish:

  1. Build a proxy pool and cycle through different proxies per request, or point the client at a backconnect gateway that rotates for you.
  2. Retry through a fresh proxy on a timeout or a 403/429 block, so one bad IP never kills a request outright.
  3. Add a short randomized delay between requests to the same host to stay under its rate limit.
  4. Evict any IP that fails repeatedly, so the pool self-cleans instead of burning retries on dead addresses.
  5. Keep one IP for a whole logged-in session, a sticky session, and switch only between sessions, or the site sees a user teleporting between countries.

import random, requests

 

pool = [

    "http://user:pass@ip1:port",

    "http://user:pass@ip2:port",

    "http://user:pass@ip3:port",

]

 

def fetch(url):

    proxy = random.choice(pool)

    return requests.get(

        url,

        proxies={"http": proxy, "https": proxy},

        timeout=15,

    )

Crawler Proxy settings

Figure 3. The same five steps handled in one production module; the callout numbers match the list above.

Log each scraped response next to the proxy that fetched it and track proxy usage per target, so a spike in failures points straight at the bad IPs instead of forcing you to guess. This one habit turns "the scraper is blocked" into "these twelve IPs are burned," which is the difference between a two-minute fix and an afternoon of debugging. Rotation logic without logging is a black box, and a black box is impossible to tune when a specific site tightens its rules without warning.

A proxy manager or a web scraping API removes the rotation code entirely, at the cost of money and control. A scraper API takes a URL, does the proxy rotation, retries, and often captchas solving on its own servers, then returns the response data through a simple API; both scraper APIs and proxy-provider APIs expose the same idea behind one endpoint. A traditional proxy only forwards traffic, while a scraper API adds the logic on top and is often sold as a powerful tool that removes all proxy work. It removes some control too, which matters against advanced anti-bot systems where behavior has to be tuned by hand.

Feeding a self-built rotation from an API beats editing config files by hand every time the pool changes. proxys.io provides API keys for this, so you request the proxy IP addresses attached to your orders and pipe them straight into your rotation code, or load them into the ProxyControl extension. When addresses rotate between crawls, the API keeps the pool current without manual work, which removes the most tedious part of running your own rotation instead of paying for a managed gateway.

Sites that build content with JavaScript need a real browser, not a plain HTTP client, because requests fetch the initial HTML and never run the page's scripts. Browser automation with Playwright, Puppeteer, or Selenium drives a headless Chromium or Firefox that executes the page's JavaScript, with the proxy attached at browser launch. JavaScript rendering costs several times the CPU and memory of a raw request, so restrict it to pages that truly need it and scrape everything else with a plain client. Scraping dynamic single-page apps is the main case where that overhead is genuinely unavoidable.

Why scrapers get blocked, and how to avoid it

Detection got harder because automation now dominates the web. The Imperva/Thales 2026 Bad Bot Report put automated traffic at 53% of all web activity in 2025, with bad bots alone at 40% and AI-driven bot activity up more than twelvefold in a year. Tim Chang, Thales' Global VP for Application Security, framed the shift plainly: the problem is no longer identifying bots but understanding what each one does. For anyone running a crawler, the consequence is that defenses now score behavior and browser fingerprints, not the IP address alone.

Most blocks trace to a short list of avoidable mistakes, and a few best practices prevent almost all of them. None are exotic; each maps to a specific signal that anti-bot systems watch for, which is why fixing them matters more than any single clever trick. The recurring ones, in the order they usually bite:

  • Volume. One IP sending too many requests is the fastest way to get blocked by the target website, so spread load across the pool and stay under the site's rate limit.
  • Rotating the IP and nothing else. Anti-bot systems fingerprint the User-Agent, the TLS/JA3 signature, header order, and canvas, so the IP address can change while an obvious bot fingerprint stays put.
  • Breaking session consistency. Logging in on one IP and sending the next request from another country is a signal that no rotation hides.
  • Wrong type for the target. Datacenter proxies against a site that blocks datacenter ASNs fail no matter how many you cycle through, a pool problem wearing a rotation costume.
  • Treating captchas as the fix. When captchas appear, the IP or fingerprint is already suspect, so cleaner proxies address the cause, not the symptom.
  • Leaking the real IP. WebRTC or DNS resolving outside the tunnel exposes you even while HTTP traffic is proxied; IP blocking of one address is defeated by rotating the source, but IP address blocking by subnet takes out a whole datacenter range at once.

Anti-bot bypass is a consistency problem, not a single trick, because every layer has to tell the same story. A residential IP behind a headless browser that never moves the mouse and fires a request every 200 ms still reads as a bot to Cloudflare, DataDome, and PerimeterX, which score behavioral patterns rather than the IP alone. The best web scraping setups treat these as one system: residential proxies or mobile proxies, a real browser that behaves like a real user, a stable fingerprint, human-like timing, and sticky sessions where the site expects continuity. No proxy setting can bypass behavioral scoring on its own, and swapping in a datacenter IP gives the whole chain away.

A working setup does not stay working, which is the mistake that wastes the most time overall. Sites update the target website's anti-bot rules, and IPs that passed last month get banned this month, so proxy issues have to be treated as ongoing rather than solved once. Monitor success rate per proxy type, alert when it drops, and rotate suppliers or IP ranges before a slow decline becomes a hard block. Reliability under changing defenses comes from watching those numbers continuously, not from a one-time configuration that looked fine on the day you shipped it.

Security, anonymity, and legal limits

Proxies differ in how much they reveal about you, and the difference is measured by which headers they send. The table below compares the three anonymity levels; only elite proxies are safe for serious scraping, because the other two either expose your real IP or announce that a proxy is in use, and both signals help anti-bot systems flag the traffic before it does anything else.

Anonymity level

Hides your real IP

Reveals it is a proxy

Use for scraping

Transparent

No, sends X-Forwarded-For

Yes

Not usable

Anonymous

Yes

Yes, via the Via header

Low-value targets only

Elite (high-anonymity)

Yes

No

Any serious scraping

A proxy changes which IP the site sees; it does not encrypt anything, which is the most common misunderstanding about proxies. For HTTPS targets the proxy reads the hostname through SNI but not the encrypted body, because TLS protects the payload end to end regardless of the proxy in the path. It adds no protection to plain HTTP and no extra encryption to traffic that is already encrypted. Anyone treating using a proxy as equivalent to a secure connection has the model wrong and should keep TLS as the real protection, with the proxy server handling only which IP the destination records.

Free proxies are the wrong tool for anything beyond a throwaway test, and the reasons are concrete rather than cautious. A free proxy list is usually slow, short-lived, already blocked, and operated by unknown parties who can log or alter traffic, which makes it a genuine hazard for anything touching credentials or sensitive response data. Paid proxies from a known proxy service exist because free ones cannot be trusted at scale, and the anonymous proxies on public lists are anonymous only to you, not necessarily to whoever quietly operates the exit node.

Using proxies is legal, and scraping publicly available web data is broadly accepted in the United States after two rulings. In Meta v. Bright Data, decided January 2024, U.S. District Judge Edward Chen granted Bright Data summary judgment, finding it did not "use" Facebook or Instagram when it scraped public, logged-off pages. Combined with the earlier hiQ v. LinkedIn line, the working rule is that logged-off public collection is defensible while logged-in collection against a site's terms of service is not. A defensible baseline honors robots.txt and rate limits and gathers no personal data without a lawful basis.

The harder question in 2026 is not whether data was public but whether you defeated a protection to reach it. In Reddit's suit against Perplexity, the claim is DMCA Section 1201: that rate limits and anti-bot systems were circumvented to harvest content for AI. In August 2026 Judge Paul Engelmayer let those anti-circumvention claims proceed, which moves the legal risk from access to circumvention. Authentication bypass is criminal under the CFAA and its equivalents abroad, and EU personal data stays under the GDPR wherever the collector sits. The proxy hides your IP address; using proxies as legal cover is a mistake no setting can fix.

FAQ

What is a crawler proxy?

A crawler proxy routes web crawler requests through intermediary IP addresses, allowing large-scale web scraping while reducing the risk of rate limits and IP bans.

What is the difference between datacenter and residential proxies for scraping?

Datacenter proxies are cheap but flagged by ASN; residential proxies use real ISP IP addresses that pass reputation checks. Pick datacenter for open sites, residential for reputation-checked ones.

How many proxies do I need for web scraping?

Enough that no single IP exceeds the site's rate limit. Divide total requests by the limit each IP allows: 6,000 hourly at 60 each needs 100 IP addresses.

Do free proxies work for crawling?

Rarely. A free proxy list is slow, unstable, already blocked, and often logged. Failures and retries cost more than a cheap paid proxy service with clean IPs.

HTTP or SOCKS5, which protocol should a crawler use?

HTTP proxies are the default for web scraping; every library supports them and they handle web traffic directly. Use SOCKS5 only for a generic TCP or UDP tunnel.

Can a proxy alone stop my scraper from getting blocked?

No. A proxy only changes the IP address a site sees; anti-bot systems also read TLS fingerprints, headers, and behavior. Pair it with a consistent browser fingerprint.

Proxy type against target defenses is the decision that governs everything else: datacenter proxies for open sites, residential or ISP proxies where IP reputation is checked, and mobile proxies only for targets that beat everything cheaper. Size the proxy pool to the site's rate limit, rotate the IP together with the browser fingerprint rather than on its own, and match each IP's geographical location to the content you need. Cost per successful request, not the price per IP, is the number to track, because a clean, correctly sized proxy pool beats a large dirty one every time you measure them against the same site.