Changelog

Product Updates

Block Whole IP Networks

The IP blocklist accepts networks in CIDR notation, IPv4 or IPv6, next to single addresses. This matters most for IPv6, where a device's address changes daily but its /64 stays the same. A line that is neither an address nor a network is shown under the field, and the list is saved only once every line is valid.

The hostname lists work the same way: paste a full URL and Statable keeps just the hostname, and a line it cannot use is named under its list instead of in a passing message. See Blocklist.

Improvements

Smaller changes from the past two weeks:

  • •A filter value that contains a comma now works as one value instead of being split in two.
  • •Period presets such as Yesterday and Month to Date follow the site's time zone, so they read correctly when your computer is in a different one.
  • •Last 12 Months compares with the 12 months before it. It used to compare with half a month and show increases of over 1000%.
  • •Returning from Google sign-in no longer counts as a visit from Organic Search.
  • •The dashboard no longer breaks with an error when the page is translated by Google Translate.
  • •A tab left open across a release reloads itself instead of showing an error.
  • •Use as filter works from the detail panels too, not only from the cards.
  • •The dashboard header and chart fit better on a phone.
  • •When a site stops recording because its plan has run out, the dashboard says so instead of going quiet.
  • •A site member can leave a site from the sites list.

Statable as a Plugin for AI Assistants

The Statable MCP server now installs as a plugin in Claude Code, Cursor and Gemini CLI, in one step instead of editing a config file. The plugin brings three ready-made skills with it: a weekly traffic report, a check on why traffic dropped, and a Statable skill that sets up a site and drafts a measurement plan, the goals and funnels worth tracking. Sign-in happens in the browser on first use, as before. Details are in the AI assistants guide.

Search Console on the Chart

Once a site is connected to Google Search Console, a strip under the main chart lets you draw clicks, impressions, CTR and average position next to your visitors, one metric or all four at once. Adding a new site can now also start from Google for every account: pick Import, sign in, and choose the Search Console or GA4 property to bring in.

When a filter hides imported GA4 days, the dashboard now says so above the reports, and the filter menu greys out the fields that imported data does not have. See the Search Console guide and the GA4 migration guide.

Astro and Vite

The statable-analytics package adds Statable to an Astro or Vite site with one line in the config, so every page the build produces carries the tracking script. Install it from npm and pass your site ID. The Astro and Vite guides also cover the plain script tag, for sites that would rather not add a dependency.

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.