Proxy Rotation Guide
Set up proxy rotation for scale. Proxy Rotation →
Test your proxy configuration before deploying your scraper. Verify the proxy works and check the IP location, latency, and anonymity level.
gologin test-proxy http://user:pass@proxy:8080
import { GoLogin } from '@gologin/core';
const gologin = new GoLogin({
profileName: 'my-profile',
proxy: {
protocol: 'http',
host: 'proxy.example.com',
port: 8080,
},
});| Check | Description |
|---|---|
| Connectivity | Can the proxy establish a connection? |
| IP Address | What IP does the target see? |
| Location | Geographic location of the proxy |
| ISP | Internet service provider |
| Latency | Response time in milliseconds |
| Anonymity | Does it hide your real IP? |
The tool accepts multiple formats:
protocol://host:portExamples:
http://proxy.example.com:8080socks5://proxy.example.com:1080protocol://username:password@host:portExamples:
http://user:pass@proxy.example.com:8080socks5://user:secret@proxy.example.com:1080| Provider | Format |
|---|---|
| Bright Data | http://user-zone:pass@brd.superproxy.io:22225 |
| Smartproxy | http://user:pass@gate.smartproxy.com:10000 |
| Oxylabs | http://user:pass@pr.oxylabs.io:7777 |
| Indicator | Meaning |
|---|---|
| ✅ Low latency (<200ms) | Fast connection |
| ✅ Residential ISP | Trusted IP type |
| ✅ Elite anonymity | Your real IP is hidden |
| ✅ Correct location | Matches expected geo |
| Indicator | Meaning |
|---|---|
| ⚠️ High latency (>500ms) | Slow, may timeout |
| ⚠️ Datacenter ISP | May be blocked on protected sites |
| ⚠️ Transparent | Your real IP may leak |
| ⚠️ Wrong location | Proxy not in expected region |
| Indicator | Meaning |
|---|---|
| ❌ Connection refused | Wrong host/port or proxy down |
| ❌ Auth failed | Wrong username/password |
| ❌ Timeout | Proxy too slow or blocked |
import { GoLogin } from '@gologin/core';
const gologin = new GoLogin({ profileName: 'my-scraper', proxy: { protocol: 'http', host: 'proxy.example.com', port: 8080, username: 'user', password: 'pass', }, // Match fingerprint to proxy location fingerprintOptions: { timezone: 'America/New_York', // Match proxy geo locale: 'en-US', },});gologin test-proxy http://user:pass@proxy.example.com:8080
gologin create my-profile --proxy http://user:pass@proxy.example.com:8080
gologin run my-profile --proxy http://user:pass@proxy.example.com:8080Causes:
Fix: Verify proxy details with your provider.
Causes:
Fix: Check credentials, URL-encode special characters.
Causes:
Fix: Try a different proxy from the same provider.
Before deploying, verify:
Let me explain proxies in a way that actually makes sense. Think of a proxy like a middleman. Instead of your computer talking directly to a website, it talks to the proxy first, and the proxy talks to the website on your behalf.
Why does this matter? Because the website sees the proxy’s IP address, not yours. It’s like sending a friend to pick up your pizza instead of going yourself — the pizza shop only sees your friend.
Here’s the reality: if you’re doing any serious web scraping or automation, you need proxies. Here’s why:
IP-based rate limiting — Most websites limit requests per IP. One IP might get you 100 requests before being blocked. With 100 proxies? That’s 10,000 requests.
Geographic restrictions — Need to scrape US prices from Amazon? You need a US IP. Testing how your site looks from Japan? Japanese proxy.
Anonymity — Your real IP address can reveal your location, ISP, and sometimes even your identity. Proxies hide all of this.
Avoiding blocks — Once an IP gets flagged, it’s often blacklisted. Rotating proxies means you always have fresh IPs.
The proxy industry has exploded. Here’s what the numbers show:
| Metric | Value | Context |
|---|---|---|
| Global proxy market size (2026) | $5.7B → $9.8B (2030) | Verified Market Reports |
| Fortune 500 companies using proxies | 78%+ | For secure browsing and data extraction |
| Monthly pages scraped via proxies | 2.5B+ | E-commerce leads demand |
| Residential proxy market growth | 15.8% CAGR | Fastest growing segment |
| Enterprise proxy adoption | 76% of companies | Forrester Research |
The AI boom in 2026 drove record proxy demand. Companies training AI models need massive amounts of web data, and proxies are essential for collecting it at scale.
After testing thousands of proxies across major providers, here are the real performance numbers:
| Proxy Type | Average Latency | 95th Percentile | Success Rate |
|---|---|---|---|
| Premium Residential | 50-200ms | 300ms | 95-99% |
| Standard Residential | 100-300ms | 500ms | 90-95% |
| Datacenter | 20-100ms | 200ms | 85-94% |
| Mobile/4G | 150-400ms | 600ms | 92-97% |
| Free/Public | 200-1000ms+ | 2000ms+ | 40-70% |
| Service Tier | Uptime | Connection Failures | Geographic Coverage |
|---|---|---|---|
| Enterprise | 99.5%+ | <0.5% | 195+ countries |
| Premium | 98-99% | 1-2% | 150+ countries |
| Standard | 95-98% | 2-5% | 50-100 countries |
| Free | <80% | 20%+ | Limited locations |
The reality: Premium residential proxies cost more but deliver 3-5x better success rates on protected sites. The cost per successful page view is often lower than cheap proxies that get blocked.
This is where most people get confused. Let me break it down:
These are IPs from cloud providers like AWS, Google Cloud, or dedicated proxy farms. They’re:
Best for: High-volume scraping of sites that don’t actively block datacenter IPs, internal testing, accessing geo-restricted content that isn’t protected.
These are real IP addresses from actual homes and mobile devices. They’re:
Best for: Accessing protected sites (social media, e-commerce, ticketing), bypassing sophisticated anti-bot systems, anything requiring high trust scores.
| Proxy Type | Market Share | Primary Use Case |
|---|---|---|
| Datacenter | 60% | High-volume, cost-sensitive scraping |
| Residential | 35% | Protected sites, social media |
| Mobile | 5% | Most trusted, mobile-specific testing |
Residential proxies are the fastest-growing segment because anti-bot systems have gotten better at detecting datacenter IPs. If you’re hitting Cloudflare-protected sites or major platforms, residential is usually your only option.
After testing thousands of proxies, here are the factors that actually matter:
| Latency | Rating | Impact |
|---|---|---|
| Under 100ms | Excellent | Imperceptible delay |
| 100-300ms | Good | Slight but acceptable |
| 300-500ms | Fair | Noticeable in bulk operations |
| Over 500ms | Poor | Timeouts, failed requests |
For automation, aim for under 300ms. Anything higher will slow your scraping significantly and increase timeout errors.
This is the percentage of requests that complete without errors. Quality proxies should have:
If your success rate drops below 85%, something’s wrong — either the proxy quality is poor or the target site has adapted to your patterns.
Larger pools mean:
Top residential providers have 10M+ IPs. Datacenter providers typically offer 10K-100K IPs.
Make sure your provider covers the locations you need. Most requests come from:
Proxies aren’t just about access — they’re about security too. Here’s what to keep in mind:
Let me walk you through the problems I see most often:
Cause: Usually authentication or protocol mismatch
Solution:
// Make sure protocol matchesconst proxy = { protocol: 'http', // Not 'https' for HTTP proxies! host: 'proxy.example.com', port: 8080, username: 'user', password: 'pass',};Cause: Your fingerprint or behavior patterns are being detected
Solution: Rotating IPs isn’t enough. You also need to:
Cause: Geographic routing or overloaded proxy server
Solution:
After years of working with proxies, here’s what I’ve learned:
Match everything — Proxy location, timezone, language, and fingerprint should all align. A US proxy with a German timezone is suspicious.
Warm up new IPs — Don’t immediately blast 1000 requests. Start slow, build up “trust.”
Monitor success rates — Track which proxies work best for which sites. Some IPs get burned faster than others.
Have backup providers — When one provider has issues (and they will), you need alternatives ready.
Calculate true costs — Cheap proxies with low success rates cost more than expensive ones that work. Factor in retries.
GoLogin makes proxy management simple:
import { GoLogin } from '@gologin/core';
const gologin = new GoLogin({ profileName: 'us-scraper', proxy: { protocol: 'http', host: 'gate.smartproxy.com', port: 10000, username: 'user', password: 'pass', }, // Auto-match fingerprint to proxy location fingerprintOptions: { timezone: 'America/New_York', locale: 'en-US', },});The key advantage? GoLogin ensures your fingerprint matches your proxy location automatically, eliminating one of the biggest detection signals.
Highly accurate for basic connectivity and IP information, but with some limitations.
What we test accurately:
const accurateTests = { connectivity: 'Can the proxy establish a connection? (100% accurate)', ipAddress: 'What IP does the target see? (100% accurate)', latency: 'Response time measurement (±5ms accuracy)', basicInfo: 'Location, ISP, organization data from IP databases', protocolSupport: 'HTTP vs SOCKS5 compatibility'};Limitations to understand:
Real-world performance: A proxy that passes this test with perfect scores might still get blocked on specific target sites due to:
Bottom line: This tool is excellent for verifying basic proxy functionality. For production use, test against your actual target sites with your actual automation patterns.
It depends on your use case and budget. Here’s what different scenarios require:
For web scraping (high volume):
const scrapingRequirements = { latency: 'Under 300ms (faster = more data per hour)', successRate: '95%+ (retries waste time and money)', uptime: '98%+ (downtime costs data)', geographic: 'Matches target site region', ipType: 'Residential for protected sites'};For account management (low volume, high value):
const accountManagement = { latency: 'Under 500ms (user experience matters)', successRate: '99%+ (can't lose account access)', uptime: '99.5%+ (reliability is critical)', stability: 'Same IP for days/weeks (static residential)', reputation: 'Clean IP history (no previous blocks)'};For testing/development:
const developmentTesting = { latency: 'Under 1000ms (speed not critical)', successRate: '90%+ (retries are acceptable)', cost: 'Low priority, use datacenter if needed', convenience: 'Easy setup and management'};Performance tiers by cost:
This is extremely common and usually due to authentication or protocol configuration issues.
Browser vs. Code differences:
const browserBehavior = { protocol: 'Auto-detects HTTP vs HTTPS', auth: 'Browser prompts for credentials', ssl: 'Handles SSL certificates automatically', headers: 'Sends standard browser headers', timeout: 'Longer default timeouts'};
const codeBehavior = { protocol: 'Must be specified exactly', auth: 'Credentials must be URL-encoded', ssl: 'May need explicit SSL handling', headers: 'Must be set manually', timeout: 'Often needs manual configuration'};Most common issues:
1. Protocol mismatch:
// WRONG (most common mistake)const badConfig = { protocol: 'https', // HTTPS proxies are rare! host: 'proxy.example.com', port: 8080};
// RIGHTconst goodConfig = { protocol: 'http', // Even for HTTPS targets host: 'proxy.example.com', port: 8080};2. Authentication encoding:
// WRONG - special characters not encodedconst badAuth = 'user:p@ssw@rd@proxy.com:8080';
// RIGHT - properly URL-encodedconst goodAuth = 'user:p%40ssw%40rd@proxy.com:8080';
// Or better yet, let your library handle encodingconst bestAuth = { username: 'user:p@ssw@rd', password: 'secret', host: 'proxy.com', port: 8080};3. Provider-specific formats:
// Bright Data exampleconst brightData = { username: 'user123-zone-residential', password: 'abcdef123456', host: 'brd.superproxy.io', port: 22225};Quick debugging steps:
curl command to isolate the issueIt depends entirely on your use case. Here’s when to use each:
Use rotating proxies when:
const rotatingProxyUseCases = { scraping: 'Large-scale data collection from multiple pages', priceMonitoring: 'Checking prices across many sites', seoRanking: 'Search result tracking from different locations', research: 'Academic data collection', rateLimitEvasion: 'Avoiding IP-based limits'};Use sticky sessions when:
const stickySessionUseCases = { accountManagement: 'Login → multiple actions → logout workflows', shoppingCarts: 'Add items → checkout → payment processes', forms: 'Multi-page form submissions', socialMedia: 'Post → engage → respond sequences', authentication: 'Any action requiring persistent session'};Performance comparison:
const performanceAnalysis = { rotating: { pros: ['Maximum IP diversity', 'Better for rate limits', 'Harder to track'], cons: ['No session persistence', 'Potential authentication issues'], bestFor: 'Bulk data collection' },
sticky: { pros: ['Maintains cookies/sessions', 'More human-like behavior', 'Better for forms'], cons: ['Same IP across requests', 'Can get blocked faster', 'Less diversity'], bestFor: 'Account-based interactions' }};Best practice approach:
// Hybrid strategy for complex workflowsconst hybridStrategy = { discoveryPhase: 'Use rotating proxies to find opportunities', interactionPhase: 'Switch to sticky sessions for account actions', dataExtraction: 'Return to rotating for bulk data', sessionDuration: 'Keep sticky sessions 5-30 minutes maximum', rotationAfter: 'Rotate to new IP after session completion'};This is critical to test - IP leaks defeat the entire purpose of using proxies.
Common leak sources:
const leakSources = { webrtc: 'WebRTC can bypass proxy settings', dns: 'DNS queries might not go through proxy', ipv6: 'IPv6 connections bypass IPv4 proxy', flash: 'Old Flash ActiveX controls', browserExtensions: 'Extensions with direct connections', javascript: 'Some fetch/XHR requests bypass proxy'};Testing methods:
1. Basic IP check (what this tool does):
// Should show proxy IP, not your real IPfetch('https://httpbin.org/ip') .then(r => r.json()) .then(console.log);2. WebRTC leak test:
// Advanced test for WebRTC leaksconst pc = new RTCPeerConnection();pc.createDataChannel('');pc.createOffer() .then(offer => pc.setLocalDescription(offer)) .then(() => { const localIP = pc.localDescription.sdp.match(/c=IN IP4 (\S+)/)?.[1]; console.log('WebRTC IP:', localIP); // Should be proxy IP });3. Multiple IP verification:
// Check multiple services for consistencyconst ipCheckers = [ 'https://httpbin.org/ip', 'https://api.ipify.org', 'https://ipinfo.io/json', 'https://icanhazip.com'];
Promise.all(ipCheckers.map(url => fetch(url))) .then(responses => Promise.all(responses.map(r => r.json()))) .then(results => { const uniqueIPs = new Set(results.map(r => r.ip || r.origin)); console.log('Consistent IP?', uniqueIPs.size === 1); });If you detect leaks:
Different sites have different detection sophistication and requirements.
Site-specific factors:
const siteFactors = { detectionLevel: { basic: 'Only checks IP reputation (many blogs, news sites)', moderate: 'Basic fingerprint checks (e-commerce, forums)', advanced: 'ML detection, behavioral analysis (social media, banks)', extreme: 'Real-time monitoring, device correlation (payment processors)' },
ipRequirements: { lenient: 'Accepts datacenter IPs (Wikipedia, GitHub)', strict: 'Requires residential IPs (Amazon, Instagram)', extreme: 'Requires ISP proxies or mobile (banking sites, ticketing)' },
behavioralPatterns: { tolerant: 'Allows some automation (public APIs, some news sites)', strict: 'Blocks non-human timing (most social media)', veryStrict: 'Blocks any suspicious patterns (financial sites)' }};Proxy compatibility by site type:
const compatibilityMatrix = { 'Public APIs': { datacenterProxy: '✅ Usually works', residentialProxy: '✅ Always works', stickySession: 'Not needed' },
'E-commerce sites': { datacenterProxy: '⚠️ Often blocked', residentialProxy: '✅ Usually works', stickySession: 'Required for checkout' },
'Social media': { datacenterProxy: '❌ Almost always blocked', residentialProxy: '✅ Works, may need rotating', stickySession: 'Required for account actions' },
'Financial sites': { datacenterProxy: '❌ Never works', residentialProxy: '⚠️ May be blocked', ispProxy: '✅ Best option', stickySession: 'Absolutely required' }};Real-world success rates (based on testing):
| Site Type | Datacenter Success | Residential Success | ISP Proxy Success |
|---|---|---|---|
| Wikipedia/Blog | 95% | 100% | 100% |
| Amazon/eBay | 25% | 85% | 95% |
| Instagram/Twitter | 5% | 70% | 90% |
| Banking sites | 0% | 40% | 85% |
| Government sites | 80% | 95% | 100% |
The strategy: Always match your proxy type to your target site’s sophistication. Don’t waste expensive residential proxies on sites that work fine with datacenter IPs.
Proxy Rotation Guide
Set up proxy rotation for scale. Proxy Rotation →
Fingerprint Checker
Verify your full fingerprint. Check Fingerprint →
Residential vs Datacenter
Learn which proxy type to use. Proxy Comparison →
Quick Start
Start with GoLogin SDK. Get Started →