Skip to main content
1

Install

2

Set your site key

.env
3

Mount the middleware

Mount it before your routes so every request passes through it.
Verify:

Behind a proxy

If Express sits behind nginx, a load balancer or Cloudflare, make sure the real client address reaches it - the SDK reads CF-Connecting-IP, X-Real-IP, True-Client-IP and X-Forwarded-For, in that order. Without a real address, crawlers cannot be verified against published IP ranges and every hit shows as Unverified.

Response status

Markdown hits carry the real statusCode; HTML hits usually do not. That is deliberate rather than an oversight - the middleware sees the response before your route has run, so its 200 is a default, and reporting it would log every 404 as a success. Supply ctx.statusCode only where you have the genuine post-route status.