TrueSocks

Use cases · 7 min

Best Proxies for Web Scraping in 2026: How to Pick the Right Type

There is no single best proxy for web scraping. The right choice depends on the target: lightly protected sites and APIs are scraped cheaply with datacenter IPv4 or IPv6, while sites with serious bot protection usually need ISP or residential addresses. This guide shows how to match the proxy type to the target, how many IPs you actually need, when to rotate and when to keep a sticky session, and what besides the IP address decides whether your scraper gets data or a block page.

  • TrueSocks team
  • 7 min read

The short answer: match the proxy to the target

Before buying anything, open the target site in a clean browser and look at how it behaves. Does it load plain HTML? Does it show a JavaScript challenge or a captcha on the first visit? Does it throttle you after a few dozen fast page loads from your own connection? Those three observations tell you more about the right proxy than any ranking.

  • Light targets (public catalogs, news sites, open APIs, documentation, most small e-commerce stores): datacenter IPv4 or budget IPv4 eco proxies are fast and cheap per request.
  • IPv6-ready targets (large platforms and CDNs that serve over IPv6): IPv6 proxies give you a huge number of addresses for the price of a few IPv4s.
  • Protected targets (marketplaces, search engines, travel and ticketing sites, social networks): residential proxies or ISP proxies, because their IPs belong to consumer internet providers and carry a better reputation.

Most mature scraping setups mix types: cheap datacenter IPs for the bulk of easy pages and a smaller residential budget for the pages that block everything else. If you are unsure of the trade-offs, our comparison of residential vs datacenter proxies goes deeper.

Proxy types for scraping compared

Each proxy type has a different cost model and a different reputation in the eyes of anti-bot systems. Datacenter IPs are billed per address and have unlimited or generous traffic, so they are ideal for high volume. Residential proxies are usually billed per gigabyte, so you pay for every byte of HTML, images and scripts you download.

Target typeRecommended proxySession modeWhy
Open APIs, RSS, sitemapsDatacenter IPv4 or IPv4 ecoRotate per request or per batchNo real bot protection, speed and cost per request matter most
Small and mid-size e-commerceDatacenter IPv4, ISP for stubborn onesSticky for pagination, rotate between productsBasic rate limits, few reputation checks
Large platforms with IPv6 supportIPv6Rotate across a large poolMany addresses, low cost per IP, check IPv6 support first
Marketplaces, travel, ticketingResidential or ISPSticky 5-30 minutes per flowStrong reputation scoring and behavioral checks
Search engine results (SERP)Residential, ISP for steady volumeRotate, one query per IP per short windowAggressive throttling and captchas on datacenter ranges
Logged-in scraping, own accountsISP or dedicated IPv4Sticky, one IP per accountA changing IP on a logged-in session triggers security checks
Starting points, not rules: always test on your own target.

Mobile proxies are an option for the hardest targets, since many real users share each carrier IP, but for most scraping jobs residential or ISP addresses do the job at a lower cost.

Rotating vs sticky sessions

A rotating proxy gives you a new exit IP on every request or every few minutes. A sticky session keeps the same IP for a set period. Neither is better in general: the right mode depends on whether the site expects continuity.

When to rotate

  • Independent pages: product cards, articles, search queries that do not depend on each other.
  • Targets that count requests per IP and block once a threshold is crossed.
  • Large crawls where spreading load over many addresses keeps each one under the radar.

When to stay sticky

  • Multi-step flows: pagination with session tokens, filters stored in cookies, carts, checkouts.
  • Anything behind a login. A session cookie used from five countries in five minutes looks like account theft.
  • Sites that issue a challenge cookie after a JavaScript check: switching IP throws that cookie away and you solve the challenge again.

A practical pattern is a sticky session per worker: each worker keeps one IP for a short window, completes a logical unit of work (a category, a search query with all its pages), then gets a fresh IP.

How many proxies do you need: pool size math

Pool size is simple arithmetic once you know how many requests a single IP can make on your target without being throttled. Find that number by testing: start slow, increase the rate on one IP until you see 429 Too Many Requests, captchas or empty responses, then take roughly half of that as your safe rate.

Pool size formula
IPs needed = target requests per minute / safe requests per IP per minute

Example:
  goal: 100,000 pages in 4 hours  = ~420 requests per minute
  safe rate on target: 6 requests per IP per minute
  pool: 420 / 6 = 70 IPs, plus ~20% spare = ~85 IPs
  • Keep a spare margin of 15-25% for IPs that get temporarily throttled or need replacing.
  • Concurrency per IP matters as much as rate: two or three parallel connections per IP look far more natural than fifty.
  • For residential traffic billed per GB, estimate bandwidth too: average page weight multiplied by page count. Blocking images, fonts and media in a headless browser can cut that several times.

IPv6 for supported targets, residential for protected ones

IPv6 is the most underrated scraping tool. A single IPv6 allocation contains an enormous number of addresses, so you can rotate across thousands of IPs at a fraction of the IPv4 cost. The catch is support: the target must have an AAAA DNS record and actually serve content over IPv6. Many large platforms and CDNs do, many smaller sites do not, and some sites treat whole IPv6 subnets as one client.

Check whether a target supports IPv6
dig AAAA example.com +short
curl -6 -s -o /dev/null -w "%{http_code}\n" https://example.com/

If the first command returns nothing, the site is IPv4-only and IPv6 proxies will not reach it. More on the trade-offs in IPv4 vs IPv6 proxies.

For protected targets, residential addresses are the default choice. Anti-bot vendors score IPs by the network they belong to, and ranges registered to hosting companies start with a lower trust score than home broadband. ISP proxies combine both worlds: they are hosted in data centers, so they are fast and stable, but registered to consumer providers, which makes them a strong fit for long sticky sessions.

Beyond the IP: headers, fingerprints and TLS

A clean IP will not save a scraper that announces itself as a script. Modern bot protection looks at the whole request, and a mismatch anywhere is enough to get flagged.

  • Headers. Send a realistic User-Agent, Accept, Accept-Language and Accept-Encoding set, in a consistent order. The default python-requests user agent is blocked almost everywhere.
  • Consistency. Language and timezone should fit the proxy country. A German IP with Accept-Language: en-US is not suspicious alone, but combined with other signals it adds up.
  • TLS fingerprint. Protection systems fingerprint the TLS handshake (cipher order, extensions). Plain HTTP libraries produce handshakes that no browser makes. For hard targets, use a headless browser or a client library that mimics browser TLS.
  • JavaScript checks. If the site renders content or runs challenges in JavaScript, you need a real browser engine; no proxy changes that.
  • Cookies. Keep cookies per session. Discarding them on every request looks like a brand new visitor every second.

Example: Python requests with a proxy

Here is a minimal scraper that routes traffic through an authenticated proxy, sends browser-like headers and backs off on rate-limit responses. Replace the placeholder address and credentials with your own. For SOCKS5, install requests[socks] and use the socks5h:// scheme so DNS is resolved on the proxy side; see what is a SOCKS5 proxy for details.

Python
import random, time
import requests

PROXY = 'http://login:[email protected]:8000'
proxies = {'http': PROXY, 'https': PROXY}

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                  '(KHTML, like Gecko) Chrome/130.0 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.9',
}

session = requests.Session()
session.headers.update(headers)

def fetch(url, retries=5):
    delay = 2
    for attempt in range(retries):
        r = session.get(url, proxies=proxies, timeout=20)
        if r.status_code in (429, 503):
            wait = int(r.headers.get('Retry-After', delay))
            time.sleep(wait + random.uniform(0, 1))
            delay *= 2
            continue
        r.raise_for_status()
        return r.text
    raise RuntimeError('gave up on ' + url)

html = fetch('https://example.com/catalog?page=1')

Before plugging a list of proxies into code, paste it into the free TrueSocks proxy checker and format converter: it parses ip:port:login:password, login:password@ip:port and URL formats, flags broken lines and converts the list into the format your code expects.

Rate limits, backoff and staying polite

Most blocks are earned by request patterns, not by IP type. A well-behaved scraper on datacenter IPs often outlives an aggressive one on residential.

  1. Add random delays between requests instead of a fixed interval.
  2. Honor 429 and 503 responses: respect the Retry-After header and use exponential backoff with jitter, as in the example above.
  3. Cap concurrency per IP and per domain, not just globally.
  4. Stop and investigate when the error rate climbs, instead of hammering the site with retries that burn your pool.
  5. Cache pages you already have and request only what changed.

For SEO tasks such as rank tracking and SERP collection see the proxies for SEO page, and for dataset collection for machine learning see proxies for AI. General scraping setups are covered on proxies for parsing.

Frequently asked questions

What is the best proxy type for web scraping?

For lightly protected sites and APIs, datacenter IPv4 or IPv6 proxies give the best speed and cost per request. For sites with strong bot protection such as marketplaces and search engines, residential or ISP proxies are usually required. Many projects combine both.

Should I use rotating or sticky proxies for scraping?

Rotate when pages are independent and the site counts requests per IP. Use sticky sessions for multi-step flows, pagination with session tokens, logged-in scraping and sites that set a challenge cookie after a JavaScript check.

How many proxies do I need for scraping?

Divide your target requests per minute by the safe number of requests one IP can make per minute on that site, then add 15-25% spare. Find the safe rate by testing one IP until you see throttling and taking about half of that value.

Is web scraping with proxies legal?

Collecting publicly available data is generally permitted in many jurisdictions, but rules vary by country and by site terms. Respect robots.txt and terms of service, avoid personal data without a lawful basis and never bypass access controls. Proxies do not change the legal status of what you collect.

Now boarding

Proxies for this task

Starting price per unit for the base term. Countries and volume discounts are listed on each product page.

  • #web scraping
  • #residential proxies
  • #datacenter proxies
  • #rotation
  • #rate limits

Proxies are provided for lawful use only. Spam, fraud and hacking are prohibited; follow the rules of the platforms you work with. Terms of service

All articles