Title: Kantan Analytics
Author: Try Kantan
Published: <strong>June 29, 2026</strong>
Last modified: June 29, 2026

---

Search plugins

![](https://ps.w.org/kantan-analytics/assets/banner-772x250.png?rev=3590336)

![](https://ps.w.org/kantan-analytics/assets/icon.svg?rev=3590336)

# Kantan Analytics

 By [Try Kantan](https://profiles.wordpress.org/inglewood/)

[Download](https://downloads.wordpress.org/plugin/kantan-analytics.2.20.1.zip)

 * [Details](https://twd.wordpress.org/plugins/kantan-analytics/#description)
 * [Reviews](https://twd.wordpress.org/plugins/kantan-analytics/#reviews)
 *  [Installation](https://twd.wordpress.org/plugins/kantan-analytics/#installation)
 * [Development](https://twd.wordpress.org/plugins/kantan-analytics/#developers)

 [Support](https://wordpress.org/support/plugin/kantan-analytics/)

## Description

Kantan Analytics is a self-hosted WordPress analytics plugin that tracks visitors,
sessions, journeys, and conversions — without cookies, external services, or data
ever leaving your server. Every metric lives in your own database. You own it.

Kantan keeps every metric in your own database and answers the questions you actually
have: which pages convert, where visitors come from, who keeps coming back, and 
what changed this week. The dashboard installs in a few minutes and runs in the 
WordPress admin sidebar you already use.

#### Privacy by architecture

 * **No cookies.** Browser localStorage only — no consent banner required in most
   jurisdictions, no cross-site tracking possible.
 * **No IP storage.** Country and region are resolved from an offline GeoIP database
   at tracking time; the raw IP is never written to disk.
 * **Nothing phoned home.** Every metric stays in your WordPress database and Kantan
   never sends your data to us. One optional integration — the Attribution Webhook,
   off by default — can forward conversions to a webhook URL you choose (e.g. your
   own CRM); see the Privacy section.
 * **Configurable retention.** Raw session detail purges on the schedule you set(
   default 90 days). Daily aggregates live in a local SQLite file forever.
 * **Bots and admins filtered.** Logged-in admins, common bots, and IPs you specify
   are excluded before anything is recorded — your numbers reflect actual humans.

#### What it tracks

 * **Sessions, pageviews, bounce, duration** — trended across any date range, with
   device, browser, OS, and screen-resolution breakdowns
 * **Traffic sources & UTM capture** — organic, direct, referral, social, paid; 
   UTM parameters captured on first touch and attached to every conversion in the
   session
 * **Click heatmaps & scroll depth** — recorded per-page, per-element, no external
   script
 * **User journeys with named visitors** — every visitor gets a persistent ID and
   a generated three-part name (e.g. “Roaming Copper Wren”) so long journeys are
   actually legible across return visits
 * **Page-to-page flow** — see exactly which path your best visitors walk, and where
   the rest drop off
 * **Conversion tracking** — phone, email, directions, bookings, plus auto-detection
   of form submissions from Contact Form 7, WPForms, Gravity Forms, Formidable, 
   Ninja Forms, Forminator, and others
 * **Long-term aggregate storage** — daily totals kept indefinitely in a local SQLite
   file even when raw rows are purged on schedule, so five-year trend lines don’t
   require holding five years of personal data

#### AI-readable analytics

Kantan ships with a downloadable AI agent that reads your data through the WordPress
REST API using an application password you generate. Ask it questions in plain English—“
Which conversions came from organic traffic last month?”, “Who are my five most 
engaged returning visitors?”, “Draft me a paragraph about this week’s biggest spike.”
It reads; you approve. Nothing it sees leaves your terminal unless you ask.

#### Built for self-hosting

 * **Free forever**, GPL v2
 * No accounts, no signups, no SaaS dashboard
 * Runs on any standard WordPress install (5.0+, PHP 7.0+)
 * ~2 MB plugin, 5–50 MB/year of data depending on traffic
 * Extensible sidebar tab system — companion plugins like Kantan SEO snap in alongside
   the analytics tabs

### Privacy

Kantan Analytics is built to collect the minimum needed to give you useful visitor
insight, and to keep all of it on your own server.

**What is recorded:** page views, click positions (as percentages, not pixels), 
scroll depth, in-session navigation paths, traffic source and referrer, UTM parameters,
conversions (form submissions, phone/email/directions clicks), and approximate device,
browser, operating system, and screen resolution parsed from the request.

**What is not recorded:** Kantan does not set cookies and does not store visitor
IP addresses. Country and region are resolved from an offline database at the moment
of the visit, after which the raw IP is discarded. No data is ever transmitted to
Kantan or the plugin author.

**Optional data sharing (off by default):** The Attribution Webhook is the only 
feature that can send data off your server, and it is disabled until you turn it
on. When you enable it and provide a destination URL, Kantan forwards each conversion
event — with any UTM/campaign and passthrough parameters you’ve allow-listed — to
that endpoint, which is typically your own CRM or marketing-automation tool. You
choose whether to enable it and where the data goes; nothing is sent until you do.

**Retention:** detailed session records are deleted automatically after a configurable
window (default 90 days). Only anonymous daily aggregate totals are retained beyond
that, in a local SQLite file.

**Disclosure helper:** Kantan registers suggested text with WordPress’ built-in 
Privacy Policy tool (Settings  Privacy), so you can add an accurate disclosure to
your site’s policy in one click.

### Support

Questions, bugs, or feature requests? Email hello@trykantan.com — or use the **Support&
Bug Reports** card in the dashboard’s Settings tab, which pre-fills your plugin,
WordPress, and PHP versions plus your site URL so we can help faster. We read every
message.

## Screenshots

[⌊Overview dashboard — sessions, pageviews, bounce rate, and duration with trend
charts and sparklines.⌉⌊Overview dashboard — sessions, pageviews, bounce rate, and
duration with trend charts and sparklines.⌉[

Overview dashboard — sessions, pageviews, bounce rate, and duration with trend charts
and sparklines.

[⌊Interactions — click region heatmap, scroll-depth distribution, and top-clicked
elements.⌉⌊Interactions — click region heatmap, scroll-depth distribution, and top-
clicked elements.⌉[

Interactions — click region heatmap, scroll-depth distribution, and top-clicked 
elements.

[⌊Journeys — page-by-page navigation paths for named, persistent visitors.⌉⌊Journeys—
page-by-page navigation paths for named, persistent visitors.⌉[

Journeys — page-by-page navigation paths for named, persistent visitors.

[⌊Realtime — visitors active in the last five minutes with current page and traffic
source.⌉⌊Realtime — visitors active in the last five minutes with current page and
traffic source.⌉[

Realtime — visitors active in the last five minutes with current page and traffic
source.

[⌊Settings — retention, IP exclusion, conversion link rules, and the AI agent download.⌉⌊
Settings — retention, IP exclusion, conversion link rules, and the AI agent download
.⌉[

Settings — retention, IP exclusion, conversion link rules, and the AI agent download.

## Installation

 1. Upload the plugin folder to the `/wp-content/plugins/` directory, or install it
    through the Plugins screen in WordPress.
 2. Activate the plugin through the ‘Plugins’ menu in WordPress.
 3. The database tables are created automatically on activation.
 4. View your analytics at Analytics in the admin menu.

## FAQ

### Does this use cookies?

No. Kantan uses browser localStorage to recognise returning visitors, never cookies.
No consent banner is required in most jurisdictions, and no cross-site tracking 
is possible.

### Where is the data stored?

All data is stored in your WordPress database in `wp_kantan_*` tables, with daily
aggregates in a local SQLite file under `wp-content/uploads/kantan/`. Nothing is
sent to external servers.

### How is traffic source detected?

The tracking script categorizes referrers automatically:

 * Organic: Google, Bing, Yahoo, DuckDuckGo, Baidu
 * Social: Facebook, Twitter, Instagram, LinkedIn, Pinterest, TikTok
 * Referral: Other external sites
 * Direct: No referrer or same domain

UTM parameters override referrer-based detection when present, and they stay attached
to the visitor through every page and conversion in the session.

### Does this slow down my site?

No. The tracking script loads asynchronously after page content and uses `sendBeacon`
for exit tracking. There are no blocking requests, no third-party domains, and no
external CDNs. Performance impact is well under 10ms.

### Is this GDPR / CCPA / ePrivacy compliant?

Kantan is designed for privacy-first compliance under modern privacy law: no cookies,
no IP storage, no cross-site tracking, and — unless you switch on the optional Attribution
Webhook — no data leaves your server. In most jurisdictions you do not need a consent
banner to use it. We’re not lawyers — confirm with yours — but architecturally the
tool is built for privacy-first compliance rather than retrofitting it.

### Will this work with caching plugins (WP Rocket, W3 Total Cache, etc.)?

Yes. The tracking script is loaded via standard `wp_enqueue_script` and runs client-
side, so cached pages still record visits correctly. The only thing to watch for
is plugins that delay or defer JavaScript so aggressively that visitors leave before
the script fires — exclude `kantan-analytics/assets/tracking.js` from any “delay
JS until interaction” rule and you’ll be fine.

### Can I import data from Google Analytics?

Not currently. Kantan starts tracking the moment you activate it, and historical
GA data has a different structure that doesn’t map cleanly. If GAKantan import is
something you need, drop us a note at https://trykantan.com.

### What happens to my data if I deactivate the plugin?

Nothing — your data stays in the database. Deactivating just stops new tracking 
and hides the dashboard. If you uninstall (delete) the plugin, the tables remain
unless you explicitly drop them; this is standard WordPress behavior and lets you
reactivate without losing history.

### How do I exclude my own visits, or specific staff IPs?

Logged-in admins are excluded by default. The Settings tab also lets you exclude
specific IP addresses (one per line). Common bot user-agents are filtered automatically.

### What’s the AI agent?

A downloadable `.md` file from the dashboard that turns any AI coding agent (Claude
Code, Gemini CLI, and compatible tools) into a read-only analyst for your site. 
It uses a WordPress application password you generate, calls the REST API, and answers
questions in plain English. It only reads — nothing it sees leaves your terminal
unless you ask.

### Does this work with WordPress multisite?

Yes — install at the network level or per-site. Each site gets its own tables and
its own dashboard. There’s no aggregated network-wide view yet; that’s on the roadmap.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Kantan Analytics” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Try Kantan ](https://profiles.wordpress.org/inglewood/)

[Translate “Kantan Analytics” into your language.](https://translate.wordpress.org/projects/wp-plugins/kantan-analytics)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/kantan-analytics/),
check out the [SVN repository](https://plugins.svn.wordpress.org/kantan-analytics/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/kantan-analytics/)
by [RSS](https://plugins.trac.wordpress.org/log/kantan-analytics/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.20.1

 * Security: the excluded-IPs and data-retention settings endpoints now require 
   administrator access even for read requests.
 * Change: the admin dashboard’s tooltip styles are now enqueued as a stylesheet
   instead of inlined.

#### 2.20.0

 * Hardening: every visitor-tracking, UTM, conversion, and form input is now unslashed
   and sanitized at the point it is read, and the values forwarded to integration
   hooks are sanitized arrays rather than the raw request.
 * Security: diagnostics and configuration endpoints (status, conversion links, 
   attribution webhook config) now require administrator access even for read requests.
 * Change: all admin and front-end JavaScript is enqueued through WordPress — no
   inline script tags remain.
 * Change: bundled Chart.js updated to 4.5.1.

#### 2.19.0

 * Hardening: comprehensive output escaping across the admin dashboard, timezone-
   safe date handling, and URL parsing through WordPress core wrappers — aligning
   the plugin with the official WordPress.org plugin coding standards.
 * Change: minimum supported WordPress raised to 5.6.
 * Docs: clarified the privacy documentation to disclose the optional Attribution
   Webhook, which sends conversion data to a CRM endpoint you configure — and only
   when you enable it.

#### 2.18.0

 * New: Business Profile — a canonical, editable record of your business facts (
   hours, offerings, address/phone, brand voice, claims to make or avoid) under 
   Settings  Business Profile. The downloadable AI agents now read it as ground 
   truth before writing or rewriting content, so generated copy uses real facts 
   and your voice instead of guessing. Your agent can even draft it from your site(“
   Draft my business profile”), and it’s the same source of truth for both the Analytics
   and SEO agents.

#### 2.17.0

 * New: Attribution Webhook — send every conversion to your email/CRM platform (
   HubSpot, GoHighLevel, Salesforce, Zapier, Make, and more) with its first-party
   campaign + journey attribution, keyed by an anonymous visitor id. HMAC-signed;
   no personal data leaves your site. Set it up under Settings  Attribution Webhook/
   CRM, with a one-click “Send test”.
 * New: passthrough parameter capture — Kantan now captures ad-click and CRM contact
   ids from inbound links (gclid, fbclid, msclkid, contact_id, mkt_tok and ~45 more)
   and includes them in the webhook, so your CRM can join the conversion to the 
   right contact. The captured params are stripped from stored URLs.

#### 2.16.1

 * Improved: the downloadable AI agent now officially documents Gemini CLI alongside
   Claude Code (it’s the same Markdown format — drop it in ~/.claude/agents/ or 
   ~/.gemini/agents/). The agent self-updates to this broadened version automatically.
 * Improved: “Ask the agent” prompts now copy with the agent name prefixed, so the
   pasted prompt delegates to the right Kantan agent. Wording across the agent download
   is now tool-neutral.
 * New: a “What about Codex?” explainer on the agent download covering why OpenAI
   Codex isn’t officially supported yet (and how to use Kantan with it today).

#### 2.16.0

 * New: Scroll Depth by Page — the Interactions tab now breaks scroll depth down
   per page (with a visual bar), so you can see which pages get read versus abandoned
   instead of just a site-wide average.
 * New: click a visitor’s name on the Realtime tab (or in Visitor Profiles) to open
   their full visit history — every session, the pages they walked, durations, and
   conversions.

#### 2.15.0

 * New: Interactions drill-downs — click any Click Region to see exactly which elements
   were clicked there and on which pages, and click any row in Top Clicked Elements
   for its per-page breakdown.
 * Improved: click tracking now records the actual link/button clicked (not the 
   inner span or icon) with a clean, accessible-name-first label, and no longer 
   captures whole-page text from stray clicks. Top Clicked Elements merges the same
   control across pages and filters out container/no-text noise — so the report 
   finally reflects what visitors actually click.

#### 2.14.1

 * New: Top Referrers detail modal — click any referrer on the Overview dashboard
   to see its sessions, visitors, daily trend, landing pages, the exact referring
   URLs, and recent visitors.
 * New: the Claude Code agent now keeps itself up to date — it checks for a newer
   version about once a week and refreshes in place, with no re-download and without
   ever rotating your API key. Added an “Update agent file” button and clearer “
   install once, use on every site” guidance.

#### 2.14.0

 * New: “Ask the agent” — a sparkle icon on dashboard data blocks (referrers, traffic
   sources, pages, journeys, interactions, devices, conversions) opens a modal of
   copy-paste, data-specific prompts for the Claude agent.
 * New: AI-assistant referral attribution — visits are identified from utm_source
   as well as the referrer (catching empty-referrer ChatGPT/Perplexity/Claude links)
   and split per assistant; the Overview AI card shows the per-assistant breakdown.
 * Fixed: Overview KPI cards lay out cleanly as 3-up / 2-up on laptop screens.

#### 2.13.1

 * New: an “AI Assistants” KPI card with sparkline on the Overview dashboard — shows
   visits referred by AI assistants and their share of total traffic at a glance.

#### 2.13.0

 * New: AI assistants (ChatGPT, Perplexity, Claude, Gemini, Copilot and more) are
   now a first-class traffic source. Visits referred by them are tracked and shown
   as their own “AI Assistants” category across Traffic Sources, sessions, the realtime
   tab, and conversions. Existing AI-referred visits are reclassified automatically
   on upgrade.
 * New: the Claude Code agent gained an “AI Assistant Referral Traffic” workflow
   and an “Am I getting AI traffic yet?” starter prompt.

#### 2.12.1

 * New: a “Support & Bug Reports” card in Settings — a one-click email link that
   pre-fills your plugin, WordPress, and PHP versions plus your site URL, so reports
   arrive with the diagnostics we need to help. Settings and Support links now also
   appear in the WordPress plugins list.

#### 2.12.0

 * Fixed: the agent download dialog now caps its height and scrolls on short/laptop
   screens instead of overflowing off-screen.
 * New: starter prompts in the Claude Code agent download — copy-to-clipboard example
   prompts (30-day summary, best/worst content, traffic-source ROI, visitor journeys)
   appear in the credentials modal and are written into the generated agent .md.

#### 2.11.5

 * Fixed: clicking a page row now opens the page-detail modal on every tab. The 
   click handler was previously only present on the Overview tab, so page rows on
   Pages, Journeys, and the SEO tabs showed a hover state but did nothing when clicked.
 * Fixed: the “Visits Over Time” chart on the Overview tab could render blank — 
   the canvas had no sized container, so Chart.js collapsed it to zero height. It
   now renders in a fixed-height container.
 * Fixed: IP exclusion and visitor IP logging now resolve the real client address
   through reverse-proxy/CDN headers (Cloudflare, nginx, load balancers) instead
   of always using the proxy’s own address. On proxied sites the “Your current IP”
   box previously showed a private hop (e.g. 127.0.0.1 or 192.168.x.x), and excluding
   it had no effect. When only a local/private address is available, the box now
   flags it and links to an external IP lookup.

#### 2.11.4

 * New: optional read-only dashboard access. A user granted the `kantan_view_dashboard`
   capability can view the dashboard and its data without `manage_options` — every
   write, scan, and sync still requires `manage_options`. The dashboard menu capability
   is filterable via `kantan_dashboard_capability`. Inert on normal sites; powers
   a public read-only demo.

#### 2.11.3

 * Security/clarity: the Claude Code agent download now states plainly that the 
   generated Application Password grants the full API access of your account (not
   read-only), with guidance to keep the file out of version control and how to 
   revoke the password under Users  Profile  Application Passwords.
 * Added: an `Update URI` header so the “Enable auto-updates” toggle appears for
   Kantan Analytics in the Plugins list. (The WordPress.org build omits this header
   so wp.org continues to own updates there.)

#### 2.11.1

 * Removed: Conversion Backfill tool in Settings — the underlying hostname-matching
   bug it patched was fixed back in 2.9.8, so the catch-up tool is no longer needed.
   The REST endpoint, dashboard UI, and `_backfill` conversion-type display shim
   have all been removed.

#### 2.11.0

 * New: Conversions tab — see your conversions by type and by traffic source, with
   a recent-conversion log, right in the dashboard. Surfaces the conversion data
   Kantan already tracks via Settings  Conversion Links.
 * Dashboard assets (Tailwind CSS and Chart.js) are now bundled with the plugin 
   instead of loaded from a CDN — the admin dashboard makes no third-party requests
   and works fully offline.
 * New: Kantan contributes suggested text to WordPress’ built-in Privacy Policy 
   generator (Settings  Privacy), reflecting your configured data-retention window.

#### 2.10.0

 * New: Realtime tab — shows visitors active in the last 5 minutes with their current
   page, traffic source, session age, and “last seen” age. Auto-refreshes every 
   30 seconds with a visible countdown and a manual “Refresh now” button. Pauses
   polling when the browser tab is hidden.
 * New: Live visitor count badge next to the “Realtime” item in the dashboard nav.
   Visible from every tab — the same 30s poll that drives the Realtime tab also 
   keeps the badge current, with a pulsing green dot when at least one visitor is
   active.
 * New: REST endpoint `GET /kantan/v1/realtime?window=5` — returns `{ count, window_minutes,
   visitors, timestamp }`. Each visitor row includes the most recent pageview (current
   page), generated display name, traffic source, session age, and seconds since
   last activity.

#### 2.9.9

 * New: UTM parameters now surface on the Journeys tab alongside each named visitor’s
   session timeline — see campaign, source, and medium for pre-conversion visits(
   previously only visible aggregated on the UTM tab). REST `/visitors` and `/journeys`
   endpoints also expose the new fields, so the Claude Code agent and recommendations
   engine can attribute behavior to campaigns.

#### 2.9.8

 * Fix: conversion link matching corrected — hostname was being searched inside 
   the full URL string (always -1); now checks href.startsWith(rule.domain) OR rule.
   domain contains hostname. Affected all conversion link click tracking since the
   feature launched.
 * New: Conversion Backfill tool added to Settings. Scans historical click data 
   and creates approximate conversion records for sessions likely missed by the 
   bug. Matches anchor text against each rule’s label; backfilled records carry 
   a `_backfill` type suffix. Idempotent — safe to run multiple times.

#### 2.9.7

 * Author renamed from “Kinda Useful Plugins” to “Try Kantan” across plugin header,
   readme, and updater comment.
 * readme description and FAQ rewritten — full feature pitch with subsection structure;
   FAQ expanded from 4 to 10 items (caching, GDPR/CCPA, GA import, deactivation,
   multisite, agent, etc.).

#### 2.9.6

 * Fix: conversions endpoint now returns correct visitor_id for pre-2.9.4 records;
   query uses COALESCE(c.visitor_id, a.visitor_id) to recover attribution from the
   joined session record when the conversion row has a null visitor_id.
 * Fix: version constant bumped to match header (was stuck at 2.9.4).

#### 2.9.5

 * Sidebar nav groups now accordion — clicking a group label collapses or expands
   it. The active group always starts expanded; inactive groups start collapsed.
   Keeps the nav usable on laptops when many SEO sub-tabs are registered.

#### 2.9.4

 * Persistent visitor attribution for conversions: `visitor_id` column added to `
   wp_kantan_conversions` so attribution survives beyond the 90-day raw-data retention
   window.
 * Form integrations now inject `kantan_visitor_id` alongside `kantan_session_id`
   on all detected forms (CF7, WPForms, Gravity, Formidable, Ninja, Elementor Pro,
   Fluent, Forminator).
 * Schema migration runs automatically on update — no manual action required.

#### 2.9.3

 * Update channel migrated to trykantan.com. Plugin URIs, SEO upgrade link, and 
   auto-updater endpoint now point to the new domain.

#### 2.9.0

 * New: Split test tracking integration — pageviews can now record `test_id` and`
   variant_id` from a companion split-testing plugin.
 * New: `kantan_pageview_tracked` action hook fired after each pageview insert.
 * Database migration to add `test_id` and `variant_id` columns to the pageviews
   table.

#### 2.8.0

 * New: Clickable page URLs throughout dashboard — opens SEO page detail modal or
   upsell.
 * New: Sparkline mini-charts on Overview stat cards.
 * Surface recommendations engine on Overview, Interactions, and Journeys tabs.

#### 2.7.0

 * New: IP address exclusion for analytics filtering.
 * Rebuilt Journeys tab with visitor profiles and generated names.

#### 2.6.0

 * New: Admin exclusion and bot filtering.
 * New: Interactions endpoint for click heatmap and scroll depth data.
 * New: Device breakdown endpoint and queries.
 * Switched dashboard to left sidebar nav with grouped tabs.

#### 2.0.0

 * New: Click tracking, scroll depth tracking, and user journey analysis.
 * New: Entry/exit page tracking and top-clicked-elements report.
 * New: Automatic daily cleanup with configurable retention.

#### 1.0.0

 * Initial release: core visitor tracking and admin dashboard.

## Meta

 *  Version **2.20.1**
 *  Last updated **8 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.6 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.0 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/kantan-analytics/)
 * Tags
 * [analytics](https://twd.wordpress.org/plugins/tags/analytics/)[heatmap](https://twd.wordpress.org/plugins/tags/heatmap/)
   [privacy](https://twd.wordpress.org/plugins/tags/privacy/)[statistics](https://twd.wordpress.org/plugins/tags/statistics/)
   [user journey](https://twd.wordpress.org/plugins/tags/user-journey/)
 *  [Advanced View](https://twd.wordpress.org/plugins/kantan-analytics/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/kantan-analytics/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/kantan-analytics/reviews/)

## Contributors

 *   [ Try Kantan ](https://profiles.wordpress.org/inglewood/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/kantan-analytics/)