Updated 20 October 2026
WordPress analytics
Privacy-first, cookieless analytics for WordPress: one snippet in a child theme, so a theme update never removes it.
In short
- A few lines in the
functions.phpof a child theme add the tag to the head of every page. - The open-source repository also has a WordPress plugin that adds the same tag, with a cookieless switch.
- No cookie banner needed in cookieless mode, no IP address stored, and nothing loaded from another company.
Install on WordPress#
Use your own site id and server address in the code below. On trckable Cloud the address is https://cloud.trckable.com.
In Appearance → Theme File Editor, you could paste the tag into header.php before </head>. A theme update overwrites that, so use a child theme or a small plugin. In the functions.php of a child theme:
<?php // functions.php of your child theme
add_action('wp_head', function () { ?>
<script
defer
data-site="tkb_a1b2c3d4"
data-domain="example.com"
src="https://stats.example.com/js/tkb_a1b2c3d4.js">
</script>
<?php });
Open your site once, then run npx trckable doctor --host https://stats.example.com --site tkb_a1b2c3d4 --url https://example.com. It only reads, and tells you whether the tag is on the page and the server answers.
What to know about WordPress#
- Do not edit the parent theme. Its next update replaces your change. A child theme, or a small plugin, is safer.
- Caching plugins serve old pages. After adding the tag, clear the page cache, or the pages already cached have no tag.
- Logged-in editors count as visitors unless you leave them out. Open your site once with
?trckable=ignoreto leave your own visits out of the numbers. - WooCommerce purchases are best recorded by the payment provider. Connect Stripe, Paddle or another provider and each payment is credited to the visit that earned it.
Goals and revenue#
A goal needs no code: put an attribute on the element and each click is counted.
<button data-trckable-goal="signup" data-trckable-goal-plan="pro">Start trial</button>
Connect Stripe, Paddle, Lemon Squeezy, Polar or Dodo Payments with one key, and each payment is credited to the visit that earned it, so revenue shows next to traffic. See revenue attribution.
Questions#
- Is there a WordPress plugin?
- The open-source repository includes one, in
integrations/wordpress. It adds the documented tag, offers a cookieless switch, and can leave logged-in roles out of the numbers. The child theme snippet above needs no plugin at all. - Do I need a cookie banner on my WordPress site?
- Not for the counting itself. In cookieless mode (add
data-cookielessto the tag) nothing is stored on the visitor's device and no IP address is kept. Whether your site needs a banner for other reasons is a question for your own situation; the cookie banner guide explains the rules in plain words. - Can ad blockers stop it?
- A blocker can block any script, and trckable does not claim otherwise. Sending events through your own domain removes the separate analytics file a blocklist would match by name, which is the accurate setup. The same-origin proxy guide shows how.
- Is it free for a WordPress site?
- The server is open source and free to self-host, and the tracker is MIT licensed. If you would rather not run a server, trckable Cloud runs it for you; the plans are on the pricing page.