Most teams find out their anti-bot problem is "aggressive" the same way. A scraper that worked fine for months suddenly returns CAPTCHA pages, then 403s, then nothing at all, and none of the fixes that worked last time make a dent.
That's usually a sign the target site didn't add one new defense. It stacked another layer on top of the ones already there. DataDome's 2025 Global Bot Security Report, which looked at more than 16,900 websites, found that most businesses can't tell good AI traffic from bad, even as that traffic has exploded. In DataDome's own numbers, LLM crawler traffic alone went from 2.6% of verified bot traffic in January 2025 to over 10% by August (DataDome 2025). Sites are responding by turning up every dial they have.
So how do you bypass aggressive anti-bot protection? Short answer: treat it as five separate checks, not one. Network, TLS, browser fingerprint, behavior and challenges each have to pass, each vendor weighs them differently, and a fix only holds if every layer stays consistent and someone keeps maintaining it. Below we go through the five layers, how Cloudflare, Akamai, Kasada and PerimeterX lean on them, what works at each one, and where DIY work stops scaling.
Anti-bot protection isn't one wall. It's five
The reason a single fix (new proxy, spoofed user-agent, a CAPTCHA solver) stops working after a while is that modern anti-bot systems don't rely on any single signal. They stack layers, and passing one layer proves nothing if the next one catches you:
- Network layer: your IP's reputation, ASN, and connection metadata
- TLS layer: whether your TLS handshake matches the browser you claim to be
- Browser fingerprint layer: canvas, WebGL, fonts, and dozens of other properties that should be internally consistent
- Behavioral layer: mouse movement, scroll patterns, timing between actions
- Challenge layer: CAPTCHAs, JavaScript proof-of-work, managed challenges
A request has to clear all five, not just the one that happened to trip the alarm last time. That's why "aggressive" protection feels different from ordinary rate limiting: rate limiting is one gate, and this is a gauntlet.
How the major vendors detect you
Not every anti-bot vendor weighs these five layers the same way, which is why a technique that works against one can fail completely against another.
Cloudflare is the most common anti-bot system on the web and leans heavily on the TLS and network layers. It checks your TLS handshake against the browser you claim to be. Send a Chrome User-Agent with the TLS fingerprint of a Python HTTP library and that mismatch alone is enough to flag you, before behavior even enters the picture (Scrapfly, anti-bot bypass guide 2026).
Akamai Bot Manager runs on Akamai's CDN edge, so it scores each request before it ever reaches the site. The score draws on four inputs: IP reputation (backed by an unusually thorough ASN database), the _abck sensor cookie set by its scrambled sensor script, the TLS handshake, and behavioral telemetry (Scrappey, how Akamai detects bots 2026). That's why a clean TLS handshake alone rarely gets a client through. Scrappey names a malformed or stale _abck cookie as the single most common reason automated clients get blocked.
Kasada doesn't lean on visible CAPTCHAs. Instead, a Kasada-protected page runs hidden JavaScript proof-of-work challenges that the client has to solve transparently, and a client that fails them is blocked outright rather than shown a puzzle (Scrapfly, Kasada bypass guide 2026). Layered with TLS fingerprinting and behavior analysis that tracks the whole browsing session, it's a different mechanism from a puzzle a CAPTCHA solver can pass.
PerimeterX (now part of HUMAN Security) leans hardest on the behavioral layer. It trains a machine-learning model per protected site, using that site's own historical traffic as the baseline, and the models adapt over time. A setup that clears every check today can get flagged next month because the model moved, not because anything about the request changed (Scrapfly, PerimeterX bypass guide 2026). There's no universal PerimeterX bypass, because there's no universal PerimeterX model.
The practical takeaway: "bypass anti-bot protection" isn't one problem with one answer. It's five different problems that happen to show up behind the same block page.

What works at each layer
Network and TLS layer. This is where most DIY attempts fail first, because it happens before a single line of your scraping logic runs. Rotating IPs helps with reputation. But rotate IPs while your TLS fingerprint stays static (a common outcome with standard HTTP libraries) and each new IP gets flagged just as fast. The fix has to happen at the connection level, not the request level.
Browser fingerprint layer. Spoofing one property (just the user-agent, just the canvas hash) rarely holds up, because sites check for internal consistency across dozens of signals at once. A real browser's fingerprint, locale, and timezone all line up with each other and with its IP's geography. A spoofed one usually has at least one mismatch somewhere. If you drive your own Playwright or Puppeteer scripts, Anakin's Browser API gives you a stealth browser over a single CDP WebSocket, with timezone, locale and language matched to the proxy country (a UK session reports Europe/London and en-GB, not UTC and en-US). (For the full breakdown of specific fingerprinting techniques and defenses, see our deep dive on reducing browser fingerprint detection.)
Behavioral layer. This is the layer that punishes speed. A scraper that loads a page and extracts data 200ms later has no mouse movement, no scroll, no natural pacing, and behavioral models are built to catch that shape of request.
Challenge layer. Managed challenges, Turnstile-style widgets, and proof-of-work checks are the layer most teams notice first, because it's the one that's visible. It's also usually the last line of defense, not the first. By the time a request hits a challenge, it has often been flagged by one of the layers above and is getting one more chance to prove itself human. (For error-code-specific Cloudflare fixes, covering 1020s, 403s, and Turnstile, see how to fix Cloudflare blocking your automation system.)
Where DIY bypass work stops scaling
Beating any one of these layers for one site, one time, is a weekend project. The problem is that none of it stays solved. Vendors update their detection models on their own schedule, not yours, and a fingerprinting technique that worked last quarter can quietly stop working with no error message telling you why your success rate dropped.
That's the argument for managed infrastructure over a growing pile of point-fixes. A residential proxy or a stealth browser patch isn't hard to build once. Maintaining all five layers, across every site you touch, forever, is a full-time job that isn't your product.

Anakin's URL Scraper handles this at the infrastructure layer: proxy routing across 207 countries, and a stealth browser with aligned fingerprint, locale, and timezone signals, so the geography your proxy claims and the browser properties you present agree with each other. Flip useBrowser: true when a site needs full rendering, or set a specific country when geography is the mismatch, without hand-rolling TLS fingerprint alignment or a fresh proxy pool for every target.
There's a second way to sidestep this entirely, worth knowing about even though it only covers specific sites. If the target is already one of the more than 960 sites in Wire's catalog, you can call a pre-built action (am_product_details for an Amazon product, for instance) instead of sending a browser-shaped request at all. Wire resolves that call against the site's own structured endpoints server-side, so there's no five-layer gauntlet to clear on your end in the first place, and Anakin keeps the action working as the site changes. It's not a general-purpose answer (only catalogued sites qualify, and you can request a build for one that isn't yet), but for the sites it covers, it's the version of this problem that never shows up.

Here's what the direct-request route looks like in practice, for the far more common case: a site that isn't in the catalog, or a page you want whole rather than as structured fields. We'll use an Amazon product page because it's one of the more consistently defended e-commerce properties on the web, and naive requests to it often get a "verify you're human" page instead. Routing the same request through a browser-rendered call with proxy geography set correctly gets the page back in one call:
export ANAKIN_API_KEY="YOUR_API_KEY"
curl -X POST https://api.anakin.io/v1/url-scraper/scrape \
--max-time 120 \
-H "X-API-Key: $ANAKIN_API_KEY" -H "Content-Type: application/json" \
-d '{"url":"https://www.amazon.com/dp/B09V3KXJPB","useBrowser":true,"country":"us"}'The inline endpoint holds the connection open until the scrape finishes (up to about 90 seconds), so there's no polling step: check that status is completed and read the page from the markdown field. No proxy pool to babysit, no manual retry logic. A run on 25 Oct 2026 (useBrowser on, US proxy) came back in about 2.4 seconds. Trimmed to the relevant lines, the markdown looked like this:
# Apple iPad Air (5th Generation): with M1 chip, 10.9-inch Liquid Retina Display, 64GB, Wi-Fi 6, ...
4.8 out of 5 stars (13,473)
...
| Attribute | Value |
|-----------|-------|
| Price | $504.33 |
| Brand | Apple |
| Model Name | iPad Air |
| Memory Storage Capacity | 64 GB |
| ASIN | B09V3KXJPB |It's worth being precise about what happened there. The call routes around the challenge by presenting a consistent, correctly geo-matched browser fingerprint. It isn't solving a CAPTCHA that got shown. It never trips the checks that would show one in the first place.
What this looks like at real customer scale
The clearest evidence comes from a real workload moving off a tool that kept hitting these walls. One Anakin customer came over after a batch of pages started failing on their previous scraper. Anakin recovered all 43 of the domains that had been failing, and nine of them, re-run live with the actual page size and wall-clock time measured, are public:

| Domain | Page size | Time |
|---|---|---|
| costco.com | 2.4 MB | 32.3s |
| boards.ie | 2.2 MB | 16.0s |
| nordstrom.com | 879 KB | 45.0s |
| baidu.com | 707 KB | 13.0s |
| trip.com | 399 KB | 1.8s |
| bestbuy.ca | 394 KB | 46.6s |
| trendyol.com | 345 KB | 2.2s |
| maidenform.com | 170 KB | 17.9s |
| homedepot.com | 103 KB | 2.1s |
Costco, Nordstrom, Home Depot, and Best Buy Canada are the kind of large retail properties that typically run commercial bot protection, which is why they're useful evidence here rather than an arbitrary sample. (Full breakdown on the Anakin vs. Firecrawl comparison page.)
That doesn't mean any single tool solves every site forever. The whole point of the five-layer breakdown above is that the target keeps moving. It's an argument for treating anti-bot handling as infrastructure that gets maintained continuously, rather than a script that gets written once and left alone.
FAQ
What's the hardest anti-bot system to bypass?
Akamai Bot Manager and PerimeterX (HUMAN Security) are two of the hardest to beat consistently. Akamai scores every request at the CDN edge from IP reputation, its _abck sensor cookie, the TLS handshake and behavior, and PerimeterX trains a separate, adapting model per site, so no single technique works everywhere.
Can Cloudflare detect Playwright or Puppeteer?
Yes, by default. Standard Playwright and Puppeteer instances carry detectable properties (a mismatched TLS fingerprint, webdriver flags, and other automation tells) that Cloudflare checks for at the network and browser layers before behavior is even evaluated.
Do you need different bypass techniques for different anti-bot vendors?
Yes. Because Cloudflare, Akamai, Kasada, and PerimeterX weight the five detection layers differently, a technique tuned for one (like a proof-of-work solver for Kasada) does nothing against another (like PerimeterX's per-site behavioral model).
Is rotating proxies enough to avoid detection?
No, on its own. IP reputation is one of five layers. A rotated IP with a static, mismatched TLS or browser fingerprint gets flagged almost as fast as no rotation at all.
The layers don't go away. The maintenance does
None of the five layers above are going anywhere, and none of them are getting easier to solve on your own. That's the case for treating this as infrastructure instead of a technique you learn once: Anakin's URL Scraper keeps TLS, fingerprint, and proxy geography aligned for you, and Wire skips the problem entirely for the more than 960 catalogued sites where a structured action already exists.
If you're dealing with a scraper that's started failing against a specific vendor, start with a request against Anakin's URL Scraper: set useBrowser: true and a matching country, and see if the wall you're hitting is one of the ones this already solves.
