Save 5% every month: use code 5OFFSTORM at checkout
Home / Guides / CAPTCHAs with proxies

Why do I get CAPTCHAs with proxies?

A site shows a CAPTCHA when your traffic looks automated: too many requests per IP or per session, an IP range it distrusts, missing cookies, or headers that don’t match a real browser. A proxy only changes the IP. To see fewer challenges, slow down per site, pick rotation that fits the job, keep sessions consistent, and use residential IPs for strict retail sites.

Updated October 2026Fix proxy errors

“Blocked or captcha” is one of the main complaints we hear, and it comes up on the same targets again and again: Amazon, Mercado Livre, Newegg, Home Depot, Lowe’s and Google. The proxy connects fine, a new IP shows up, and the site still answers with a puzzle or a “robot check” page.

That’s because a CAPTCHA is the website’s decision, made from many signals at once. The IP is one of them. The others are how fast you send, whether your requests carry the cookies a returning visitor would have, whether your headers look like the browser you claim to be, and whether one session suddenly jumps between addresses. Changing proxies fixes only the first signal.

This guide is about running jobs that finish reliably, with fewer challenges, by fixing those signals. It doesn’t cover CAPTCHA-solving services or ways around a site’s defences. If a site challenges every automated request no matter how polite, the honest options are its official API, a licensed data source, or not scraping it.

Which Storm plan fits

For strict retail targets (Amazon, Mercado Livre, Newegg, Home Depot, Lowe’s and similar), residential ports usually meet fewer challenges than datacenter IPs, because each port exits through a home connection. For Google and other search engines, rotating proxies on the Main gateway with no more than 25% of your threads is the setup we recommend. Many customers run both: residential for the strict shops, rotating for everything else.

Residential rotating proxies (from $19/mo): 20M+ residential IPs. Each port is one IP at a time that changes every 5 minutes, up to 50 threads per port. USA or EU. Unlimited bandwidth on every plan.

Get 5 ports for $50/mo See all residential rotating proxies plans

Before you start

  1. Log in to the member area and copy your gateway IP:PORTs. They never change; the rotation happens on our side.
  2. Add the public IP of the computer or server that will run your tool under Authorized IPs, click Save, and allow up to 15 minutes before testing. Rotating and residential proxies use IP authentication, so there is no username or password.
  3. Count your threads: the tool’s total open connections must stay within your plan (for example 40 threads on the 40-thread plan).

Cut CAPTCHAs step by step, biggest effect first

  1. Confirm it’s a challenge, and log it

    Save the status code and the first part of the body for every response. Some sites send challenges with a 403 or 429, others with a normal 200 and a page that says “Enter the characters you see” or “unusual traffic”. Count challenges per 100 requests per site. Without that number you can’t tell whether a change helped.

  2. Slow down per site

    Pace is the strongest signal. Cap concurrent requests per domain well below your plan’s total, add a random pause between requests to the same site, and back off when the challenge rate rises instead of retrying instantly. Retries that hit the site again within a second look exactly like the bot it’s worried about.

  3. Google: Main gateway, a quarter of your threads

    For search engines, use the Main rotating gateway and at most 25% of your threads: 10 on a 40-thread plan, 20 on 80. Don’t send search queries through the 3-minute gateway; it’s built for browsing and account work, not search. The 429 guide covers backoff in detail.

  4. Match rotation to the kind of work

    Independent page fetches (product pages, search results) suit a new IP per request. Anything with a cart, a login, a location setting or pagination that depends on cookies needs the same IP for the whole session. A session cookie arriving from a new address on every click is a classic trigger. Use the 3- or 15-minute gateway, a residential port (one IP for 5 minutes), or a dedicated proxy for those flows.

  5. Send what a real browser sends

    Default client headers (python-requests/2.x, curl/8.x, an empty Accept-Language) get challenged on many retail sites. Send a current browser User-Agent with a matching set of Accept, Accept-Language and Accept-Encoding headers, and keep that set fixed for the session. Store cookies the site sets and send them back. For pages that need JavaScript to set cookies, use a real browser such as Playwright.

  6. Move strict targets to residential IPs

    Some retail sites score datacenter ranges as riskier before they look at anything else. If your pace and headers are sane and one site still challenges most requests on datacenter IPs, run that site through residential ports. Spread the work: all threads on a port share its one IP, so 5 ports with 10 threads each look like 5 visitors, while 1 port with 50 threads looks like one very busy visitor.

  7. Stop retrying a flagged session

    When a session gets a challenge, drop its cookies, wait, and start a fresh session on a new IP rather than hammering on. A logged-in account that keeps getting challenged is flagged as an account; new IPs won’t clear that.

  8. Still stuck? Tell support the details

    Use the contact page and include your username, the gateway you use, the target site, your software, and the exact error or a copy of the challenge page, plus your threads per site. That’s enough for us to suggest the right gateway or product for that target.

Detect challenges and keep sessions consistent

Replace GATEWAY_IP:PORT with your gateway. The first example counts challenges and backs off; the second keeps one IP and one cookie jar per browser session.

Python: spot a challenge and back off
import random, time, requests

PROXY = "http://GATEWAY_IP:PORT"
HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
                  "(KHTML, like Gecko) Chrome/131.0.6778.86 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language": "en-US,en;q=0.9",
}
MARKERS = ("captcha", "unusual traffic", "robot check", "are you a human")

def is_challenge(r):
    body = r.text[:5000].lower()
    return r.status_code in (403, 429) or any(m in body for m in MARKERS)

def fetch(url, tries=4):
    for attempt in range(tries):
        s = requests.Session()                      # fresh cookies + new connection
        s.proxies = {"http": PROXY, "https": PROXY}
        s.headers.update(HEADERS)
        r = s.get(url, timeout=(10, 30))
        if not is_challenge(r):
            return r
        time.sleep(min(120, 5 * 2 ** attempt) + random.uniform(0, 3))
    return None                                     # log it, don't loop forever
Playwright: one IP and one cookie jar per session
from playwright.sync_api import sync_playwright

# 15-minute gateway (rotating) or a residential port: the IP holds for the session
STICKY = "http://GATEWAY_IP:PORT"

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={"server": STICKY})
    ctx = browser.new_context(locale="en-US")     # own cookies for this session
    page = ctx.new_page()
    page.goto("https://example.com/", wait_until="domcontentloaded")
    page.wait_for_timeout(3000)          # let first-visit cookies settle
    page.goto("https://example.com/search?q=desk")
    print(page.title())
    ctx.close(); browser.close()

What the site is looking at

Bot-detection systems combine signals into a risk score and challenge traffic above a threshold. The ones you control:

  • Rate per IP and per session. Dozens of product pages a minute from one address, or one cookie, is not how people shop.
  • IP type and history. Many retail sites trust home connections more than datacenter ranges. Google says its “unusual traffic” page appears when a network sends automated searches, which includes rank-checking software.
  • Session consistency. Same cookie, different IP each click; or a new visitor that goes straight to page 40 of the results.
  • Headers and client. Library User-Agents, header sets no browser sends, or a browser claim with no JavaScript behind it.
  • Behaviour in browsers. Pages opened in perfect sequence, zero pauses, and every asset requested at once.

A new IP resets only the first two for a moment. That’s why rotating faster rarely fixes a challenge problem on its own.

Datacenter or residential for CAPTCHA-heavy sites

Rotating datacenter gives you 700,000+ IPs with a fresh one per connection on the Main gateway and unlimited bandwidth. It suits search engines (with the 25% rule), most news, directory and catalogue sites, and anything that judges you mainly on rate. It’s the cheaper way to get lots of parallel connections.

Residential exits through home connections from a pool of 20M+. Each port is one IP that changes every 5 minutes, with up to 50 threads on it. Strict shops that distrust datacenter ranges usually challenge it less. The trade-off is fewer IPs at the same moment: 10 ports means 10 addresses at once.

Neither is a pass. Both get challenged if you send too fast. The rotating vs static guide explains when a fixed IP is better still, for example for logged-in accounts.

Worked sizing for the targets people ask about

  • Google rank checks. Rotating proxies, Main gateway. 40 threads ($39/mo) gives 10 Google threads; 80 threads ($59/mo) gives 20. Keep the rest for non-search work or leave them idle.
  • Amazon or Mercado Livre product pages. Start with 5 residential ports ($50/mo) at 5 to 10 threads each, a pause between requests per port, and fresh cookies per session. If the challenge rate stays low, raise threads per port slowly. If it rises, add ports rather than threads.
  • Home Depot, Lowe’s, Newegg price checks. Same pattern: residential ports, low threads per port, a store or ZIP setting kept in one sticky session while you page through results.
  • Mixed jobs. Rotating for search and easy sites, residential for the two or three strict shops. Plans can be changed in the member area with one click and the unused part is credited.

Browsers and CAPTCHAs

A browser on the Main gateway can load one page through several connections, so the HTML, scripts and images may arrive from different IPs. Some sites can treat that as a red flag. For browser work, use the 3- or 15-minute gateway or a residential port so the whole page and session share one address.

Remember the thread cost: one tab uses around 10 threads. Four tabs on a 40-thread plan leave nothing for anything else, and connections over the limit fail, which some tools report as a block. If tabs “randomly” stop loading, check the count before you blame the site. The threads guide has the numbers.

Common errors and fixes

Google: “Our systems have detected unusual traffic from your computer network”Too many queries for the IPs in use, or search traffic on the wrong gateway. Main gateway only, 25% of threads at most, and pause between queries.
Amazon: “Enter the characters you see below” page with status 200A challenge served as a normal page. Detect it in the body, lower threads per IP, keep cookies per session, and move the job to residential ports if it persists.
Challenge appears after the first few pages of a sessionThe session is too fast or its IP changed mid-session. Use a sticky gateway or residential port and add pauses between pages.
Every single request is challenged, even at low speedHeaders or client give you away (library User-Agent, no cookies), or the site distrusts datacenter ranges. Fix headers first, then try residential.
Challenges started after adding more threadsPer-site rate went up. Raise total threads only across more sites or more ports, not on one target.
Browser pages half-load, then show a challengePage assets came from different IPs on the Main gateway, or tabs exceeded your threads. Use a timed gateway or residential port and count tabs at around 10 threads each.

FAQ

Do residential proxies stop CAPTCHAs completely?

No. They usually reduce challenges on sites that distrust datacenter IPs, but pace, cookies and headers still count. Too many requests through one residential port get challenged like anything else.

Which Storm gateway should I use for Google to avoid CAPTCHAs?

The Main rotating gateway, with no more than 25% of your plan’s threads on search engines. Don’t use the 3-minute gateway for search scraping.

Can I get a new residential IP right after a CAPTCHA?

Not on demand. Storm residential ports change IP every 5 minutes at fixed times (minute 1, 6, 11 and so on), with no manual rotation link. Pause that port and send work to another one, or use the rotating Main gateway when you need a new IP per request.

Why do I get CAPTCHAs with proxies but not on my home connection?

At home you browse slowly, with a full browser, cookies built up over time and an IP that only you use. A script sends faster, without that history, often from a datacenter range. Close the gap on pace, cookies and headers first.

Does rotating the User-Agent on every request help?

Usually not. A visitor whose browser changes on every click within one session looks stranger than one that stays the same. Pick a realistic User-Agent and header set per session and keep it.

Should I use a CAPTCHA-solving service?

We don’t recommend building on it. A high challenge rate means the site is unhappy with the traffic; fix the pace and setup so challenges stay rare, or use the site’s official data access where it has one.

Still have questions? Contact us here. A real person answers.

Related guides

Tool facts checked against the official documentation (October 2026): Google Search Help: unusual traffic · Cloudflare: Challenges · Playwright: Network proxy · Requests: Session objects. Storm Proxies facts: our plans page and refund policy.

Unlimited bandwidth. One flat monthly price.

Access is live the moment you pay, and the smallest package of each proxy type has a 24-hour money-back guarantee on your first order.