puppeteer-extra-plugin-stealth est le package anti-détection le plus populaire pour Puppeteer. Il totalise encore plus de 600K téléchargements hebdomadaires sur npm. Il n'a pas non plus reçu de mise à jour depuis mars 2023. La version 2.11.2 est la dernière, et elle le restera : la maintenance est inactive, les issues GitHub s'accumulent et les systèmes anti-bot ont évolué.
TL;DR : Les plugins stealth corrigent les signaux de détection par des overrides JavaScript au niveau de la page. En 2026, les systèmes anti-bot comme Cloudflare, Akamai et DataDome vérifient des signaux hors de portée de JavaScript : empreintes TLS, artefacts du protocole CDP et différences de rendu au niveau du moteur. La solution n'est pas un meilleur plugin. C'est une couche différente : soit un driver patché qui masque les fuites du protocole, soit un navigateur patché qui gère les empreintes au niveau du moteur.
Ce que font réellement les plugins stealth
puppeteer-extra-plugin-stealth regroupe 11 modules d'évasion exécutés via evaluateOnNewDocument. Chaque module corrige une surface de détection :
| Module | Ce qu'il corrige |
|---|---|
webdriver |
Removes navigator.webdriver = true |
chrome.runtime |
Fakes the chrome.runtime object |
chrome.csi / chrome.app |
Adds missing Chrome API stubs |
navigator.plugins |
Spoofs the plugin array |
navigator.languages |
Overrides language settings |
navigator.permissions |
Fixes permission query behavior |
media.codecs |
Spoofs codec support |
sourceurl |
Hides //# sourceURL from injected scripts |
iframe.contentWindow |
Fixes cross-origin iframe detection |
webgl.vendor |
Spoofs WebGL vendor/renderer strings |
user-agent-override |
Sets a realistic User-Agent header |
Ces correctifs fonctionnaient en 2021-2022, lorsque les systèmes anti-bot vérifiaient principalement les propriétés JavaScript au niveau de la page. Ils sont inefficaces face à ce que les systèmes de détection modernes contrôlent réellement.
Pourquoi les plugins stealth échouent en 2026
La détection anti-bot opère désormais sous la couche JavaScript. Les signaux pertinents sont ceux que evaluateOnNewDocument ne peut pas atteindre.
Fuites du protocole CDP
Lorsque Puppeteer se connecte à Chrome, il envoie des commandes CDP telles que Runtime.enable, Page.enable et Network.enable. Ces commandes laissent des artefacts dans l'état interne du navigateur que les scripts anti-bot détectent. Le plugin stealth ne touche pas au CDP car il opère au niveau de la page, pas du protocole.
La commande Runtime.enable suffit à elle seule pour identifier une session automatisée. Aucun correctif au niveau de la page ne masque le fait que des commandes CDP ont été émises.
Empreinte TLS
Cloudflare vérifie les empreintes TLS (JA3/JA4) avant de servir le moindre HTML. Si l'empreinte TLS est incorrecte, votre session reçoit un challenge ou un blocage avant même le chargement des correctifs JavaScript du plugin stealth. Le plugin opère au niveau de la page et n'a aucun accès à la couche TLS. Pour une explication détaillée du rôle de l'empreinte TLS dans la pile de détection, consultez la section couche réseau de Automatisation du navigateur sans blocage.
Détection des overrides JavaScript
Les scripts anti-bot ne vérifient pas seulement la valeur de navigator.webdriver. Ils vérifient le descripteur de propriété. Un navigateur réel définit webdriver comme un getter natif sur le prototype Navigator. Le plugin stealth le remplace avec Object.defineProperty, ce qui modifie le flag configurable du descripteur et la sortie toString() de la fonction getter. Les scripts de détection testent ces divergences.
Le même problème s'applique aux autres overrides. chrome.runtime, les tableaux de plugins et les requêtes de permissions présentent des différences détectables lorsque leurs implémentations natives sont remplacées par des stubs JavaScript.
Différences de rendu headless
Même avec --headless=new (le mode headless récent), Chrome effectue un rendu légèrement différent de Chrome en mode fenêtré. Les métriques de polices, la sortie canvas accélérée par GPU et les APIs de dimensions d'écran diffèrent. Le plugin stealth corrige certaines propriétés du navigator mais ne peut pas modifier le comportement du moteur de rendu.
Ce qui a remplacé les plugins stealth
L'écosystème s'est scindé en deux approches : les drivers patchés (correction de la couche protocole) et les navigateurs patchés (correction de la couche moteur). Ils résolvent des problèmes différents.
Drivers patchés : Rebrowser et Patchright
Rebrowser fournit des remplacements directs pour Puppeteer et Playwright (rebrowser-puppeteer, rebrowser-playwright). Les correctifs ciblent les artefacts du protocole CDP : ils modifient la manière dont Runtime.enable et d'autres commandes interagissent avec le navigateur pour éviter de laisser des traces détectables. Vous remplacez le nom du package dans votre code et tout le reste reste identique.
// Before: detected
const puppeteer = require('puppeteer');
// After: CDP artifacts patched
const puppeteer = require('rebrowser-puppeteer');Patchright fait la même chose pour Playwright, avec un focus sur Python. Il corrige les fuites de Runtime.enable et bénéficie d'une maintenance active.
Limitation : Les drivers patchés corrigent la détection de protocole mais ne traitent pas le fingerprinting du navigateur. Si le site vérifie Canvas, WebGL, AudioContext ou le rendu des polices, vous restez exposé. Les drivers patchés répondent à la question "es-tu automatisé ?" mais pas à "es-tu un vrai appareil ?".
Navigateurs patchés : moteurs anti-détection
Un navigateur patché modifie Chromium pour que les signaux d'empreinte soient cohérents au niveau du moteur. La sortie Canvas, le rendu WebGL, les données AudioContext, les métriques de polices, les dimensions d'écran, le fuseau horaire et la locale rapportent des valeurs correspondant à un profil d'appareil réel.
C'est ce que fait Clawbrowser. C'est un fork de Chromium avec des correctifs d'empreinte au niveau du moteur sur plus de 20 surfaces, un routage proxy intégré, une prévention des fuites WebRTC et un support CDP natif. Votre code Puppeteer ou Playwright existant s'y connecte via CDP :
from playwright.async_api import async_playwright
async def automate_without_detection():
async with async_playwright() as p:
# Connect to Clawbrowser instead of stock ChromeCe que cela gère et que les plugins stealth ne peuvent pas :
- Cohérence Canvas/WebGL/AudioContext au niveau du moteur (pas des stubs JavaScript)
- Empreinte TLS correspondant à une vraie session Chrome
- Connexion CDP sans artefacts
Runtime.enable - Prévention des fuites WebRTC au niveau du navigateur
- Routage proxy avec alignement géographique intégré
Pour le détail complet de ce qui est soumis au fingerprinting, consultez Empreintes digitales du navigateur : les 20+ signaux utilisés par les systèmes anti-bot.
Comment choisir
Le bon outil dépend de ce qui vous détecte.
| Type de détection | Symptôme | Solution |
|---|---|---|
| CDP protocol artifacts | Blocked immediately on page load, no CAPTCHA | Patched driver (Rebrowser, Patchright) |
| Browser fingerprint mismatch | CAPTCHA on every page, or silent data differences | Patched browser (Clawbrowser) |
| TLS fingerprint mismatch | Blocked before page loads (403 on first request) | Patched browser with proxy routing |
| IP reputation | Blocked from datacenter IPs | Residential proxy (any approach) |
| Behavioral detection | Blocked after 5-10 pages | Timing and session management in your code |
Quand les drivers patchés suffisent
Si vous automatisez des sites dont la détection basique vérifie les artefacts CDP sans analyser en profondeur l'empreinte du navigateur, Rebrowser ou Patchright conviendront. Cela couvre de nombreux sites avec des configurations anti-bot légères.
Quand vous avez besoin d'un navigateur patché
Si le site utilise Cloudflare Bot Management, Akamai Bot Manager, DataDome ou PerimeterX, vous avez besoin d'une cohérence d'empreinte au niveau du moteur. Les correctifs au niveau de la page et du driver ne suffisent pas lorsque la détection vérifie simultanément plus de 20 surfaces du navigateur.
Clawbrowser est un navigateur anti-détection local, gratuit, basé sur Chromium avec des empreintes gérées, un routage proxy, un CDP natif et un serveur MCP intégré. Il prend en charge l'identité du navigateur et les couches réseau pour que votre code se concentre uniquement sur le comportement et la gestion des sessions.
Migrer depuis les plugins stealth
Si vous utilisez actuellement puppeteer-extra-plugin-stealth ou playwright-stealth, la migration vers Clawbrowser prend moins de cinq minutes.
Avant (plugin stealth)
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
const browser = await puppeteer.launch({ headless: false });Après (Clawbrowser)
const puppeteer = require('puppeteer-core');
// Connect to Clawbrowser over CDP
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://127.0.0.1:9222'La différence principale : vous supprimez puppeteer-extra et puppeteer-extra-plugin-stealth de vos dépendances. Pas de configuration de plugin. Pas de sélection de modules d'évasion. L'anti-détection se fait au niveau du navigateur, pas dans votre code.
Pour les patterns spécifiques au scraping (pagination, préchauffage de session, contournement Cloudflare), consultez Web Scraping sans détection.
FAQ
puppeteer-extra-stealth est-il complètement inutile ?
Il fonctionne encore sur les sites sans système anti-bot commercial. Si le site cible ne vérifie que navigator.webdriver et les propriétés JavaScript basiques, le plugin stealth suffit. Mais tout site utilisant Cloudflare, Akamai, DataDome, PerimeterX ou des plateformes sociales comme Facebook, Instagram, LinkedIn et X le détectera.
playwright-stealth a-t-il les mêmes problèmes ?
Oui. playwright-stealth utilise la même approche : des overrides JavaScript par injection au niveau de la page. Il ne peut pas atteindre les empreintes TLS, les artefacts CDP ni le rendu au niveau du moteur. Les limitations de détection sont identiques.
Peut-on utiliser Rebrowser et Clawbrowser ensemble ?
Ce n'est pas nécessaire. Clawbrowser gère à la fois la couche protocole et la couche empreinte. Les correctifs Rebrowser sont utiles lorsque vous utilisez Chrome standard et ne pouvez pas passer à un navigateur anti-détection. Si vous utilisez Clawbrowser, les artefacts CDP sont déjà traités.
Pourquoi stealth affiche-t-il encore 600K téléchargements par semaine ?
L'inertie. La plupart des tutoriels et réponses Stack Overflow le recommandent encore. Les développeurs copient-collent des solutions qui fonctionnaient en 2022 sans vérifier si le package est toujours maintenu. Le nombre élevé de téléchargements ne signifie pas qu'il est efficace contre la détection moderne.
Arrêtez de patcher, commencez à résoudre
Les plugins stealth étaient une solution raisonnable lorsque la détection anti-bot reposait sur des vérifications au niveau JavaScript. La détection a migré vers les empreintes TLS, l'analyse du protocole CDP et les différences de rendu au niveau du moteur. Patcher au niveau de la page ne permet pas d'atteindre ces signaux.
Installez Clawbrowser pour gérer la détection au niveau du navigateur : copiez le prompt d'installation depuis clawbrowser.ai et collez-le dans votre agent IA. Supprimez puppeteer-extra et puppeteer-extra-plugin-stealth de vos dépendances. Connectez votre code Puppeteer ou Playwright existant via CDP. L'anti-détection est dans le navigateur, pas dans votre code.
Pour le modèle de détection sous-jacent, consultez Automatisation du navigateur sans blocage : la pile de défense à 4 couches.
Continue exploring
Ask AI how Clawbrowser helps
Poursuivre la lecture
Articles associés

Automatisation de navigateur sans se faire bloquer : la défense en 4 couches
Pourquoi l'automatisation de navigateur se fait bloquer et comment y remédier couche par couche : identité du navigateur, réseau, comportement et gestion de sessions. Un guide structurel pour développeurs.
Lire l’article →
Web scraping sans détection: les techniques fiables
Guide pratique du web scraping: reconnaissance, choix HTTP ou navigateur, extraction, pagination, sessions et passage à l'échelle avec Playwright.
Lire l’article →