Static vs Rotating Proxies
Reviewed September 2026. Test the exact provider and approved destination because rotation behavior and session controls vary by product.
The core difference
A static proxy keeps one exit address for a defined allocation or session. A rotating proxy changes exits according to provider rules or a client-selected session parameter. Static versus rotating describes address behavior; it does not by itself describe whether an address comes from a data center, ISP, residential, or mobile network.
Map the behavior to the job
| Job property | Static exit | Rotating exit |
|---|---|---|
| Partner allowlist | Often appropriate when authorized | Usually difficult to maintain |
| Authenticated multi-step session | Maintains a predictable route | Needs documented sticky session |
| Independent permitted requests | Simple to audit and reproduce | Can distribute independent jobs if allowed |
| Incident investigation | Exit can be correlated with a time window | Requires detailed session and exit logs |
An exit may change because an allocation expires, a provider performs maintenance, a session parameter changes, or capacity is unavailable. Define the expected session duration and recovery behavior before a job depends on it. “Static” does not mean permanent, and “rotating” does not mean every request uses a new address.
Choose a static proxy when
- An approved API or partner system allowlists an exit address.
- A login, cart, workflow, or test requires session continuity.
- Operational investigation needs a stable, attributable route.
- The available locations and capacity fit the workload.
Choose rotation when
- Jobs are independent and do not share authenticated state.
- The approved task needs broader location sampling.
- The provider exposes clear sticky-session and rotation controls.
- The collector can validate exit identity and safely replay a failed job.
Rotation is not a substitute for rate limiting or authorization. Changing addresses can break state and make debugging harder, and it must not be used to evade an explicit access denial.
Test session behavior and routing
- Use a controlled, authorized endpoint that returns the observed exit address, country, and request ID.
- Run a stable-session test for the longest intended workflow, recording exit changes and connection errors.
- Run independent jobs at the approved per-origin rate and record exit distribution, latency, bytes, and validated results.
- Test DNS behavior, credential revocation, timeout handling, and recovery from a provider connection failure.
- Repeat on a separate day and keep the configuration with the report.
Do not use a public IP echo result as evidence of a destination's view when an application has multiple network layers. Test the actual client configuration, including redirects and TLS tunnels, on a system you control.
Define address lifecycle rules
Write down when an address is selected, how a client requests a sticky session, how long that session may last, what event ends it, and whether the provider can replace it during maintenance. Keep those rules separate from retry policy. A retry may reuse the same session after a brief connection failure when the workflow permits it. A new job may choose a new exit. An authenticated sequence should not silently move to another address halfway through.
Store the provider session reference only as long as the job needs it. Record the observed exit, start time, end time, and reason for termination. This is enough to investigate a routing problem without treating the proxy session as a user profile.
Choose rotation frequency from state
| Work pattern | Address policy | Reason |
|---|---|---|
| Authorized partner integration | Allocated static exit | Allowlists and audit records need continuity |
| Single permitted page fetch | Provider default or independent session | No shared application state |
| Multi-page collection workflow | Sticky session for the defined job | Cookies and route expectations can persist |
| Source incident | Pause the source | Changing exits does not resolve a policy or parser failure |
Test lifecycle transitions with a controlled endpoint. Confirm that an expired session produces a classified error, that a new job receives the documented behavior, and that shutdown closes client connections before credentials are rotated.
Diagnose common lifecycle failures
When an exit changes unexpectedly, first check the session parameter, allocation expiry, provider maintenance notice, and client connection reuse. When an authenticated sequence fails, compare the observed exit and cookie scope before retrying. A DNS failure, proxy authentication error, destination status, and parser error belong to different owners and should be reported separately.
A static allocation needs capacity and renewal monitoring. A rotating pool needs exit-distribution and sticky-session monitoring. Both need a source-level stop switch. Run a short canary after client, provider, or credential changes, then compare its route, error class, and output validation with the approved baseline.
Document the owner for each session policy. That person should be able to explain why the job uses a stable or rotating exit and how the job stops when its assumptions fail. Include the session key format, maximum age, expected exit scope, and what the client reports when the proxy replaces an address. This removes ambiguity during an incident and keeps independent jobs from inheriting stale state.
Review these fields with the application team, not only the proxy operator. Cookie handling, queue retry behavior, and storage idempotency determine whether a changed address becomes a recoverable event or a corrupted workflow. Check the policy after every material client or provider release, destination contract revision, or change to the job sequence.
Decision checklist
Write down required session length, location precision, concurrency, DNS behavior, authentication, retry policy, audit needs, and budget. Run the same bounded request set and measure connection errors, status classes, latency percentiles, session failures, location drift, and usable-result cost.
See the rotating proxy guide, ISP (static residential) plans, and rotating residential plans for implementation details.
Implementation rules
- Scope credentials to one workload and store them as secrets.
- Use a central queue and per-origin concurrency limits.
- Keep authenticated multi-step work on one controlled session.
- Retry only transient failures with jitter and a finite limit.
- Record the exit, region, latency, and error class without logging secrets.
Re-evaluate when the provider, destination, or workload changes. Category-wide success-rate claims cannot replace a dated test of the system you will operate.
Operate with explicit boundaries
Keep credentials scoped to a workload, rotate them through the provider's supported process, and alert on unexpected exit drift. Store a correlation ID, coarse exit identity, attempt count, and error class without storing proxy passwords, authorization headers, or response bodies by default. A circuit breaker should pause jobs for a source when error or policy signals cross a reviewed threshold. Resume only after the cause is understood or permission is confirmed.