Directory / plugin
Snorklee Analytics – Cookieless GDPR Web Analytics
v3.0.1 · by moovswell
Cookieless web analytics hosted in Paris, no consent banner. Also sees, server-side, the AI crawlers that JavaScript never sees.
About this plugin
Snorklee is simple web analytics: visitors, pages, sources, places, devices and goals on one page. It sets no cookie, so it needs no consent banner, and it is hosted in Paris. One more page shows which AI robots read your site and how many visitors AI assistants send you, and only what is actually captured.
This plugin connects your WordPress site to Snorklee. It does three things:
- It installs the tracker on every public page, and keeps it there through theme updates.
- It counts AI robots server-side. GPTBot, ClaudeBot, PerplexityBot and their peers fetch your HTML without running JavaScript, so no JavaScript analytics can see them, Snorklee’s own snippet included. The plugin recognises them on the server, from the user agent of the page request, and reports the visit.
- It lets you choose how the tracker is installed, with three modes, and says what each one costs.
A Snorklee account is required. 14-day free trial, no credit card; then €4 a month ex. VAT up to 100,000 pageviews, €9 up to 500,000, €19 up to 2 million. 10 sites and every feature in every plan.
What you see about AI
On the AI page in Snorklee: which AI robots read your pages, how often and which pages, named as each robot declares itself in its user agent. A declaration is not proof of identity. A hit claiming to be OpenAI, Anthropic or Perplexity from outside the address ranges they publish is left out of the counts. You also see how many visitors arrive from an AI assistant: this is a minimum, because many AI apps do not say where a visitor comes from. The page includes a robots.txt generator if you want to let some robots in and keep others out.
Three install modes, and what each one costs
- Standard. Script and measurements both come from snorklee.com. Full measurement, but blockers that filter on the domain cut everything: those visits are not counted.
- Script served by WordPress (recommended). WordPress serves the tracker from your own domain (
/js/flow.js); the measurements are sent by the visitor’s browser. The script escapes blockers that filter on the filename, and you keep country, unique visitors and traffic sources. Blockers that filter on the domain still block the measurements. - Full relay (self-host). WordPress also passes the measurements through, so no blocker sees anything. The cost: Snorklee then only ever sees your server. No country, no region, and unique visitors and traffic sources stop being reliable. Snorklee shows no location and says why, rather than a false one.
Why the relay loses location: the plugin forwards the visitor’s address, but on a public endpoint anyone can declare any address, so Snorklee does not turn a declared address into a location.
No DNS, Nginx or cPanel change is needed: the two WordPress-served modes use WordPress rewrite rules.
Privacy
- No cookie, nothing stored on or read from the visitor’s device
- No persistent identifier: the visitor key changes every day
- No cross-site tracking
- No advertising data: campaign (UTM) parameters are not read
- Honours
Do Not Track, Global Privacy Control and a visitor opt-out (snorklee.optOut()) - The visitor’s raw IP address is never stored
- The plugin creates no database table and stores no personal data on your WordPress server (in full-relay mode, measurements pass through without being logged)
External services
This plugin connects to the Snorklee analytics service (https://snorklee.com), operated by Snorklee (France) and hosted in Paris. That is what the plugin is for. Requests go only to the Snorklee address set in the plugin (https://snorklee.com by default):
- Tracker, in every mode. When a visitor views a public page, the browser runs the Snorklee tracker and sends a measurement: page path (without the query string), referrer, scroll depth, time on page, whether the page was actually displayed, the address of an outbound link clicked, the fact that a form was submitted or an e-mail, phone or download link was opened (never its content), and the names and limited properties of events you define. The request also carries the browser’s user agent and IP address. The IP address is used briefly to find the country and region and is never stored. In Standard mode the browser loads
https://snorklee.com/w.jsand sends tohttps://snorklee.com/api/eventand/api/ping. - Tracker file served by WordPress (Script and Full relay modes). Your server downloads the tracker file from
https://snorklee.com/w.jsand caches it for one hour. No visitor data is sent in that request. - Measurements forwarded by WordPress (Full relay mode only). Your server forwards each measurement from item 1 to
https://snorklee.com/api/eventor/api/ping, with the visitor’s IP address, user agent and browser language. Nothing is logged on your server. - AI-robot report (server-side, on by default). When a known AI robot (GPTBot, ClaudeBot, PerplexityBot…) requests a page, your server sends one request to
https://snorklee.com/api/eventwith the robot’s user agent, the page path (without the query string), the robot’s IP address and the plugin version. This concerns robots only, never your human visitors.
Terms of use: https://snorklee.com/en/legal/conditions
Privacy policy: https://snorklee.com/en/legal/confidentialite
Data collected: https://snorklee.com/docs/en/data-collected