Pool size & IP rotation
| Provider | Requests fired | Unique IPs seen | Rotation rate | First repeat | Countries observed |
|---|---|---|---|---|---|
| Oxylabs | 200 | 200 | 100.0% | none in 200 | 46 countries |
| Decodo | 249 | 249 | 100.0% | none in 249 | 49 countries |
| Webshare (free/10-IP) | 200 | 10 | 5.0% | req 6 | 6 countries |
* Webshare free plan is limited to 10 dedicated IPs by design. A paid residential plan would perform differently. Included here as a reference floor.
Unique IPs per 200 requests — provider comparison
Top countries in the global pool
Oxylabs — top 12 countries (200 requests, no country filter)
Decodo — top 12 countries (249 requests, no country filter)
Both providers show a similar "no-filter" distribution: France dominant, heavy MENA and Eastern Europe presence. Neither delivered US-majority IPs without a country filter. Set an explicit country filter in your proxy config if geographic targeting matters.
Comparison with other providers
* Decodo: 18/61 sites only (100MB trial cap hit at c1–c4). c8 and c16 data missing. Partial dataset likely overstates performance relative to full 61-site run.
Success rate by protection vendor — Oxylabs
Infrastructure success rate
| Provider | c1 success | c2 success | c4 success | c8 success | c16 success | Overall |
|---|---|---|---|---|---|---|
| Oxylabs | 44.7% | 44.0% | 43.3% | 43.0% | 41.8% | 43.4% |
| Shifter | 20.4% | 19.9% | 20.2% | 38.4% | 37.9% | 27.4% |
| Decodo partial * | 24.5% | 23.6% | 25.1% | — | — | 24.4% |
* Decodo cap hit — c8 and c16 data not available. Shifter c8/c16 jump (20% → 38%) is anomalous and likely reflects the harness picking up sites where Shifter accidentally worked better under load (sessions becoming "warmed").
Overall result breakdown — all requests
* Decodo's 93% timeout rate reflects the 100MB cap being hit mid-run — most requests after the cap were transport errors, not site-level blocks. The 4.2% success is from the first 18 sites before the cap.
Success rate vs concurrency
Site-level concurrency cliffs (Oxylabs)
| Site | Protection | c1 | c2 | c4 | c8 | c16 | Pattern |
|---|---|---|---|---|---|---|---|
| workopolis | — | 100% | 97.5% | 100% | 94.4% | 20.9% | Hard cliff at c16 |
| bestbuy | — | 97.5% | 84.2% | 85.4% | 86.9% | 86.3% | Early drop, stable |
| remote.co | Akamai | 95.0% | 95.0% | 86.3% | 83.1% | 83.4% | Gradual from c4 |
| familydollar | Akamai | 70.0% | 72.5% | 68.8% | 60.0% | 64.1% | Slow drain |
| amazon | Akamai | 100% | 100% | 100% | 100% | 100% | No cliff |
| booking.com | Akamai | 100% | 100% | 100% | 100% | 99.7% | No cliff |
| dice | Cloudflare | 100% | 95.0% | 98.8% | 97.5% | 96.3% | Stable |
Throughput — requests per second
| Concurrency | Oxylabs RPS | Shifter RPS | Decodo RPS |
|---|---|---|---|
| c1 | 0.31 | 0.18 | 0.09 |
| c2 | 0.50 | 0.22 | 0.11 |
| c4 | 0.80 | 0.33 | 0.32 |
| c8 | 1.27 | 0.50 | — |
| c16 | 1.95 | 0.66 | — |
Oxylabs delivers 3× the throughput of Shifter at c16. Note this is total requests completed (including blocks) — success throughput is lower. At 43.4% success rate, Oxylabs delivers ~0.85 successful page fetches/sec at c16.
Response time
| Provider | Mean | Median (p50) | p95 | Max observed |
|---|---|---|---|---|
| Oxylabs | 1,475 ms | 1,190 ms | 2,910 ms | 7,139 ms |
| Shifter | 1,700 ms | 1,209 ms | 4,324 ms | 6,514 ms |
| Decodo partial | 4,532 ms | 3,913 ms | 5,507 ms | 7,707 ms |
Median (p50) latency comparison
Oxylabs response time vs concurrency
| Concurrency | Mean | p50 | p95 | Max | RPS |
|---|---|---|---|---|---|
| c1 | 1,509 ms | 1,238 ms | 2,743 ms | 3,993 ms | 0.31 |
| c2 | 1,458 ms | 1,162 ms | 2,766 ms | 5,595 ms | 0.50 |
| c4 | 1,473 ms | 1,157 ms | 3,045 ms | 7,354 ms | 0.80 |
| c8 | 1,423 ms | 1,181 ms | 2,898 ms | 8,686 ms | 1.27 |
| c16 | 1,510 ms | 1,209 ms | 3,115 ms | 10,487 ms | 1.95 |
p50 is remarkably stable across all concurrency levels — the median node stays around 1.2 seconds. p95 and max grow as concurrency increases, showing the tail degrades under load while the median holds.
Block rate & failure types
| Provider | Total requests | Success | Blocked | Timeout / error |
|---|---|---|---|---|
| Oxylabs | 37,914 | 42.4% (16,070) | 47.8% (18,137) | 9.8% (3,707) |
| Shifter | 28,046 | 36.6% (10,278) | 30.5% (8,568) | 32.8% (9,200) |
| Decodo partial | 12,227 | 4.2% (513) | 2.8% (339) | 93.0% (11,375) |
Oxylabs has a higher block rate than Shifter (47.8% vs 30.5%) but a much lower timeout rate (9.8% vs 32.8%). This tells a different story: Oxylabs gets a clean yes/no from sites — they either let it through or explicitly block it. Shifter stalls and times out more often, suggesting lower exit node reliability or queue saturation.
What the block rate by vendor tells you
| Protection vendor | Sites | Success | Block | Implication |
|---|---|---|---|---|
| None / unknown | 25 | 56.0% | 35.2% | Baseline — rate limits + geo blocks even without bot detection |
| Akamai Bot Manager | 17 | 43.1% | 50.0% | Inconsistent — Amazon (100%) and Walmart (0%) are both Akamai |
| Cloudflare | 15 | 34.6% | 58.0% | JS challenge is the differentiator — some sites skip it, most don't |
| PerimeterX | 4 | 0.0% | 75.1% | Complete wall — browser fingerprinting required, IPs irrelevant |