Hulo Global home
For WordPress WordPress edition: for any WordPress site, WooCommerce optional. Also available for Vendure: Visitor Analytics for Vendure
For WordPress

Visitor Analytics for WordPress

Cookieless, self-hosted visitor analytics for WordPress: sessions, sources, searches, rage clicks and visitor journeys, stored on your own site.

Install on WordPress: download the zip and upload it under Plugins → Add New → Upload Plugin. Once the free plugin is listed on WordPress.org you will also be able to install it from there.

Requires WordPress 6.5+ and PHP 8.1+. Works on any WordPress site; WooCommerce is optional and switches on the shop features.

Free plugin

What the free plugin does

HULO Visitor Analytics shows how people find and move through your WordPress site, without sending anything to a third party. Every number is stored in your own WordPress database.

Works on any WordPress site. With WooCommerce it also tracks the shopper journey from product page to order.

What you get, free and without limits

  • Cookieless by default. Visitors are counted with a salted, one-way hash of IP address and browser that changes every day. Nothing is written to the visitor's device. You can switch to browser storage, or to "cookieless until consent", driven by your own consent banner (see the FAQ).
  • Sessions and page views: visitors, sessions, page views, average time on page, bounce rate and conversion rate, each compared with the previous period, plus a daily chart.
  • Journey funnel: visited → viewed two or more pages → searched or submitted a form → converted. With WooCommerce it becomes the shopper funnel: visited the shop → viewed a product → added to cart → reached checkout → placed an order (classic and block cart and checkout).
  • Conversions: a session converts when it leads to a WooCommerce order or a payment taken with HULO Payments.
  • Traffic sources: UTM campaigns, referrers and direct traffic, with the conversions each source brought in.
  • Pages: top pages, landing pages and exit pages.
  • Audience: country, device, browser and operating system. Countries come from your CDN or web server (Cloudflare, CloudFront, Vercel, Fastly or a GeoIP module); with WooCommerce, its local geolocation database is used as a fallback. Nothing is looked up externally.
  • Behaviour: on-site searches, searches with no results, rage clicks, dead clicks and form submissions.
  • Visitor journeys: every session as a timeline (pages, searches, forms, time on page) with a one-word label such as Purchased, Left with a cart or Bounced.
  • Custom events from your theme or other code: window.huloVisitorAnalytics.event('newsletter_signup').
  • Dashboard widget with the last seven days.

Privacy built in

  • Respects Do Not Track and Global Privacy Control.
  • Optional consent gate: nothing is sent until the visitor consents to statistics. Any consent banner can drive it with one line of JavaScript or a cookie, no adapter needed.
  • IP addresses are never stored, only hashed with a salt that is thrown away daily.
  • Administrators (and shop managers) are not tracked. Bots are flagged and kept out of every figure, or dropped entirely.
  • Data older than the retention period (400 days by default) is deleted automatically.
  • Suggested privacy-policy text is added under Settings → Privacy.

Light on the front end and cache-friendly

One small deferred script (no jQuery, no dependencies) and an inline configuration that is the same for every visitor of a page, so full-page caches keep working. Events are batched and sent with sendBeacon to your site's own REST API. The endpoint accepts same-origin requests only, is size-capped and rate-limited per (hashed) IP.

Pro

HULO Visitor Analytics Pro is a separate add-on that adds:

  • Conversion goals: a page reached, a form submitted, or a HULO Payments payment succeeded, with values
  • A live visitors view
  • CSV export
  • A weekly e-mail report
  • With WooCommerce: abandoned-cart detection, reminder e-mails with one-click unsubscribe, links that rebuild the basket, and Slack alerts

Try Pro free for 14 days, no card.

Pro add-on

Visitor Analytics Pro

Requires the free HULO Visitor Analytics plugin. Works on any WordPress site. With WooCommerce it also detects abandoned carts and sends reminders. Pro adds to the HULO → Visitor Analytics page:

  • Conversion goals of three kinds:
  • Page reached: a URL pattern (* within a segment, ** across segments), for example a thank-you page.
  • Form submitted: any form on the site, matched by its id, name or action path, optionally only on certain pages.
  • Payment succeeded: a payment taken with the HULO Payments plugin, optionally matched by reference or description. A goal value of 0 counts the amount paid. Offered when HULO Payments is installed.
  • Live visitors in the last five minutes, refreshed every 10 seconds.
  • CSV export of events (90 days).
  • Weekly report by e-mail every Monday, and a setup checklist.

With WooCommerce

  • Abandoned carts. The basket is read server-side from WooCommerce whenever it changes, in the classic cart and checkout and in the Cart and Checkout blocks. A cart idle for the window you choose (30 minutes by default) is marked abandoned. An order on any device marks it converted and counts the recovery.
  • Reminder e-mails. Up to two reminders (1 hour and 24 hours by default). They go through a WooCommerce e-mail you can edit under WooCommerce → Settings → Emails. Every reminder has an unsubscribe link and RFC 8058 one-click unsubscribe headers. Opt-outs are honoured permanently.
  • Basket restore links. Signed, expiring links that rebuild the basket in the shopper's current session without doubling items already there, then open the cart page. Attribution: link sent → opened → basket restored → ordered through the link.
  • Slack alerts for abandoned carts above a value you set, and CSV export of abandoned carts.
  • Personal-data export and erase for saved baskets.

Includes a 14-day evaluation with every feature on and no card. If the licence lapses, the Pro features pause. Goals, carts and settings are kept, and links already e-mailed to shoppers and unsubscribe links keep working.

Pricing

Free, then Pro when you want it

Free plugin

£0

Free forever, GPL-licensed.

Pro, monthly or annual

£9.95/month

The first 14 days are free with no card. Subscribe from the plugin page when you're ready; the first charge is taken when the 14 days end. Annual billing gets two months free. Cancel any time.

Subscribe to Visitor Analytics Pro for WordPress

Pro, lifetime

£199

One payment for one store, including updates.

Buy lifetime licence for Visitor Analytics Pro for WordPress

Prices follow the currency picker at the top of the page; the checkout bills in GBP, USD, EUR, AUD and CAD. One licence covers one WordPress site.

Install

Installation

  1. Install this plugin from Plugins → Add New, or upload the zip, and activate it.
  2. Open HULO → Visitor Analytics. Tracking starts immediately on every page; open your site in a private window to see your first visit.
  3. Optional: choose the visitor identification mode and privacy options on the Settings tab.

If your site is behind Cloudflare or another proxy, pick the header that carries the visitor's IP address on the Settings tab so visitors are told apart correctly.

For Pro, upload hulo-visitor-analytics-pro-0.1.0.zip the same way (Plugins → Add New → Upload Plugin) with the free plugin active. The 14 days start automatically, and Pro updates itself from WordPress's Plugins screen.

FAQ

Frequently asked questions

Do I need WooCommerce?

No. Everything works on any WordPress site. When WooCommerce is active, the shopper funnel, product names in journeys and order conversions switch on too.

Does it use cookies?

No, not by default. In "browser storage" mode, or after consent in "cookieless until consent" mode, it keeps a random visitor id in localStorage so returning visitors are recognised across days.

How do I connect my consent banner?

Either way works, without any add-on:

  • JavaScript: call window.huloVisitorAnalytics.consent(true) when the visitor accepts statistics, and window.huloVisitorAnalytics.consent(false) when they decline or withdraw consent (this also forgets the stored visitor id). The choice is remembered in the browser.
  • Cookie: if your banner sets a first-party cookie, enter its name on the Settings tab and the value that means consent (for example cookie cookie_consent, value statistics). The value can be the whole cookie or one entry in a list such as necessary,statistics. The cookie is checked by the tracker and again by the server.

Consent matters in two settings: the "cookieless until consent" identification mode, and the "send nothing until consent" option.

Why are countries empty?

Countries are read from headers your CDN or web server adds (for example Cloudflare's CF-IPCountry). Turn that on at your CDN, or enable a GeoIP module on the server. The Settings tab says whether a country header was seen.

Does it work with page caching?

Yes. The page HTML contains no per-visitor data and no nonce. The beacon goes to the REST API, which caches do not store.

Does it slow my site down?

The script is about 7 kB unminified (under 3 kB gzipped), loads deferred in the footer and sends at most one small request every couple of seconds while a visitor is active. Reports run only in the admin.

Does it send data anywhere?

No. The plugin makes no external requests. Everything stays in your database.

Is it compatible with WooCommerce HPOS and the Cart and Checkout blocks?

Yes, both are declared and tested when WooCommerce is active.

Can I delete the data?

Tick "Delete all analytics data when the plugin is deleted" on the Settings tab before deleting the plugin. Otherwise data is kept for the retention period.

External services

Pro add-on

  • HULO licence server (elite.charity): once a day the add-on registers the evaluation, checks the licence revocation list and sends an anonymous heartbeat (plugin version, a hashed site id, and 30-day counts such as visitors and carts recovered, no personal data). When you subscribe from the banner, the checkout opens on elite.charity. Terms: https://huloglobal.com/legal/terms/
  • Updates (huloglobal.com): checks https://huloglobal.com/wordpress-plugins/ for new versions of this add-on.
  • Slack (only if you enter a webhook URL, WooCommerce only): posts the basket value, items and the shopper's e-mail address when a cart is abandoned. https://slack.com/terms-of-service

Changelog

0.1.0

  • First release: cookieless tracking beacon, sessions and page views, journey funnel (shopper funnel with WooCommerce), conversions from WooCommerce orders and HULO Payments payments, traffic sources, pages, audience, searches, rage and dead clicks, form submissions, visitor journeys, custom events, dashboard widget, retention and privacy tools.