Title: Shrikant Visitor Tracker
Author: Shri Kant Gaur
Published: <strong>October 11, 2026</strong>
Last modified: October 11, 2026

---

Search plugins

![](https://ps.w.org/shrikant-visitor-tracker/assets/banner-772x250.png?rev=3739684)

![](https://ps.w.org/shrikant-visitor-tracker/assets/icon-256x256.png?rev=3739684)

# Shrikant Visitor Tracker

 By [Shri Kant Gaur](https://profiles.wordpress.org/shrikantgaur/)

[Download](https://downloads.wordpress.org/plugin/shrikant-visitor-tracker.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/shrikant-visitor-tracker/#description)
 * [Reviews](https://wordpress.org/plugins/shrikant-visitor-tracker/#reviews)
 *  [Installation](https://wordpress.org/plugins/shrikant-visitor-tracker/#installation)
 * [Development](https://wordpress.org/plugins/shrikant-visitor-tracker/#developers)

 [Support](https://wordpress.org/support/plugin/shrikant-visitor-tracker/)

## Description

**[Try it now, without installing anything](https://playground.wordpress.net/?plugin=shrikant-visitor-tracker&url=/wp-admin/admin.php%3Fpage%3Dshrikant-visitor-tracker)**—
opens a throwaway WordPress in your browser with the plugin already running. Nothing
is installed on your own site.

Most analytics plugins assume you are starting from nothing. This one assumes you
are not.

#### Switching counters without losing the history

If you run Post Views Counter or WP-PostViews, deleting it throws away every number
it ever recorded. The **Import** screen reads those totals across first — reading
only, never writing to or removing anything in them — so you can switch and keep
the figures.

Imported counts are then kept **separate and labelled, never merged** into this 
plugin’s own statistics. The two measure different things: one spans years under
its own rules, the other starts the day you switch this on and leaves out the bots
it recognises. Adding them together would produce a number that means nothing in
particular. So a reader sees the two added up and no post appears to lose its history,
while the dashboard shows only what was actually tracked and stays comparable with
itself.

Post Views Counter and WP-PostViews are separate projects by their own authors. 
They are named here only so their data can be read; this plugin is not affiliated
with or endorsed by them.

#### Nothing is deleted unless you ask

**Deleting this plugin does not delete its data**, unless you switch that on in 
Settings. Replacing a hand-installed copy with the directory one goes through the
same Delete button as saying goodbye to it, and that should not cost you six months
of history.

The hourly summaries every report is built from are never deleted at all, by anything.
Individual visit rows are kept for good too, unless you choose a retention period
yourself.

#### Why these numbers are lower than your old counter’s

Most view counters add up in PHP while the page is being built. On a site with a
page cache that means the readers served from cache are never counted at all, while
the crawlers that bypass the cache are counted every time — so the number drifts
away from reality in both directions at once.

This one counts from the browser, after the page has loaded, and filters known bots
before recording anything. Expect its figures to sit closer to what Search Console
reports than to a counter that has been accumulating for years under different rules.

#### Everything else

Shrikant Visitor Tracker gives you complete control over your visitor analytics 
data — everything is stored in your own database, nothing leaves your server (except
a geo-IP lookup to the free ipwho.is API, which is cached for at least 24 hours).

#### Key Features

 * **Total / daily / weekly / monthly / yearly visitors** with page-level tracking
 * **Device, browser, and OS detection** via lightweight User-Agent parsing (no 
   library)
 * **Referrer categorisation** (direct, search, social, other) + full **UTM parameter
   tracking**
 * **Country detection, off by default** — turn it on and the anonymised IP (never
   the full one) goes to ipwho.is for a country code, cached 24h. This is the only
   outside request the plugin can make
 * **Real-time “currently online” counter** using WordPress transients
 * **Counts correctly behind a page cache** — a non-blocking browser beacon, not
   a PHP counter, so WP Rocket, LiteSpeed, W3 Total Cache and Cloudflare do not 
   hide your readers
 * **Pre-aggregated summary table** — every report is built from hourly summaries,
   so a report stays fast whatever the traffic, and the summaries are kept for good
 * **Bot filtering** — user-agent matching against a maintained list, plus proxy
   and prefetch headers, before anything is recorded
 * **Privacy-first** — IP anonymisation, DNT header respect, cookie consent hook,
   GDPR data export/erasure
 * **REST API** — full stats API under `/wp-json/shrikant-vt/v1/` for headless or
   custom integrations
 * **WP-CLI commands** — `wp shrikant-vt stats today`, `wp shrikant-vt export`, `
   wp shrikant-vt cleanup --dry-run`, and more
 * **Import from Post Views Counter or WP-PostViews** — switch without losing the
   history
 * **Any date range** — the usual 7/30/90-day presets, or two dates of your own
 * **Searchable, sortable, paginated reports** with CSV export
 * **Choose where the count appears** — a checkbox per public post type, not just
   posts
 * **Nothing is ever deleted** unless you ask for it — not on uninstall, not on 
   a schedule
 * **Zero paid dependencies** — 100% free and open source, nothing loaded from a
   CDN

#### Third-party code

This plugin bundles Chart.js 4.5.1 (https://www.chartjs.org), used to draw the
 
dashboard charts. Chart.js is released under the MIT licence, which is compatible
with the GPL, and its source is at https://github.com/chartjs/Chart.js. It is bundled
rather than loaded from a CDN because a plugin in this directory may not load code
from elsewhere at run time. Nothing else is bundled, and no other third-party code
is loaded.

#### Privacy & GDPR

 * Raw IP addresses are **never stored**
 * With IP anonymisation enabled (default), the last IPv4 octet is zeroed before
   any geo lookup
 * Visitor IDs are HMAC-SHA256 hashes that rotate daily — they cannot be reversed
   to identify real people
 * DNT header is respected by default
 * Integrates with any cookie consent plugin via the `shrikant_vt_has_consent` filter
 * Compatible with WordPress’s built-in personal data export/erasure tools

#### Developer Hooks

 * `shrikant_vt_before_track_visit` — modify or abort tracking
 * `shrikant_vt_after_insert` — react to new visit rows
 * `shrikant_vt_has_consent` — integrate cookie consent plugins
 * `shrikant_vt_is_bot` — override bot detection
 * `shrikant_vt_get_stats` — filter any stats result
 * `shrikant_vt_default_settings` — add custom settings

## Screenshots

[⌊The dashboard: totals for today, the week and the month, the trend over a
year,
and the split by device, browser, operating system and source.⌉⌊The dashboard: totals
for today, the week and the month, the trend over a
year, and the split by device,
browser, operating system and source.⌉[

The dashboard: totals for today, the week and the month, the trend over a year, 
and the split by device, browser, operating system and source.

[⌊Pages report — which pages were read, by how many people, sortable and
searchable,
with a share of the total.⌉⌊Pages report — which pages were read, by how many people,
sortable and
searchable, with a share of the total.⌉[

Pages report — which pages were read, by how many people, sortable and searchable,
with a share of the total.

[⌊UTM campaigns, so a link you posted somewhere can be told apart from
search traffic.⌉⌊
UTM campaigns, so a link you posted somewhere can be told apart from
search traffic
.⌉[

UTM campaigns, so a link you posted somewhere can be told apart from search traffic.

[⌊Settings. Nothing is collected until you say so: country lookup is off
until switched
on, and the view count can be shown on any post type.⌉⌊Settings. Nothing is collected
until you say so: country lookup is off
until switched on, and the view count can
be shown on any post type.⌉[

Settings. Nothing is collected until you say so: country lookup is off until switched
on, and the view count can be shown on any post type.

[⌊Import from WP-PostViews or Post Views Counter, with a count of what will
be brought
across before anything is written.⌉⌊Import from WP-PostViews or Post Views Counter,
with a count of what will
be brought across before anything is written.⌉[

Import from WP-PostViews or Post Views Counter, with a count of what will be brought
across before anything is written.

## Installation

 1. Upload the `sk-visitor-tracker` folder to `/wp-content/plugins/`
 2. Activate the plugin through the **Plugins** menu in WordPress
 3. Navigate to **SK Analytics** in the admin sidebar to view your dashboard
 4. Visit **SK Analytics  Settings** to configure tracking options

## FAQ

### Does this plugin share data with third parties?

Not unless you switch country detection on, and it ships off.

With it on, the anonymised IP address (last octet zeroed) is sent over https to 
ipwho.is, operated by ipwhois.io, which returns a two-letter country code and nothing
else. Terms: https://ipwhois.io/terms — Privacy: https://ipwhois.io/privacy. The
result is cached for at least 24 hours. Nothing else about a visitor ever leaves
the site, and switching the setting back off stops it entirely. The result is cached
for at least 24 hours. All other data stays on your server.

### Is this compatible with caching plugins?

Yes — enable **Async Tracking** in settings (it’s on by default). The tracking pixel
fires client-side via XMLHttpRequest after the cached page loads in the visitor’s
browser.

### How does uniqueness work?

Each visitor gets a long-lived cookie (2 years, HttpOnly, Secure, SameSite=Lax).
A visit is counted as “unique” once per visitor per day using a transient-based 
dedup gate — no SELECT query on every page view.

### Is it compatible with WordPress Multisite?

Yes. Each sub-site gets its own prefixed database tables and settings.

### Can I use this with WP-CLI?

Yes. Run `wp shrikant-vt stats today`, `wp shrikant-vt top-pages --limit=20`, `wp
shrikant-vt export --from=2025-01-01 --file=visits.csv`, and more.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Shrikant Visitor Tracker” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Shri Kant Gaur ](https://profiles.wordpress.org/shrikantgaur/)

[Translate “Shrikant Visitor Tracker” into your language.](https://translate.wordpress.org/projects/wp-plugins/shrikant-visitor-tracker)

### Interested in development?

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

## Changelog

#### 1.0.0

 * Initial release

## Meta

 *  Version **1.0.0**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.3 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.2 or higher **
 * Tags
 * [analytics](https://wordpress.org/plugins/tags/analytics/)[GDPR](https://wordpress.org/plugins/tags/gdpr/)
   [privacy](https://wordpress.org/plugins/tags/privacy/)[statistics](https://wordpress.org/plugins/tags/statistics/)
   [visitors](https://wordpress.org/plugins/tags/visitors/)
 *  [Advanced View](https://wordpress.org/plugins/shrikant-visitor-tracker/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/shrikant-visitor-tracker/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/shrikant-visitor-tracker/reviews/)

## Contributors

 *   [ Shri Kant Gaur ](https://profiles.wordpress.org/shrikantgaur/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/shrikant-visitor-tracker/)