WordPress Analytics Without Google Analytics

Site Kit and MonsterInsights are the default answer for WordPress analytics, and both are just a plugin wrapped around GA4 — cookies, a consent banner, and a heavier script on every page load. Here's the full field of alternatives, compared on what they actually do.

By Null Agency · Updated September 15, 2026 · Written for WordPress site owners choosing an analytics tool without defaulting to Google

TL;DR — GA4-via-plugin isn't your only option

Site Kit and MonsterInsights don't replace GA4 — they install it. Both plugins wire your WordPress site to Google Analytics 4, which means you inherit GA4's cookies, its consent-banner obligation in the EU/UK, and gtag.js's roughly 150 KB compressed payload on every page load.

If you just want the how-to, jump to the numbered install steps below. If you're comparing tools first, the table is next.

What Site Kit and MonsterInsights actually install

It's easy to think of Site Kit or MonsterInsights as "WordPress analytics." They're not — they're WordPress-flavored dashboards sitting on top of standard Google Analytics 4. Once either plugin is active, your site is running GA4's own tracker, with GA4's own behavior, regardless of which plugin's UI you're reading the numbers in.

That matters in a few concrete ways. First, GA4 sets the _ga cookie by default, which generally means a consent mechanism for visitors in the EU/UK — a banner most WordPress sites bolt on separately, on top of the analytics plugin itself. Second, gtag.js — the script GA4 actually loads in the visitor's browser — measures at roughly 150 KB compressed (our own measurement, 2026-09-10), which is real weight on every single page load, on every device, including the phones your mobile visitors are on. Third, GA4's standard-property data retention for user-level event data is 2 or 14 months, depending on how the property is configured, though aggregate reports keep longer — so what "Site Kit shows me" today may not reflect data from a year ago.

None of that makes GA4 useless. It's free, its BigQuery export is free, and its custom-events-plus-audiences-plus-Google-Ads integration is a real strength for ecommerce funnels and ad attribution — genuine reasons some sites should keep it. But "install a plugin" and "get privacy-friendly analytics" are two different claims, and Site Kit/MonsterInsights only deliver the first one. For the compliance side specifically, our GA4 and GDPR breakdown goes deeper into what the banner requirement actually covers.

It's also worth separating the two plugins from each other for a second. Site Kit is Google's own plugin and MonsterInsights is a third-party dashboard; both are front-ends for the same GA4 tracker, so both inherit its cookies and consent requirement. Switching from one plugin to the other doesn't change any of the facts above — you'd still be running GA4.

The WordPress analytics landscape, compared

Here's every option in this piece on the same axes: cookies, install method, where the data lives, and pricing.

ToolCookies / consentInstall on WordPressData locationPricing
GA4 (Site Kit / MonsterInsights)Yes, _ga cookie — needs consent in EU/UKOfficial pluginGoogle's serversFree
Jetpack StatsBuilt in to JetpackOfficial plugin (Jetpack)See Jetpack's privacy docsBundled with Jetpack
MatomoSelf-hosted in your WP database; GDPR tooling built inOfficial plugin, runs inside your WP databaseYour own WordPress hostingFree to self-host (infra cost only); check current pricing for hosted
PlausibleNo cookies, no persistent identifiersOfficial pluginEU-only processingNo free plan; 30-day trial; from $9/mo up to 10k monthly pageviews
FathomCookielessOfficial pluginVendor-hosted (not self-hostable); EU-isolation optionNo free plan; 7-day trial; from $15/mo up to 100k monthly pageviews
WP-native (Koko, Independent Analytics)Runs in your own databasePlugin, no third partyYour own WordPress databasePlugins in the WordPress directory
GhostMetricsNo cookies, no localStorage, hashed IPs onlyNo plugin — one script tagCloudflare (hosted only)Free (1 site); Pro $9.99/mo flat

A few things worth reading past the row labels. Plausible and Fathom are the two cookieless tools here with an official WordPress plugin — if "plugin-native" matters to you as much as "cookieless," they're the closest fit; see our Matomo alternatives piece for how they stack up against Matomo's heavier, GDPR-tooling-first approach. Jetpack Stats is worth a look if you already run Jetpack — no new plugin needed, and it reports inside wp-admin. The WordPress-native row (Koko Analytics, Independent Analytics) is the one to pick if "never leaves my server" is a hard requirement and you don't want Matomo's footprint. Both store their data in your own WordPress database rather than sending it to a third party. GhostMetrics — that's our own product, and it's the only one here without a WordPress-native plugin. What that actually costs you gets a section of its own below.

No WordPress-native plugin? Here's how to add the tag anyway

There is no WordPress-native GhostMetrics plugin. What you're installing instead is one script tag, the same tag that works on any host — WordPress included. It takes about the same effort as installing a plugin, just without the plugin.

  1. Grab your site ID. Sign up and GhostMetrics gives you a site ID — that's the value that goes in data-site below.
  2. Classic theme? If — and only if — your child theme already contains a full copy of the parent's header.php, paste the tag right before </head> there. If it doesn't, do not create one (a header.php holding only this tag replaces your theme's whole header) — use the functions.php hook in the next step instead:
    <script defer src="https://ghostmetrics.nullagency.io/gm.js" data-site="YOUR-SITE-ID"></script>
  3. Running a block theme (no header.php)? Block themes don't expose a header.php file to edit, so hook into wp_head from a child theme's functions.php — never the parent theme's, since a theme update overwrites it. If you don't run a child theme, use the snippet plugin in step 4:
    add_action( 'wp_head', function () {
    	echo '<script defer src="https://ghostmetrics.nullagency.io/gm.js" data-site="YOUR-SITE-ID"></script>';
    } );
    This works on classic themes too, if you'd rather not touch header.php at all.
  4. Don't want to edit theme files? Install any "insert headers and footers" style snippet plugin from the WordPress plugin directory (there are several well-established ones — pick whichever fits your workflow) and paste the same tag into its site-wide header field.
  5. Verify it's live. View source on your homepage and search for ghostmetrics.nullagency.io, then open your GhostMetrics real-time dashboard and confirm the visit shows up.

gm.js is SPA-aware — it treats pushState/popstate navigation as a new pageview — but that matters less on stock WordPress, which reloads the full page on navigation anyway. It works identically on any self-hosted WordPress install, on any host.

WordPress.com hosted sites

Self-hosted WordPress and WordPress.com are different products with different rules, and this matters a lot for the how-to above. Per WordPress.com's own support documentation (2026-09-15), plugins — including the snippet plugins referenced in step 4 — are available on the Personal, Premium, Business, and Commerce plans.

Whether a given plan actually lets you paste a raw script tag, versus only offering a curated plugin list, is plan-dependent — check WordPress.com's current documentation for your specific plan. Editing theme files is not something every WordPress.com plan exposes, so on the plans where plugins are available the snippet-plugin route in step 4 is the one to look at first.

This distinction trips people up because "WordPress" gets used for both products in casual conversation. A self-hosted WordPress install — on any host, not just WordPress.com — always gives you full file access, so the header.php and functions.php routes above always work there. WordPress.com is the hosted product with its own plan tiers and its own rules about what you can touch, and those rules are the vendor's to change, not something a third-party tool like GhostMetrics can work around.

What you lose without a WordPress-native plugin

Here's the trade-off: GhostMetrics doesn't know it's running on WordPress. It reads nothing from your WordPress database and hooks into no WordPress data at all — it just sees whatever loads in the visitor's browser.

Concretely, that means no post-type breakdown (you can't split traffic by "posts" vs. "pages" vs. a custom post type), no author breakdown, and no WooCommerce or revenue data of any kind. A WordPress-native plugin that reads your database directly can offer those views; a script-tag tool structurally cannot, because it never sees your database in the first place.

What GhostMetrics does track, plugin or not, is pages, entry/exit pages, referrers and source types, UTM campaign breakdown, custom events, Core Web Vitals (FCP, LCP, CLS, TTFB — not INP), geography, and browser/device — the same panels it shows on any site, WordPress or not. If post-type-level or WooCommerce reporting is a requirement, that's a real reason to keep a WordPress-native plugin — one that reads your database directly — alongside or instead of a script-tag tool.

If revenue reporting matters to your WordPress site specifically — a WooCommerce store tracking orders, for instance — a script-tag tool is the wrong layer entirely. Keep that reporting in WooCommerce's own dashboard or a plugin built to read its order tables, and use a cookieless tool for what happens before checkout: pages viewed, referrers, and which campaign a visitor arrived from.

What you can still track: button clicks, without WooCommerce data

Not having database access doesn't mean GhostMetrics is limited to pageviews. Two ways to record a specific interaction on a WordPress page, neither of which touches WordPress data: add data-gm-event="add-to-cart-click" to any element and clicks on it are recorded automatically, or call window.ghostmetrics.track('name', { section: 'pricing' }) from your own code for anything more conditional.

The declarative option matters specifically for WordPress because so many WordPress pages are built with page builders, block patterns, or widgets that render content after the initial page load. GhostMetrics uses one delegated listener on the whole document rather than binding to elements that exist at load time, so a button injected later by a page builder, a popup, or a block that loads client-side is still tracked — nothing to re-bind, no "only scans once" caveat.

The honest limit: there's no numeric value or revenue field on a custom event, and no per-visitor funnel across sessions. An event tells you a button on a specific page was clicked, in a specific session, with that session's UTM tags attached — it doesn't tell you what the visitor was worth. If a dollar figure per click matters, that's WooCommerce's job, not a cookieless analytics tool's.

The consent-banner math, if that's why you're here

A lot of WordPress site owners end up on this page for one specific reason: they're tired of the consent banner. It's worth being precise about why GA4-via-plugin needs one and a cookieless tool doesn't, because the difference isn't cosmetic.

GA4 sets the _ga cookie to persist a visitor identifier across sessions — that's what generally brings the EU/UK consent requirement with it, and it's true regardless of whether GA4 is running through Site Kit, MonsterInsights, or gtag.js pasted in by hand. A cookieless tool has nothing to ask consent for: GhostMetrics stores no cookies, no localStorage entries, no IP addresses (they're hashed before storage), no personal data, and no identifier that persists across sessions — and it honors Global Privacy Control and Do Not Track by collecting nothing at all when either signal is present. Plausible and Fathom make the same cookieless claim; the difference between the three, for a WordPress site specifically, is that Plausible and Fathom ship an official plugin and GhostMetrics doesn't.

If the consent banner itself — not just the analytics choice — is the thing you're trying to remove from your WordPress site, our GDPR-compliant analytics tools piece walks through what "no consent needed" actually requires beyond just picking a cookieless vendor.

Cookieless analytics on WordPress, no plugin required

No cookiesNo consent banner$0 forever, 1 site$9.99/mo flat Pro

GhostMetrics is one <script defer> tag — no plugin, no tag manager, no build step, no database connection to your WordPress install. The free plan is free forever: one site, unlimited pageviews, real-time dashboard, every view, full history. No cookies means no consent banner to add just for analytics.

Need more than one WordPress site, or a public shareable dashboard? Pro is $9.99/mo flat, unlimited pageviews, unlimited websites (fair-use ceiling of 250), with a 30-day free trial — a card starts the trial, nothing is charged for 30 days, cancel anytime. Raw event export as CSV or JSON is available on every plan, including free. Custom events work two ways: add data-gm-event="signup-click" to any element, or call window.ghostmetrics.track('name', { section: 'pricing' }) from code.

Start free — no plugin, no card See the live demo

FAQ

Does GhostMetrics ship a WordPress-native plugin?
No. GhostMetrics has no WordPress-native plugin. You add one script tag to the site's head instead — through a child theme's header.php, a wp_head hook in functions.php, or an insert-headers-and-footers style snippet plugin. On a block theme, use the functions.php hook or a snippet plugin, since block themes have no header.php file to edit.
Will adding GhostMetrics trigger a cookie consent banner?
No. GhostMetrics sets no cookies, uses no localStorage, and stores no IP addresses (they're hashed), no personal data, and no cross-session identifier. It honors Global Privacy Control and Do Not Track by collecting nothing at all when either is present. That's the whole reason it doesn't carry the consent obligation a cookie-based tool generally does.
Can I use GhostMetrics on a WordPress.com site?
It depends on your plan. According to WordPress.com's own support documentation, plugins are available on the Personal, Premium, Business, and Commerce plans. Whether your specific plan lets you paste a raw script tag into the header is worth checking in WordPress.com's current docs before you count on it.
What do I lose by not using a WordPress-native analytics plugin?
GhostMetrics doesn't know it's running on WordPress, so it has no post-type breakdown, no author breakdown, and no WooCommerce or revenue data. What it does track is pages, referrers, UTM campaigns, custom events, Core Web Vitals, geography, and browser/device — all without reading anything from your WordPress database.
Is GhostMetrics free for a WordPress site?
Yes, for one site. The free plan is free forever: one website, unlimited pageviews, the real-time dashboard, every dashboard view, and full history. Pro is $9.99/mo flat if you need more than one site or a public shareable dashboard URL, with a 30-day free trial — a card starts the trial, nothing is charged for 30 days, and you can cancel anytime.

Keep reading

Google Analytics Alternatives

The full field beyond WordPress specifically

Matomo Alternatives

GA-style depth without the self-host overhead

Analytics Without a Consent Banner

What "no consent needed" actually requires

GhostMetrics Live Demo

The real dashboard, live data

Disclosure: GhostMetrics is built by Null Agency and we use it on this site, so we're not a neutral party about our own product — we've kept the claims to what the free and paid plans actually do, and pointed to Plausible, Fathom, Jetpack Stats, Matomo, and WordPress-native plugins where they genuinely fit a WordPress site better than a script-tag tool can. Pricing and plan details for third-party products can change; always check the vendor's current documentation before deciding.