TL;DR: why CAPTCHAs are no longer reliable
- AI solves them instantly: GPT-4V solves standard image CAPTCHAs in under five seconds. Solver farms charge $0.50 per 1,000 challenges.
- Your users pay the cost: Your legitimate users pay the cost. CAPTCHAs add 32% cart-abandonment friction and block almost no real attackers.
- Behavioral scoring instead: Replace them with behavioral trust scoring. Invisible to real users, scored continuously, catches the agents CAPTCHAs wave through.
Short on time? See cside's in-browser Magecart and skimmer blocking. It covers everything below in one deployment.
The bot ecosystem won the CAPTCHA arms race
The ecosystem around CAPTCHA bypass is mature. Attackers do not solve the challenge the way you want them to. They automate it, outsource it, or avoid it.
A 2024 study from researchers at ETH Zurich found that their system could solve Google's reCAPTCHAv2 with 100% accuracy. Cloudflare's 2025 Radar review also reported that AI "user action" crawling increased by over 15x in 2025. That category covers crawlers visiting websites in response to a user action or prompt, which is much closer to browser-driven task execution than old bulk scraping.
Visible anti-bot components are easy for automation to detect. Once a bot knows a CAPTCHA is in the way, it has a clear next move: slow down, change infrastructure, send the task to a solver, or retry through a different browser profile.
Why visible bot defenses backfire
The moment a bot sees a CAPTCHA, it learns that it has been flagged. That predictability is the problem. The defense announces itself and tells the attacker where the wall is.
This creates a training loop. The bot changes its fingerprint, adjusts timing, rotates proxies, and tries again. Every visible signal you emit becomes feedback for the next generation of bypass tooling.
That does not mean every challenge is useless. It means visible challenges should not be the primary control. They work best as one step in a broader risk response, triggered only when the session already looks suspicious.
The better strategy is wasting attacker resources
If blocking bots at the front door is no longer enough, the better strategy is to waste attacker resources.
Instead of throwing up an obvious wall immediately, let suspicious sessions spend effort. Let them move through parts of the flow. Let them consume their own compute, proxy capacity, account inventory, and time. Then limit, degrade, or drop the session once your confidence is high.
The asymmetry matters. Your cost to serve one fake session is often low. Their cost to run thousands of fake sessions with browser automation, paid proxies, solver services, and retries is real. Every wasted cycle increases the operating cost of abuse.

A flight-booking honeypot example
Imagine you run a flight booking platform. Visitors select flights, add passenger names, and move through checkout. Near the final step, your telemetry shows the session is not a normal customer. It looks like a price scraper or automated purchasing workflow.
You do not have to block it with a CAPTCHA at the first page. You can change the response.
Change the language. Show an unusual currency. Hide the final price behind a contact step. Require re-authentication. Offer one price during the automated flow, then show the real human price only after stronger confidence signals appear.
The scraper reports back polluted data. Your real customers still see the correct experience. You have not trained the bot with an obvious challenge. You have made its output less useful.
| Tactic | What it does to automation | What it does to a human |
|---|---|---|
| Language switch mid-flow | Breaks assumptions in scraper logic | Minor inconvenience at worst |
| Unusual currency | Pollutes extracted price data | Usually invisible to real checkout |
| "Contact us" at final stage | Forces manual interaction | Signals bespoke or higher-risk handling |
| Re-authentication gate | Adds cost per session | One extra step for a real user |
| Delayed price reveal | Wastes the automated journey | Preserves the normal buyer path |
The power of "contact us"
If you sell a service or configurable product, do not reveal every commercial detail at the first step. Ask for information throughout the flow, then reserve the final quote for the moment when you have enough confidence in the visitor.
"Contact us" is not just a sales motion. In high-risk flows, it can be a fraud control.
It means you still want the business, but the session needs a human touchpoint first. Make the visitor pick up the phone, use WhatsApp, send an email, authenticate, or speak with sales. Each step adds evidence that you are dealing with a real person or a real buying process.
Accept the right amount of friction
Some teams hear this and worry about conversion loss. That concern is valid. Friction applied broadly is expensive.
The answer is not to make every visitor work harder. The answer is to apply friction selectively. Fraud and abuse already create operating costs through payment fraud, first-party misuse, card testing, account abuse, and support load. The MRC 2026 Global eCommerce Payments & Fraud Report tracks these as recurring fraud and payment problems for merchants.
If a contact wall costs a small amount of legitimate conversion but blocks a high-cost automated abuse path, that trade can make sense. The key is precision. Put friction where the risk is, not where every normal visitor starts.
What to do instead of relying on CAPTCHAs
Move from visible challenges to browser-layer evidence and adaptive response.
Start with these steps:
- Monitor browser, device, network, and behavioral signals throughout the session
- Classify traffic by intent and risk, not just by "bot or human"
- Apply progressive response: allow, monitor, degrade, require contact, re-authenticate, or block
- Avoid showing obvious challenges too early in the flow
- Measure abuse cost, false positives, and conversion impact together
cside AI Agent Detection and cside Fingerprinting help teams see the browser-layer signals that legacy bot defenses miss. That includes stealth automation, proxy abuse, virtualized environments, suspicious session continuity, and AI-agent behavior inside real browser flows. The same visibility underpins downstream abuse defenses, such as how to stop AI agents from creating fake accounts once a CAPTCHA is no longer in the way.
CAPTCHAs are not dead because every challenge fails every time. They are dead as the default answer. The modern defense is quieter, more selective, and more expensive for the attacker.
Book a demo to see how cside detects risky browser sessions before they reach sensitive flows.









