Plausible v2 needs an explicit init() call
24 May 2026Migrated a site from Webflow to Astro and noticed afterwards that Plausible had quietly stopped recording anything. The script tag was right there in the <head>, the request for pa-<hash>.js came back 200 — and still zero pageviews.
Turns out the v2 script changed how it boots. In v1 the script auto-initialised from the data-domain attribute on the script tag — drop in one line and you’re done. v2 splits that in two: it loads the script, but it won’t track anything until you also call plausible.init() from a separate inline script block. Loaded is not the same as initialised.
This is an easy one to miss while migrating, because a hosted platform like Webflow bundles both halves into its integration. Copy just the visible <script> tag across to a hand-rolled setup and you’ve silently left the init() behind. No error, no warning — the dashboard just stays flat.
Worth the upgrade though: v2 tracks form submissions and outbound link clicks out of the box, both of which needed extra config in v1. Just don’t forget the second half. The Plausible docs spell it out.