Changelog

Product Updates

Filters Follow Each Other

A filter now offers only the values left after the filters you have already applied. With Country set to Germany, Region lists German regions and City the cities within them, and a chosen browser narrows the version list to that browser. An empty list says why it is empty: nothing in the period, or nothing left under the current filters.

Browser Version and OS Version are in the Filter menu once exactly one browser or operating system is chosen, and a version filter now survives a page reload and a saved filter. More in Filters and segments.

Improvements

Smaller changes from the past two weeks:

  • •Properties passed as the second argument of statable.t() are stored with the event. Until 7 September they were dropped without an error, so custom properties sent that way are only there from that date.
  • •Pageviews from clients that no real browser could produce, such as a Chrome that sends none of the headers Chrome always sends, or a headless browser, are no longer counted. On some sites this removed a noticeable share of traffic that was never people.
  • •Visits from Gemini count as AI Assistant rather than Google search.
  • •The dashboard works better on a phone: card tabs scroll sideways, the chart takes half the height, dropdowns open on a tap, and the Back button closes a detail panel instead of leaving the dashboard.
  • •Bounce rate reads as a percentage in every detailed table, and date pickers start the week on the day set for the site.
  • •The Errors card counts visitors, as its header says.
  • •Cancelling a Google connection for GA4 or Search Console now tells you what happened instead of returning to a silent page.
  • •On a paid plan, a hobby site's public dashboard can be switched off.

n8n and Omarchy Integrations

Two new places to read your stats:

  • •n8n: the Statable community node brings visitors, sources, goals and funnels into n8n workflows. Post a weekly summary to Slack, alert on a traffic spike, or let an n8n AI Agent answer questions about your site. The node only reads.
  • •Omarchy: two plugins for the Omarchy desktop put a live visitor count in the bar and a card with today against yesterday on the wallpaper.

Statable CLI

Statable now has a command line tool. The statable command is a single binary that covers the whole Stats API: read visitors, pages, sources and goals from a terminal, pipe the output into jq, or run it from a cron entry or a CI step. It can also create sites, goals and funnels.

It installs with Homebrew, Scoop on Windows, go install or mise, or runs as a Docker image, and signs in with an API key kept in the system keyring. The CLI guide gets you to your first number, and the source is on GitHub.

Site Members

You can now give other people access to a site. Invite someone by email as an Admin, who manages the site alongside you, or as a Member, who reads the analytics and changes nothing. Access is granted per site, so an invite to one site shows nothing of the others you own.

  • •Invite from Site settings, Members. The link in the email works for 7 days, and the person can accept with an existing account or create one on the way.
  • •Seats follow the site owner's plan, and a trial gets the allowance of the smallest paid plan. When every seat is taken, Request More Seats opens the support form.
  • •A shared site keeps working for the people invited to it while its owner pays, even after their own trial has ended.

The Members and roles guide lists what each role can change.

WordPress Plugin

Statable Analytics is in the WordPress plugin directory. Setup happens without leaving wp-admin: enter your email, type the code we send back, and the plugin creates the site and starts counting. Nothing to copy between tabs, and logged-in administrators are left out of the numbers from the start.

It also draws your statistics inside wp-admin rather than framing the dashboard: visitors and pageviews, a daily chart, top pages, sources, countries and devices, and your own goals, funnels, events and properties. Widgets come with it too, placed as a block or a shortcode. The WordPress guide walks through connecting and what each screen shows.

Improvements

Smaller changes from the past two weeks:

  • •The widgets load their map data and libraries from statable.com instead of public CDNs, so a page carrying one no longer sends your visitors to a third party to draw it.
  • •A before-send hook that returns false now drops the pageview instead of sending it anyway.
  • •Link clicks report the address without its query string or fragment.
  • •Sources read more truthfully: a campaign tag names the source when the referrer is blank, a site's own redirect no longer counts as a source of its own traffic, and a ref parameter holding a full address is recorded as the hostname rather than as a source whose name starts with https.
  • •A free plan site has a public dashboard by definition, which is now how it behaves as well as how it reads.
  • •Statable no longer accepts sites, or the email addresses accounts are opened on, in the .ru, .su, .by, .рф and .бел zones. The reason is jurisdictional rather than technical, and the API errors reference names the response.

Traffic Channels Match GA4

The channel list is now Google's. We carried eighteen buckets of our own on top of GA4's set, and every one of them was a place where our numbers and GA4's disagreed for no reason a reader could see. Those eighteen are gone and their traffic lands where GA4 puts it, leaving nineteen channels, from Paid Search and Organic Social down to SMS and Audio. AI Chatbot is now called AI Assistant, the name Google gave the same channel.

Visits recorded before the change keep the channel they were stored with, so a long comparison can straddle both sets.

AI Assistants Can Set a Site Up

Connecting an assistant is now a sign-in. Point the client at the MCP server, authorise in the browser, and the connection is made: no key to create, nothing secret to paste. Holding a key yourself still works for clients that prefer one.

An assistant can also do more than read. It can add a website, create goals and funnels, and change tracking settings, all within the permissions of the account that signed in. It cannot alter or delete the analytics themselves. Settings, MCP lists the clients you have connected and disconnects any of them.

Google Search Console

Connect a verified Search Console property to a site and Statable brings in the queries people typed before they arrived. The Search terms card sits under Traffic Sources, with impressions, click-through rate and average position next to the visitors each query brought, and the full list opens from the card. Sixteen months come with the connection, which is everything Google still holds, and Refresh pulls that window again when Google revises its own numbers.

Adding a site can start from Google too: sign in and Statable lists the properties on that account for you to pick from. Set the connection up in Site settings, Google Search Console. Statable asks for read-only access and can change nothing in your Search Console account. The Search Console guide covers choosing the right property, and why the card stays empty for a day or two after connecting.

Compare Values on the Chart

A filter holding more than one value now carries a split button. Instead of adding the values together into a single line, the chart draws one line per value, so Chrome sits next to Safari, or one country next to another, over the same period. The legend and the tooltip name each line, and up to six values can be compared at once.

Splitting and period comparison would multiply into an unreadable number of lines, so turning one on turns the other off. The split is not offered in realtime, where the chart has no room for the extra series.

Improvements

Smaller changes from the past week:

  • •Your sites are listed busiest first. Traffic decides the order now, and the ones with none of it keep their old newest-first place.
  • •Adding a site you already have takes you to that site instead of creating a second copy of it. The match ignores the scheme, a leading www, the trailing slash and anything after the question mark, so the same site written two ways is still one site.
  • •A free plan site can be added after a trial ends, which the add-site step used to refuse.
  • •The sites endpoint of the Stats API returns each site's hash, the identifier behind widget and share links, and the reference now documents it.
  • •An accessibility pass over the public pages and the dashboard: named landmarks, heading order in sequence, and controls a screen reader can announce.

Choose What the Tracking Script Collects

The tracking script is assembled from a dozen features, and you now pick which ones your site loads under Site settings, General, Tracking Code. Standard keeps everything on. Nano is pageviews and single-page app navigation only, about 0.6 KB over the wire against roughly 2 KB for the full script. Custom opens a checklist with a running size readout, so you can see what each feature costs before saving.

Your snippet stays the same: every valid combination is pre-built, so the address you already have starts serving the build you chose, and returning visitors pick it up as their cached copy expires. What you switch off stops being collected, and the tracking features guide lists what each one measures and what goes quiet without it.

WCAG Checker Extension

Statable has a third browser extension. The WCAG Checker scans the page you are viewing against the Web Content Accessibility Guidelines and lists what fails: contrast, missing alternative text, unlabelled form fields, broken ARIA. Each finding names the success criterion behind it, links to a fix, and can outline the failing element on the page.

Install it from the Chrome Web Store, Firefox Add-ons or Edge Add-ons, and see the WCAG Checker docs for what the panel reports. Automated checks reach only part of WCAG, so a clean run means nothing detectable was found rather than a compliance verdict, and the panel repeats that next to every result.

Improvements

Smaller changes shipped over the past week:

  • •Signing in with Google or GitHub when your account was created with an email address now sends a code to that address and links the two, instead of turning you away.
  • •The map widget places the visitor dot where the visitor actually is, and leaves it off when the location cannot be worked out, rather than dropping it in the ocean at zero, zero.
  • •The city view of the map widget counts real pageviews in its header, which used to read zero on live data.
  • •Exit Pages details shows numbers in the Total Exits column again.
  • •URLs and referrers are stored without their query strings, so tracking parameters and anything else after the question mark never reach storage.
  • •The GDPR Checker is now on Edge Add-ons alongside Chrome and Firefox.
  • •The Stats API reference now documents the subscription endpoint, which reports the plan behind a key, whether it is on trial and when that ends.

One Tag per Widget

The widget tag your dashboard hands out now records visits as well as drawing the widget, on every plan. Until now that bundled build went to free sites only, so a widget pasted on a paid site with no tracking script drew an empty map and the install really took two tags.

Nothing changes for sites that already have the tracking script in place: whichever tag loads first does the counting, so visits are never counted twice. Copy the tag from Site settings, Widget, as before.

Update, 3 September: this was rolled back, because the tracker inside that bundle never counted anything on a paid site. The bundle is addressed by the widget hash, which leaves the tracker in it without the site id it needs, so its events were dropped while the extra weight still shipped on every page carrying a widget. Paid plans are back to the widget-only build, with the tracking script as the tag that counts. Free plan sites are unaffected: there the widget is the counter, and always was.

GDPR Checker for Firefox

The GDPR Checker is now available for Firefox as well as Chrome. Install it from Firefox Add-ons and audit what a page loads before consent from the browser you already use.

The GDPR Checker docs cover what the panel reports and where each browser differs.

MCP Server Has Its Own Address

The MCP server now runs on a dedicated host at mcp.statable.com. The old endpoint on the main domain no longer answers, so if you connected an AI assistant earlier, update its configuration.

The MCP setup guide has the current address and a working config for each client.

Widget Improvements

The map widget now scales down on narrow screens instead of cropping. On a phone the map kept its full desktop width inside a smaller container, so the right side of the world was cut off. It now shrinks with the block it sits in, and the numbers on top of it scale along.

The globe widget's shadow also fits the space reserved under the sphere, so its lower edge no longer ends against a hard line on larger globes.

API Key Permissions

API keys now carry permissions. When you create a key in Settings, choose whether it can only read your stats or also manage your sites and your other keys, so an integration never gets more access than it needs.

Reading is always included, every key in the list shows what it is allowed to do, and permissions are fixed once a key exists: to change them, create a new key and revoke the old one.