Same setup
const browser = await puppeteer.launch({
args: [`--proxy-server=http://${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`],
});
const page = await browser.newPage();
await page.authenticate({ username: process.env.PROXY_USER, password: process.env.PROXY_PASS });This works with Rayobyte gateways and Webshare's backbone or direct IPs. See Rayobyte with Puppeteer, Webshare with Puppeteer and Puppeteer proxy authentication.
Differences
| Rayobyte | Webshare | |
|---|---|---|
| Residential for browsers | $3.50 to $0.70/GB, pay as you go | Monthly plans |
| Static IPs per profile | Static ISP, $5/IP, unmetered | Static residential, about $0.30/IP |
| HTTP/3 | Yes | Not listed |
| Hosted browsers | rayobrowse | None |
At the time of writing.

Logged-in browser profiles
For browsers that log in and must keep one IP, Webshare's cheap static residential IPs are hard to beat. Rayobyte's static ISP IPs are dedicated and unmetered by default, at a higher price.
Scraping with browsers
Browser scraping uses lots of bandwidth. Block images, fonts and media. For heavy residential volumes, Rayobyte's tiers are cheaper from about 50 GB. Its HTTP/3 support lets Chrome use QUIC through the proxy on supporting sites.
Residential tip: A common split is Webshare for cheap per-IP lists and Rayobyte for residential traffic, mobile IPs or managed scraping. Our using Rayobyte with Puppeteer covers each Rayobyte product.
Not running browsers
Rayobyte's rayobrowse hosts stealth browsers; its Scraping API renders pages for you. Webshare doesn't offer either.
A real-world example
A team runs 50 Puppeteer workers that log in to its own partner portals (with permission) and download reports, plus 200 workers that scrape public product pages. For the logged-in workers, each browser gets one Webshare static residential IP, about $15 a month for 50. For the public scraping, browsers use Rayobyte's Premium Residential with images, fonts and media blocked, which keeps usage near 150 GB a month at the $2 tier.
Bandwidth-saving snippet
await page.setRequestInterception(true);
page.on("request", (r) =>
["image", "media", "font"].includes(r.resourceType()) ? r.abort() : r.continue()
);Common Puppeteer proxy errors
- ERR_TUNNEL_CONNECTION_FAILED: wrong host or port, or targeting too narrow.
- Auth dialog:
page.authenticate()missing or called after navigation. - Same IP every time: one browser holds one exit IP; relaunch to change it.
Budget tip: To test the Webshare side of this comparison, start with Webshare's free plan: 10 datacenter proxies and 1 GB a month with no card. See using Webshare with Puppeteer.
Pros and cons for Puppeteer
Rayobyte
- Cheaper residential for heavy browser traffic at volume.
- HTTP/3 and hosted rayobrowse browsers.
Webshare
- Very cheap static IPs for logged-in browser profiles.
- Simple backbone sessions.
Bottom line
Webshare for profile IPs, Rayobyte for heavy residential rendering and stealth.
If you're still shortlisting, compare these options with the wider market in our best proxies guide, and use our cheap proxies guide to estimate a sensible budget. For browser automation in depth, see our Puppeteer proxies guide.
Proxy tip: If your residential usage goes up and down, compare Geonode: its per-GB residential bandwidth doesn't expire, so you only pay for what you use. See using Geonode with Puppeteer.
Key takeaways
- Puppeteer setup is the same; only credentials change.
- Webshare is cheaper for static IPs per browser profile.
- Rayobyte is cheaper for heavy residential browser traffic and adds HTTP/3 and hosted browsers.
- Block heavy resources either way.
FAQ
Do both work with page.authenticate?
Yes.
Which is better for many logged-in profiles?
Webshare, on price per static IP.
Can I avoid running Chrome?
With Rayobyte's rayobrowse or Scraping API.
Should I use stealth plugins?
Usually yes for protected sites; see Puppeteer stealth proxies.
How many pages per browser?
Several related pages per browser in one session is efficient; relaunch to change IP.
Can I use Webshare's backbone with Puppeteer?
Yes; pass the backbone host and port in --proxy-server and credentials with page.authenticate().
Sources and further reading
Independent references that back up the points above, from standards bodies, governments, universities and non-profits. They open in a new tab.
- RFC 9114: HTTP/3 (IETF / RFC Editor): The HTTP/3 standard, which runs over QUIC and UDP.
- Bandwidth (computing) (Wikipedia): What bandwidth means, the unit most residential proxies are priced by.
- RFC 9000: QUIC (IETF / RFC Editor): The QUIC transport standard that HTTP/3 runs on.
- RFC 1929: Username/Password Authentication for SOCKS V5 (IETF / RFC Editor): How SOCKS5 proxies check a username and password.
- RFC 7617: The Basic HTTP Authentication Scheme (IETF / RFC Editor): The scheme most proxy providers use for username and password authentication.
Editorial note: Proxy providers change their pools, features and prices often, so treat any figures here as typical ranges at the time of writing and confirm current terms with the provider before you buy.