Scrapeless Wiki

What Is Puppeteer Stealth? – Definition and How It Works

Informational P2 what is puppeteer stealth

Learn how the stealth plugin's evasion modules work, what each module patches, why modular design matters, and what the approach cannot cover.

Puppeteer Stealth is a plugin for the Puppeteer ecosystem that applies a collection of small patches β€” called evasions β€” each addressing one property that a default automated browser exposes differently from an ordinary one.

1. The Modular Design

Rather than one large patch, the plugin ships many independent modules. Each targets a single property, and they can be enabled or disabled individually.

import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';

puppeteer.use(StealthPlugin());
const browser = await puppeteer.launch();

2. What the Modules Cover

Module target Default behaviour it addresses
Automation flag A property announcing remote control
Permissions behaviour Query results that differ under automation
Plugin and MIME lists Empty where an ordinary browser has entries
Language settings Missing or inconsistent locale values
Renderer strings Values characteristic of headless environments
Window and screen properties Dimensions inconsistent with the reported device

Each is small. The collection matters because detection looks at combinations, and one uncorrected property can contradict all the others.

3. Why Modularity Helps

Different properties change at different times as browsers evolve. A modular design means one module can be fixed without touching the rest, and users can disable a module that causes a problem on a specific site.

It also makes the approach legible: each evasion is inspectable, so its purpose and limits can be understood rather than taken on trust.

4. What It Cannot Address

The plugin operates inside the browser, so it cannot change anything decided outside it:

  • Network reputation attached to the address.
  • TLS and HTTP/2 fingerprints produced by the browser's own stack.
  • Behaviour β€” pacing, navigation patterns, interaction rhythm.
  • Volume, which is a policy decision rather than a configuration.

5. Maintenance Is Inherent

Browser internals change with every release, and detection changes independently. Modules that were necessary become obsolete, and new properties appear that no module yet addresses.

Any project depending on this class of tool is accepting continuous maintenance, which is worth costing honestly at the outset.

6. Legitimate Uses

Testing a site as an ordinary visitor, running QA or monitoring contracted by the site owner, operating accessibility tooling whose defaults trip detection, and researching detection behaviour itself.

7. What Works Better for Sustained Collection

An API where one exists; permission and an allow-list entry keyed on a stable identifier; a documented user agent; and a request rate the destination can absorb comfortably.

None of those require chasing browser internals, which is the practical argument for them.

8. Summary

Puppeteer Stealth applies many small, independent patches to properties that a default automated browser reports differently, with modularity making the set maintainable and inspectable.

It addresses the in-browser layer only, leaves reputation, protocol fingerprints, behaviour, and volume untouched, and commits its users to ongoing maintenance as browsers and detection both change.