Bot detection
MetriXs uses multiple layers to filter out bot traffic from your analytics.
Server-side checks
Section titled “Server-side checks”- User-agent filtering — the
isbotlibrary covers 1500+ known bots - Automation patterns — blocks Puppeteer, Playwright, Selenium,
python-requests,curl, Scrapy, and more - Rate limiting — max 30 events per IP per minute, plus a per-/24-subnet cap (200 events / 5 min) to catch distributed botnets (Redis-backed)
- Domain verification — the
Originheader must match the registered domain - Accept-Language check — requests without a valid
Accept-Languageheader are dropped - Browser fingerprint token — the tracker encodes real browser signals (screen size, timezone, hardware concurrency, etc.) into a token that raw HTTP bots cannot produce
Client-side checks
Section titled “Client-side checks”The tracker script also detects bots before sending events:
navigator.webdriver === true— Selenium/CDPwindow._phantom,window.__nightmare— PhantomJS, Nightmare.jswindow.Cypress— Cypress test runnersscreen.width === 0— headless Chromenavigator.languages.length === 0— many headless environments
Datacenter / cloud IP detection
Section titled “Datacenter / cloud IP detection”MetriXs uses the MaxMind ASN database to identify traffic from known cloud and datacenter providers. Events from these networks are dropped automatically, as they are almost always automated:
- AWS, Google Cloud, Azure, DigitalOcean, Hetzner, OVH, Linode
- Alibaba Cloud, Tencent Cloud, Huawei Cloud, ByteDance, Cloudflare Workers
- And many more
Self-exclusion
Section titled “Self-exclusion”Add localStorage.setItem('metrixs_ignore', 'true') in your browser console to exclude your own visits.