All posts
Guides4 min readOct 11, 2026

Sticky vs rotating sessions: which one to use, and when

Rotating sessions give you a new IP on every connection; sticky sessions keep one IP for as long as you need it. How each works on crawlproxies, and how to choose for scraping, logins and checkouts.

By crawlproxies

Every proxy request answers one question: should this come from the same IP as the last one, or a different one? Get it wrong and you either get flagged for an account that hops between countries mid-login, or you crawl ten thousand pages from one IP until it's blocked. On crawlproxies the answer is a few characters in your username.

Rotating: a new IP on every connection

If your username has no session in it, you're rotating:

text
USERNAME-country-us

Every new connection through the gateway gets a different IP from the pool. Rotating is the right default for work where each request stands on its own:

  • crawling product pages, search results or listings
  • price and availability checks
  • SEO rank tracking and ad verification
  • anything you'd happily run from a thousand different machines
Rotation is per connection, not per request. Most HTTP clients keep a connection open and send several requests over it, and those requests share the connection's IP. If you need a fresh IP every single time, open a new connection per request. Our Python and Node.js guides show how.

Sticky: one IP for as long as you need

Add a session id to the username and the gateway keeps routing you through the same IP:

text
USERNAME-country-us-session-cart42-time-1800
  • -session-cart42 names the session. Any letters and numbers you like; reuse the same id to keep the same IP.
  • -time-1800 is how long to hold the IP, in seconds (here, 30 minutes). In the generator you pick the length in minutes, up to 2 hours on Residential.

Use sticky sessions whenever a website expects one visitor to stay put:

  • logging in and staying logged in
  • carts, checkouts and multi-step forms
  • managing social or marketplace accounts
  • anything with a session cookie tied to your IP

Changing IP between "enter password" and "enter code" looks exactly like an account takeover, and sites treat it that way.

Side by side

RotatingSticky
UsernameUSERNAME-country-usUSERNAME-country-us-session-ID-time-1800
IP changesEvery new connectionWhen you change the session id, or the time runs out
Best forCrawling, monitoring, high volumeLogins, accounts, checkouts
Blocking riskSpread across many IPsConcentrated on one IP: pace yourself
Typical patternMany workers, one usernameOne session id per account or task

Patterns that work

One session per account. Derive the session id from the account so the same account always comes back to the same session while it's alive:

python
def proxy_for_account(account_id: str) -> str:
    user = f"USERNAME-country-us-session-acct{account_id}-time-3600"
    return f"http://{user}:PASSWORD@geo.crawlproxies.com:8080"

One session per job. For a multi-step job (search, open result, add to cart, check out), create a new session id when the job starts and drop it when it ends:

python
import uuid

job_session = uuid.uuid4().hex[:10]
proxy = f"http://USERNAME-country-us-session-{job_session}-time-900:PASSWORD@geo.crawlproxies.com:8080"

Rotate the session when you're blocked. If a sticky IP starts returning 403s or CAPTCHAs, switch to a new session id rather than retrying the same one: you get a clean IP and keep everything else.

Things to plan for

  • Residential IPs are real devices. Phones go to sleep and routers restart. A sticky IP can disappear before your timer runs out. If the IP changes mid-session, re-check your login state instead of assuming it held.
  • Keep sessions as short as the task. A 2-hour session for a 2-minute job just ties one IP to more of your traffic than necessary.
  • Don't share a session between unrelated accounts. Two accounts on one IP is a classic linking signal.
  • Pace sticky traffic. All of a session's requests come from one IP, so the site sees one very busy visitor. Add delays like a person would.

Which products support sessions?

Sticky sessions work on every product except Dedicated ISP. The generator shows the session option for your plan and the longest duration it allows. Dedicated ISP works differently: each proxy line is its own static IP, so there's nothing to make sticky. Every request on that line already uses the same IP.

Ready to try both? Open the generator, switch the session type, and compare the IPs with curl -x ... https://ipinfo.io/ip.

Written by
crawlproxies
Create account