February 19, 2026 · 14 min read · Playwright · Cloudflare · Anti-Bot Bypass

Playwright Cloudflare Bypass 2026: 3 Methods That Still Work (9 Don't)

Bottom line (last updated May 27, 2026 — Cloudflare ML v9 / Web Bot Auth era):

Skip to the 12-method test table · download raw results JSON · working Playwright code · FAQ

Browser walking through a cloud with an opening — Cloudflare bypass illustration

Contents

  1. Why Playwright gets blocked in 2026 (Cloudflare ML v9)
  2. The 3 things Cloudflare actually checks
  3. What changed in January–May 2026
  4. 12-method test results (the table you came for) · raw JSON
  5. Residential IP + real fingerprint — the only stack that survives
  6. Working Playwright + Human Browser code
  7. When to use Web Bot Auth vs stealth
  8. FAQ

If you've tried to scrape a Cloudflare-protected website with Playwright in 2026, you know the pain. Your script lands on the page, and within 2 seconds you're staring at a challenge page or a 403. It doesn't matter how many stealth plugins you add — vanilla Playwright on a data center IP doesn't stand a chance against Cloudflare's current bot detection stack.

This guide covers exactly what Cloudflare checks, why most workarounds fail in 2026, and the three methods that still work — starting with the headline number: we ran the same script against 12 stack variations in May 2026. Nine fail on the first request. Three pass. The full result table is below; the raw JSON is downloadable if you want to cite or fork the test.

Why Playwright Gets Blocked by Cloudflare in 2026

Cloudflare's bot protection has evolved significantly. In 2023, you could get away with playwright-extra and the stealth plugin. In 2024, you needed to hide automation flags. In 2026, Cloudflare runs a multi-signal analysis that no single trick can defeat.

The core problem is this: your IP address is the first thing Cloudflare checks. Before your browser fingerprint is even evaluated, Cloudflare knows whether your IP belongs to a data center, a VPN provider, or a real home internet connection.

Common misconception: Adding stealth plugins to Playwright will bypass Cloudflare. In 2026, stealth plugins alone fail because Cloudflare's IP reputation database flags all major cloud providers (AWS, DigitalOcean, Hetzner, OVH) instantly — regardless of your browser fingerprint.

When you run Playwright from a VPS, your traffic originates from an ASN (Autonomous System Number) that Cloudflare recognizes as a data center. The risk score is automatically elevated to maximum, and no amount of fingerprint spoofing will save you.

Cloudflare error codes you'll hit (1020, 1010, 403, "Just a moment…")

When Playwright is blocked, Cloudflare usually tells you exactly how. The codes you'll paste into Google most:

All four trace back to the same two signals — IP reputation and fingerprint consistency — which is exactly what Cloudflare scores next.

The 3 Things Cloudflare Actually Checks

Understanding what Cloudflare evaluates helps you understand why most bypass attempts fail. Here's the actual signal stack in 2026:

1. IP Reputation & ASN Classification

Cloudflare maintains a massive database of IP address classifications. Every request is immediately tagged: residential ISP, mobile carrier, VPN, hosting provider, proxy service, Tor exit node. Data center IPs from AWS, DigitalOcean, Hetzner, and similar providers get an automatic high-bot-probability score. There's no way around this check — it happens before your JavaScript even runs.

2. Browser Fingerprint Consistency

Cloudflare runs a JavaScript challenge that inspects dozens of browser properties: navigator.webdriver, canvas fingerprint, WebGL renderer, audio context, font enumeration, plugin list, screen resolution, timezone offset, language settings, and hardware concurrency. A headless Chromium browser running on a Linux server has telltale signatures that differ from a real iPhone or Windows PC.

3. Behavioral Analysis

Mouse movement patterns, scroll behavior, time-on-page, interaction speed, and click patterns are all analyzed. Bots tend to interact with pages instantly and mechanically. Real users have variance — they pause, they scroll at different speeds, they move the mouse in curved paths.

The key insight: You need to solve ALL three simultaneously. Fix the IP but not the fingerprint — blocked. Fix the fingerprint but not the IP — blocked. Fix both but move like a robot — eventually blocked. This is why a complete solution like Human Browser exists.

What changed in January–May 2026

If you last debugged a Cloudflare block in 2025, the field has moved under you. Three concrete shifts in the first half of 2026 explain why scripts that worked in November are now returning HTTP 403 in May.

1. ML model v9 is the new default (rolled to all zones, Q1 2026)

Cloudflare's machine learning bot score model v9 is now the default on every new zone and on existing zones opted into auto-updates. v9 weights TLS fingerprint (JA4), HTTP/2 frame ordering, and behavioral telemetry more aggressively than v8. The practical effect: Playwright's default TLS handshake on Linux now stands out even when the browser fingerprint is perfect. You either need a browser whose TLS stack matches a real device (which is what Patchright and Human Browser's headful Chrome handle), or you accept a higher block rate on Enterprise-protected zones.

2. Anomaly detection: bot score floor of 2

Per the Cloudflare bot solutions changelog, events flagged by the anomaly detection engine are now pinned to a bot score of 2 (1–99 scale, lower = more bot-like). This is brutal: previously borderline-pass automations are now hard-failing on Enterprise rulesets that block anything < 30. The mitigation is behavioral — slow down, scroll, vary timing, and never burst-request from the same residential session.

3. Web Bot Auth: the legitimacy lane opens (May 2026)

In May 2026 Cloudflare announced Web Bot Auth, a standard for cryptographically signing AI-agent traffic so verified agents pass without challenge. Anchor Browser shipped first-party support the same week, describing the experience as "Stable, CAPTCHA-free sessions; fewer flaky retries" — and Browserbase launched their integration on the same announcement. This is genuinely good news for legitimate AI agents — but it's an opt-in by the site owner, and the long tail of Cloudflare-protected sites (the ones you're actually trying to reach) have not enabled it. For the next 12–18 months the realistic plan is: use Web Bot Auth where you can, residential + fingerprint everywhere else. We cover the decision tree in the Web Bot Auth section below.

Shield struck by twelve arrows with one passing through — 12-method bypass results

12-method test results — internal test, May 2026

We ran the same Playwright script against 12 stack variations, targeting 8 Cloudflare-protected sites (4 Pro, 3 Business, 1 Enterprise — internal test, May 2026, ~500 requests/variant). "Pass" = HTTP 200 with actual page content, not a challenge or 403. Numbers are indicative for a same-day snapshot; your mileage will vary by target.

Raw data: the full request-level shape is available as cf-bypass-12-methods.json — { method, ip_type, fingerprint, behavior, cf_pro_pass_pct, cf_enterprise_pass_pct, verdict } per row. Cite it, fork the test, run it yourself.

#MethodIPFingerprintBehaviorCF ProCF Ent.Verdict
1Vanilla PlaywrightVPSDefault ChromiumNone~2%0%Dead
2playwright-extra + stealthVPSPatchedNone~5%0%Dead
3undetected-chromedriverVPSPatchedNone~8%0%Dead
4FlareSolverr (proxied)VPSAuto-solveNone~3%0%Dead
5curl-impersonate soloVPSJA4 okN/A~6%0%No JS
6Puppeteer + DC proxyDC proxyDefaultNone~4%0%Dead
7VPN + PlaywrightVPN (flagged)DefaultNone~10%0%Flaky
8Residential IP onlyResidentialDefaultNone~35%~5%Partial
9Residential + stealth FPResidentialPatchedNone~70%~25%Decent
10Residential + iPhone FP + human inputResidentialiPhone 15 ProBezier + jitter~95%~75%Works
11Human Browser (managed)ResidentialiPhone 15 ProManaged~97%~78%Works
12Web Bot Auth (signed agent)N/AN/AN/A100% opted-in0% non-optedWhere supported

Methods 10, 11, 12 are the three that still work in May 2026. Method 10 is the DIY stack; method 11 is the managed equivalent at humanbrowser.cloud; method 12 is the legitimacy lane and only works on sites that have explicitly enabled Cloudflare Web Bot Auth verification. Full per-target shape: cf-bypass-12-methods.json.

Three-layer onion: network, fingerprint, behavior — the bypass solution
There is no magic flag. There is only a stack.

The Solution: Residential IP + Real Fingerprint

The only approach that works reliably in 2026 is using a residential proxy (a real home internet connection) combined with a browser fingerprint that matches what a real device would produce.

Here's what the complete solution looks like:

Human Browser packages all of this into a single npm package with one function call. Let's walk through the setup.

Step-by-Step: Setting Up Human Browser with Playwright

Step 1: Install the package

npm install @virixlabs/humanbrowser

Step 2: Get residential proxy credentials

You need residential proxy access. Try it for $1 (about 4 typical tasks) at humanbrowser.cloud/install — pay-as-you-go: $0.10/hr browser time + $0.02 per agent step (AI included) + $4/GB residential proxy, no subscription. You'll receive your proxy username and password. If you want a deeper walkthrough of the proxy wiring itself, see our complete guide to Playwright with a residential proxy, and the side-by-side benchmark in best residential proxy for scraping 2026.

Step 3: Set environment variables

# Residential proxy credentials from humanbrowser.cloud
PROXY_USER=your_proxy_username
PROXY_PASS=your_proxy_password
PROXY_HOST=brd.superproxy.io
PROXY_PORT=22225

Step 4: Use launchHuman() in your script

const { launchHuman } = require('@virixlabs/humanbrowser');

async function scrapeCloudflareProtectedSite() {
  const { browser, page, humanScroll, humanRead } = await launchHuman();

  // Navigate — residential IP + real fingerprint passes Cloudflare
  await page.goto('https://example-cloudflare-protected.com', {
    waitUntil: 'domcontentloaded',
    timeout: 30000
  });

  // Simulate reading — critical for behavioral checks
  await humanRead(page);

  // Natural scroll behavior
  await humanScroll(page, 'down');

  // Extract your data
  const content = await page.evaluate(() => document.body.innerText);

  await browser.close();
  return content;
}

scrapeCloudflareProtectedSite().then(console.log).catch(console.error);

Full working implementation

Here's a complete, production-ready example for scraping a Cloudflare-protected site:

const { launchHuman } = require('@virixlabs/humanbrowser');

async function bypassCloudflare(url) {
  const { browser, page, humanRead, humanScroll, sleep } = await launchHuman({
    mobile: true,   // iPhone 15 Pro fingerprint
    country: 'gb'   // UK residential IP
  });

  try {
    console.log('Navigating with residential IP...');
    await page.goto(url, { waitUntil: 'networkidle' });

    // Wait for Cloudflare challenge to resolve (if any)
    await sleep(2000);

    // Check if we passed the challenge
    const title = await page.title();
    if (title.includes('Just a moment') || title.includes('Attention Required')) {
      // Still on challenge — wait longer
      await sleep(5000);
    }

    // Behave like a human reader
    await humanRead(page);
    await humanScroll(page, 'down');
    await humanRead(page);

    const data = await page.evaluate(() => ({
      title: document.title,
      text: document.body.innerText.substring(0, 2000)
    }));

    console.log('Success:', data.title);
    return data;

  } finally {
    await browser.close();
  }
}

// Usage
bypassCloudflare('https://your-target-site.com')
  .then(d => console.log(d))
  .catch(e => console.error('Failed:', e.message));

If you're wiring Cloudflare bypass into an autonomous agent rather than a one-off script, the same residential IP + fingerprint stack plugs straight into the patterns in our guide on browser automation for AI agents.

Official wax stamp seal labeled Web Bot Auth

When to use Web Bot Auth vs stealth

Web Bot Auth is the first real attempt at a polite protocol between AI agents and site owners. Your agent signs each HTTP request with a private key; Cloudflare verifies the signature against a public registry; verified agents pass without a challenge. The reference implementation is open source. Anchor's framing of the user experience after wiring it up: "Stable, CAPTCHA-free sessions; fewer flaky retries" — exactly the headache verified-agent traffic is designed to remove.

Use Web Bot Auth when:

Stick with residential + fingerprint when:

Human Browser supports both lanes: residential IP + real desktop Chrome fingerprint by default (iPhone profile on request), and a managed signed-agent profile on its A2A endpoint for verified-agent flows.

Bypass Cloudflare without writing the stack. Pay-as-you-go: $0.10/hr browser time, $4/GB residential proxy, $0.005/captcha, $0.02 per agent step with the AI included. No subscription. Unused balance never expires. 75 residential countries. Try it for $1 — about 4 typical tasks; top up from $5.

A2A endpoint for agents: https://agent.humanbrowser.cloud/a2a

Try it for $1 — humanbrowser.cloud/install

Or read the side-by-side: Human Browser vs Browserbase (2026)

FAQ

Does Playwright get blocked by Cloudflare in 2026?

Yes. Vanilla Playwright running on a data center IP is blocked within seconds by Cloudflare's bot detection. You need both a residential IP and a realistic browser fingerprint to bypass it reliably.

What is the best way to bypass Cloudflare with Playwright in 2026?

The most reliable method in our May 2026 12-method test: residential IP + iPhone 15 Pro fingerprint + human-paced input (Bezier mouse curves, 60–220ms keystrokes). ~95% pass on Cloudflare Pro, ~75% on Enterprise. Human Browser packages this as a single npm install at $0.10/hr + $0.02/agent step + $4/GB pay-as-you-go.

Does playwright-extra with stealth plugin bypass Cloudflare?

In 2026, playwright-extra stealth alone is not enough. Cloudflare has adapted and now requires a real residential IP in addition to fingerprint spoofing. The stealth plugin helps with some checks but fails the IP reputation check.

Does playwright-stealth still work in May 2026?

On its own, no. Across our 12-method test, playwright-extra + stealth on a VPS IP passed about 5% of Cloudflare Pro challenges and 0% of Enterprise. With a residential IP underneath it, the pass rate jumps to ~70% / ~25% — but a managed iPhone fingerprint with human-paced behavior still beats it. For the full diagnosis of which stealth-library failure modes are now hard-failing — fingerprint surface, CDP exposure, TLS, behavior — read playwright-stealth not working in 2026.

What is Cloudflare Web Bot Auth and should I use it?

Web Bot Auth is a Cloudflare standard, launched in May 2026, that lets AI agents cryptographically sign their HTTP requests so legitimate agents bypass challenges. Anchor Browser and Browserbase shipped support the same week. Use it when the target site has opted in (currently a small list); use residential + fingerprint everywhere else.

What's the cheapest residential proxy that bypasses Cloudflare?

Decodo / Smartproxy at $8.5/GB is the cheapest standalone option with usable bypass rates; NodeMaven at $7/GB has a smaller but cleaner pool. If you'd rather not run a proxy account at all, Human Browser bundles residential IPs in 75 countries at $4/GB pay-as-you-go with a matching browser fingerprint already wired in — see the full comparison in best residential proxy for web scraping 2026.

How is Human Browser different from Browserbase or Anchor Browser?

Browserbase and Anchor Browser are session-billed cloud Chromium with stealth layers; both shipped Cloudflare Web Bot Auth support in May 2026. Human Browser is pay-as-you-go at $0.10/hr browser time + $0.02 per agent step (AI included) + $4/GB residential proxy + $0.005/captcha + $0.02 per agent step with the AI included — no subscription, unused balance never expires. Side-by-side breakdown: Human Browser vs Browserbase.

How much does it cost to bypass Cloudflare with a residential proxy?

Human Browser is pay-as-you-go: $0.10/hr browser time and $4/GB residential proxy, plus $0.005/captcha and $0.02 per agent step with the AI included. No subscription, unused balance never expires, and you can try it for $1 (about 4 typical tasks).

Can this run on a $5 VPS without a display server?

Yes. Human Browser uses Playwright in headless mode — no display server, no VNC, no X11 required. It runs on any Linux server including the cheapest $5/mo VPS options from Hetzner or Contabo. The residential exit is what matters, not where your control plane lives.

Related Articles

Top up — $20

Loading secure checkout…

More coins →