Title: Weblix Analytics – Real-Time Stats &amp; Visitor Counter
Author: Vahid Behnam
Published: <strong>جنوري 29, 2025</strong>
Last modified: سپتمبر 16, 2026

---

Search plugins

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

![](https://ps.w.org/weblix/assets/icon-256x256.gif?rev=3232235)

# Weblix Analytics – Real-Time Stats & Visitor Counter

 By [Vahid Behnam](https://profiles.wordpress.org/vahidbehnam/)

[Download](https://downloads.wordpress.org/plugin/weblix.3.2.2.zip)

 * [Details](https://ps.wordpress.org/plugins/weblix/#description)
 * [Reviews](https://ps.wordpress.org/plugins/weblix/#reviews)
 *  [Installation](https://ps.wordpress.org/plugins/weblix/#installation)
 * [Development](https://ps.wordpress.org/plugins/weblix/#developers)

 [Support](https://wordpress.org/support/plugin/weblix/)

## Description

### 🚀 Real-Time Lightweight Analytics for WordPress

**Weblix Analytics** is a fast, privacy-focused analytics plugin that delivers powerful
real-time insights directly inside your WordPress dashboard — with zero impact on
site speed.

**No external services. No heavy scripts. All data stays on your server.**

If you are looking for a self-hosted Google Analytics alternative, a visitor counter
that never slows your site down, or a real-time stats dashboard that respects privacy
law, Weblix is built for exactly that: one tiny tracker request per page view, a
bounded self-cleaning database and every number computed on your own server.

From live online users to rolling 24-hour comparisons inspired by Google Search 
Console, Weblix Analytics gives you everything you need in a clean, fast, and developer-
friendly package.

### ❓ Why Weblix?

Unlike cloud analytics services, Weblix Analytics keeps your data inside WordPress.

 * No Google account required
 * No third-party tracking cookies
 * No external tracking scripts or pixels
 * Real-time instant statistics
 * Lightweight and fully self-hosted architecture
 * Built to stay fast on very large sites with a deliberately tiny database footprint

### 🌟 Key Features

**Live Real-Time Monitoring (rethought in 3.0)**
 * “Pulse” realtime console: the
big live counter leads (on the right in RTL) beside the minute-by-minute **bar chart
covering the last 60 minutes** — you see the shape of the last hour immediately *
Peak minute highlighted automatically; the still-running minute shown faded * Live
counter with breathing ring, device chips and automatic refresh * **Trending Now
board** — pages ranked over your online window (list length configurable, up to 
200), with the number of people on each page shown right beside the title (clean
plain text, momentum badge vs the previous window, NEW flag reserved for genuine
bursts — 3+ visitors with an empty previous window; every page title is a hyperlink
carrying its URL as tooltip) * Recent visitors feed with source chips (its title
jumps to the Sources tab) * Smart insight notes never push the charts down — they
live only in a bell icon in the topbar and in the WordPress admin bar, on every 
tab

**Live Status in the WordPress Admin Bar**
 * Online-visitor counter and insights
bell in the fixed admin bar — visible on every admin screen AND on the site’s own
pages while you are logged in * The bell opens the same smart-notes panel as the
console, right inside the bar; wording follows the admin profile language, so an
English-profile admin on a Persian site reads English everywhere * Both indicators
refresh at exactly the **Dashboard Refresh** interval chosen in Settings; the console
pauses in hidden tabs and catches up the instant you return, and the new **Always
online** mode keeps it refreshing even there — one source of truth shared with the
console topbar and the dashboard widget, no wasted requests * Quietly stays out 
of the way on mobile (below 782px the admin bar has no room); the in-plugin console
is untouched

**The Analytics Page — Today, Any Day, and Reviews up to a Year**
 * One view selector
switches the whole page between Today, Yesterday, any of the last 30 days and rolling
7/30/90/180/365-day reviews — the same six KPI cards everywhere (Visitors, Page 
Views, Views/Visitor, Bot Visits, Peak Hour / Best Day and the **Mobile vs Desktop**
split bar) * Today stays live: delta chips versus yesterday at the same time, rolling
12-hour sparklines, optional faded yesterday overlay behind the hourly bars * Pick
any of the last 30 days — date picker, labeled prev/next stepper, back-to-today 
and bookmarkable #weblix-day / #weblix-period links — for its full hourly chart 
and archive-backed top pages, sources, devices, browsers, OS and bots * 7/30/90/
180/365-day reviews add daily-average and best-day cards, previous-period deltas
and a mixed daily trend chart — page views as columns, visitors as a sharp line 
above them — with the best and worst day marked: click any point to drill straight
into that day; the Publishing Clock follows the selected window * The Visitors /
Page-Views switch below the chart drives the cards and tables in every view; Top
Pages / Landing / Exit switcher, Traffic Sources donut, Browsers & OS mini-tables,
Top Bots

**Audience & Acquisition Intelligence (GA-inspired, computed only from data you 
already store)**
 * Audience quality strip: New vs Returning visitors, Single-page
visit share (bounce proxy), Average active span (first  last hit) * Landing and 
Exit page reports computed per-visitor inside the raw window * UTM campaign report(
source · medium · campaign) — live from today’s hits, archived nightly to `weblix_daily.
top_utms` forever after * **Publishing Clock**: weekday × hour heatmap of views 
across 30 days so you know exactly when your audience is most active * All modules
optional — one Settings switch hides them; everything is computed from data already
stored, the tracking engine stays untouched

**Rolling 24-Hour Compare — Google-Search-Console style**
 * Last 24 hours vs previous
24 hours * Today so far vs yesterday same time * Last 24 hours vs the same period
last week * Last 24 hours vs the same period 30 days ago * Three metrics: Visitors,
Page Views **and Views-per-Visitor** (derived per hour client-side, like GA’s engagement
benchmark) * Hour-by-hour dual-line chart; hover shows both values plus the difference*
Summary cards: current total, comparison total, absolute difference and % change*
Top pages and source-type tables follow the selected metric; referrer detail inside
the raw-data window

**Multi-Day Compare PRO**
 * Smart presets: 7 vs previous 7, 28 vs previous 28, 
this month vs last month, this month vs same month last year, fully custom ranges*“
Align by day of week” option for equal-length custom ranges — a Monday compares 
with a Monday * Optional normalised (%) view when comparing series of different 
scales or lengths * Dual-series trend chart over day indexes with per-day tooltips*
Full metrics breakdown table: Visitors, Page Views, Views/Visitor, Bots, Desktop/
Mobile/Tablet, Search/Social/Direct/Referral — each row showing A, B, difference
and % change * Clear empty-state notices when a range predates your archive instead
of silent zeros

**Classic Analytics Tabs**
 * Pages, Sources, Devices, Browsers & OS, Bots across
Today / Yesterday / 7 / 30 / 90-day windows * Percentage share bars on every table*
Pages tab built for reading: page titles are the links, URLs shown decoded, muted
and single-line

**Smart Insights — quiet by design**
 * Same-time traffic comparison (e.g. “Traffic
up 23% vs yesterday at this time”) * Top traffic source of the day · Most visited
page highlight · Hourly traffic spike detection * Delivered through one bell icon
with a **red blinking badge** next to the live counter — open it on any tab; no 
insight banner is ever rendered inside the analytics pages

**Privacy, Protection & Access Control**
 * Numbers-only hourly archive — no IPs,
URLs or titles in it * Optional IP hashing (GDPR friendly) * Exclude logged-in users,
roles, IPs, and URL patterns * Advanced bot detection with server-side tracking *
Configurable retention for daily data and a hard-capped hourly table * Rate limiting
on all tracking endpoints, same-origin validation on the public tracker, nonce +
capability checks on every admin action, prepared SQL everywhere * **Statistics 
Visibility**: pick exactly which user roles can see the console, the dashboard widget
and the admin bar status — administrators only by default, enforced server-side 
through one audited capability gate

**Cache & CDN Compatibility (hardened across the whole 3.0 QA line)**
 * No security
token embedded in page HTML — tracking requests are validated by same-origin proof,
so arbitrarily old cached pages keep counting * Zero GET data requests: every live
read (admin bar, Realtime page, every dashboard tab) travels as POST with no-store
headers and cache-busting parameters — no browser, proxy or “cache everything” CDN
can store or replay a Weblix number * Server-side snapshots are freshness-stamped
and self-healing: a cached payload is only served while provably fresh, and a row
damaged by database-optimization sweeps (the classic “frozen counter” cause) is 
rebuilt automatically on the first request * Crawler user-agent bypass rules registered
automatically with WP Rocket and LiteSpeed so bots reach PHP behind full-page cache*
REST API endpoints carry explicit no-store headers, so excluding /wp-json/weblix/
from edge caching is officially supported * Diagnostics **Tracking Self-Test**: 
fires one real request through your cache setup and reports pass/fail

**Tools & Diagnostics**
 * System health, cron status (including the hourly rollup),
DB sizes incl. the hourly table * “Data Safety & Storage” card: every table with
its row count, oldest record and exact deletion policy * Cache/CDN detection card
explaining what Weblix did about each layer — and what only edge rules can fix *“
Run Cleanup Now”: one click flushes every live Weblix cache (all locale variants)—
an instant manual reset on top of the self-healing guards * Manual actions: aggregate
yesterday, backfill missing hours * CSV Export · WordPress Dashboard widget · Translation
status row showing exactly which language file is active

### ⚡ Built for Performance

 * Lightweight tracker: one deferred POST per page view (prerender-aware, so hover-
   preloaded pages never inflate your numbers)
 * Three tiny tables: raw visits (rolling 72 h), daily archive, hourly numbers (
   ~50 bytes/row)
 * Hourly rollup filled by one grouped query per hour in WP-Cron — never on page
   loads
 * Gaps self-heal automatically when a dashboard view notices them — a missed cron
   night folds itself back in, it can never leave a permanent hole
 * The admin bar, console and dashboard widget all read the same shared, bounded,
   freshness-guarded snapshot instead of querying separately
 * Batch DELETE with LIMIT prevents MySQL table locks
 * All queries use prepared statements and indexed reads

### Third-Party Assets

 * **Chart.js** — bundled at `assets/js/chart.min.js` (minified, without source 
   changes). Copyright the Chart.js contributors, released under the MIT License:
   https://github.com/chartjs/Chart.js/blob/master/LICENSE.md
 * **Vazirmatn FD** — bundled at `assets/fonts/Vazirmatn-FD-Regular.woff2` (the 
   official Farsi-Digits Regular build, unmodified), together with its full license
   text at `assets/fonts/OFL.txt`. Copyright 2015 The Vazirmatn Project Authors (
   https://github.com/rastikerdar/vazirmatn), released under the SIL Open Font License
   1.1: https://scripts.sil.org/OFL — used by Weblix only for `fa*` admin locales.
   In this build the Latin digit codepoints are drawn as the locale’s native digits,
   so every number in the translated UI uses the familiar local digit shapes

## Screenshots

[⌊WordPress Dashboard widget showing live online users, today's views, visitors,
bots, and top active pages (list length configurable in Settings → General, 1–200).⌉⌊
WordPress Dashboard widget showing live online users, today's views, visitors, bots,
and top active pages (list length configurable in Settings → General, 1–200).⌉[

WordPress Dashboard widget showing live online users, today’s views, visitors, bots,
and top active pages (list length configurable in Settings  General, 1–200).

[⌊Realtime tab (3.0): live counter with device chips beside the 60-minute minute-
by-minute bar chart with peak-minute highlight; Trending Now board with per-page
online counts.⌉⌊Realtime tab (3.0): live counter with device chips beside the 60-
minute minute-by-minute bar chart with peak-minute highlight; Trending Now board
with per-page online counts.⌉[

Realtime tab (3.0): live counter with device chips beside the 60-minute minute-by-
minute bar chart with peak-minute highlight; Trending Now board with per-page online
counts.

[⌊Today tab: six KPI cards with delta chips and sparklines incl. the Mobile vs Desktop
split bar, hourly chart with the Visitors/Page-Views switch right below it, yesterday
overlay, share bars and trend arrows.⌉⌊Today tab: six KPI cards with delta chips
and sparklines incl. the Mobile vs Desktop split bar, hourly chart with the Visitors/
Page-Views switch right below it, yesterday overlay, share bars and trend arrows
.⌉[

Today tab: six KPI cards with delta chips and sparklines incl. the Mobile vs Desktop
split bar, hourly chart with the Visitors/Page-Views switch right below it, yesterday
overlay, share bars and trend arrows.

[⌊Compare tab: rolling 24-hour vs previous-24-hour dual-line chart with hover deltas,
summary cards and the Views-per-Visitor metric.⌉⌊Compare tab: rolling 24-hour vs
previous-24-hour dual-line chart with hover deltas, summary cards and the Views-
per-Visitor metric.⌉[

Compare tab: rolling 24-hour vs previous-24-hour dual-line chart with hover deltas,
summary cards and the Views-per-Visitor metric.

[⌊Multi-Day Compare: presets, weekday alignment, normalised view and the metrics
breakdown table.⌉⌊Multi-Day Compare: presets, weekday alignment, normalised view
and the metrics breakdown table.⌉[

Multi-Day Compare: presets, weekday alignment, normalised view and the metrics breakdown
table.

[⌊Audience intelligence: new vs returning, single-page share, active span, landing/
exit pages, UTM campaigns and the Publishing Clock heatmap.⌉⌊Audience intelligence:
new vs returning, single-page share, active span, landing/exit pages, UTM campaigns
and the Publishing Clock heatmap.⌉[

Audience intelligence: new vs returning, single-page share, active span, landing/
exit pages, UTM campaigns and the Publishing Clock heatmap.

[⌊Pages tab with clickable page titles, decoded single-line URLs, view counts and
share bars.⌉⌊Pages tab with clickable page titles, decoded single-line URLs, view
counts and share bars.⌉[

Pages tab with clickable page titles, decoded single-line URLs, view counts and 
share bars.

[⌊Sources tab with traffic type donut and top referrers.⌉⌊Sources tab with traffic
type donut and top referrers.⌉[

Sources tab with traffic type donut and top referrers.

[⌊Devices tab with device/browser/OS breakdowns.⌉⌊Devices tab with device/browser/
OS breakdowns.⌉[

Devices tab with device/browser/OS breakdowns.

[⌊Bots tab listing top crawlers with shares.⌉⌊Bots tab listing top crawlers with
shares.⌉[

Bots tab listing top crawlers with shares.

## Installation

**From WordPress Dashboard:** 1. Go to Plugins > Add New 2. Search for “Weblix Analytics”
3. Click Install Now and then Activate

**Manual Installation:** 1. Download the plugin archive 2. Upload the `weblix` folder
to `/wp-content/plugins/` 3. Activate the plugin through the Plugins menu in WordPress

After activation, go to **Weblix** in the admin menu.

## FAQ

### Does Weblix Analytics slow down my website?

No. The tracker sends one small deferred request per page view and has zero impact
on page load time. Dashboard aggregation happens in WP-Cron, not on page loads.

### Is Weblix a Google Analytics alternative?

Yes — a self-hosted one. Weblix reports the same core numbers site owners actually
use (visitors, page views, views-per-visitor, traffic sources, landing/exit pages,
engagement rate) plus bot detection, without Google accounts, cookies, consent-banner
burdens for basic stats, or any data leaving your server.

### What exactly counts as a page view?

Since 3.2.1 a page view is one counted view per visitor identity (IP + browser profile)
per URL per 90 seconds — the same shape as mainstream analytics. Reload and F5 bursts
inside 90 seconds collapse into one view; a genuine second look after that counts
again. People sharing one carrier-grade NAT IP (common on mobile networks) count
separately, because the browser is part of the identity. Prerendered (hover-prefetched)
pages never count until they are actually opened, and back/forward cache restores
count as the real views they are.

### Is it compatible with caching plugins?

Yes, by design. Since 3.0 there is no rotating token inside page HTML: tracker requests
are validated by same-origin plus rate limits, so a page cached for days still counts
its visitors correctly. The script URL also carries a version parameter so CDNs 
refresh it after updates. The same protection now covers every dashboard number:
all live reads travel as POST with no-store headers, so nothing between the browser
and the server may store them, and the server-side snapshots are freshness-stamped
so a stale or damaged cache row is rebuilt instead of replayed.

### My counter once froze for hours and only a purge or a language switch fixed it — is that solved?

Yes. The root cause was inside the plugin’s own storage, not the CDN: when a database-
optimization tool deletes the internal expiry marker of a WordPress transient, WordPress
silently serves that snapshot forever. Weblix now stamps every live cache with a
write time and serves it only while provably fresh — a damaged row is rebuilt automatically
on the first request after updating, with no purge and no manual step. If you ever
want an instant manual reset, Diagnostics  “Run Cleanup Now” flushes every live 
cache in one click.

### Who can see the statistics?

Only the roles you explicitly allow. The Statistics Visibility option (first card
in Settings) picks which roles can open the console, see the dashboard widget or
the admin bar status — administrators only by default. Roles without permission 
lose every surface at once and their data requests are rejected server-side; administrators
can never be locked out, and Settings and Diagnostics always stay administrator-
only.

### What do the admin bar icons show?

On every admin screen — and on the site’s own pages while you are logged in — the
WordPress admin bar carries two live indicators: the current online-visitor count
and an insights bell that opens the same smart-notes panel as the console. Wording
follows your profile language, both refresh at exactly the Dashboard Refresh interval
from Settings, polling pauses in hidden tabs, and both stay hidden on mobile where
the admin bar has no room.

### Can I change how often the numbers refresh?

Yes. Settings  Dashboard Refresh (10–60 seconds) is the single source of truth: 
the realtime console, the admin-bar counter and the dashboard widget all follow 
it. High-traffic sites should pick a higher value — counting accuracy never depends
on it, only how fresh the numbers feel.

### Is the public tracking endpoint safe?

Yes. It accepts only same-origin requests (Origin/Referer must match your site),
applies per-IP rate limits, and never embeds an expiring token in page HTML — which
is exactly what keeps counting working behind page cache. An optional hourly HMAC
token adds a bonus trust signal when present. Internally: prepared SQL everywhere,
escaped output, and nonce + capability checks on every admin action.

### Are bots counted when full-page caching is active?

Weblix registers crawler UA bypass rules with WP Rocket and LiteSpeed automatically,
and marks bot renders as non-cacheable, letting crawlers reach PHP where they are
tracked server-side. If a CDN serves HTML entirely from the edge (e.g. Cloudflare“
Cache Everything”), PHP cannot run from inside WordPress — add an edge rule for 
known crawler user-agents. The Diagnostics page detects these situations and tells
you plainly, and the Tracking Self-Test verifies your setup end-to-end.

### What does the hourly table store?

Only numbers: visitors, views, bots, device totals and source totals per hour — 
roughly 50 bytes per row, ~1 KB per day, ~30 KB per month at the default 30-day 
retention. No IPs, no URLs, no titles, ever. Retention (7–90 days) is configurable
under Settings, older rows delete themselves automatically.

### Why can’t I compare detailed referrers for “same period last week”?

Referrer names are stored only inside the 72-hour raw window by design (tiny database).
For older comparisons you still get exact visitor/view/source-type numbers from 
the hourly archive — only name-level referrer detail is limited to the last three
days, and the UI says so explicitly.

### Does Weblix use cookies?

No. Weblix does not use tracking cookies.

### Does it respect user privacy?

Yes. IP hashing is available, the hourly archive stores numbers only, and nothing
leaves your server.

### How long is data kept?

Live visit rows: 72 hours (a hard-bounded rolling window). Hourly numbers: 30 days
by default (configurable 7–90). Daily summaries: forever, or up to 10 years depending
on your retention setting.

### Will updating or deleting the plugin erase my statistics?

No. Updating, deactivating or upgrading Weblix never touches stored data — schema
changes are additive and every existing row is preserved. After an update the bell
icon in the dashboard topbar shows a one-time confirmation note, and the Diagnostics
page includes a “Data Safety & Storage” card listing each table with its row count,
oldest record and exact deletion policy. Tables are only dropped when you explicitly
enable “Delete all data on plugin deletion” in Settings AND then delete the plugin—
that switch is off by default.

### Can I export my data?

Yes. CSV export is available in the Settings page.

### What is “Views / Visitor”?

Page views divided by visitors — the classic GA engagement benchmark (pages per 
session). Weblix shows it as a Today KPI, and the Compare tab can chart it hour 
by hour for both windows so you can see whether content depth improved, not just
raw traffic.

### How do New vs Returning visitors work?

Weblix hashes visitor identity, so history detection works inside the rolling raw
window (72 hours stored; the returning check looks back ~46 hours). Visitors already
seen in that window count as returning; the panel says so honestly instead of pretending
to know years of history.

### When does the nightly archive run?

The finished day is folded into the permanent archive at a configurable time on 
the GMT clock — default 00:00 GMT; pick whatever slot falls inside your site’s quietest
traffic hours. The scheduler re-anchors itself daily, so even a missed cron night
cannot drift the run time, and if a fold ever fails to fire the day is folded automatically
from the still-live raw window (or the moment you open that day in the analytics
page).

### Where does the UTM campaign report come from?

The tracker has always stored utm_source / utm_medium / utm_campaign with each hit—
the dashboard just reports them. Today’s campaigns are live; each night’s top combos
are archived in the daily table so campaign history accumulates forever like your
other daily stats (starting from your 3.0 activation).

### What does the Publishing Clock tell me?

It folds 30 days of the hourly archive into a weekday × hour heatmap of views. Bright
cells show when real visitors actually read your site — useful for scheduling posts,
newsletters and social pushes.

### Where did the Today tab go?

It grew into the Analytics page. The side-rail tab is now called Analytics and carries
a view selector: Today (live, exactly as before), Yesterday, any of the last 30 
days, and rolling 7/30/90/180/365-day reviews with totals, daily averages, best 
day and previous-period deltas. The long windows read the same permanent daily archive—
one small row per day — so reaching back a year adds no database weight. Click a
bar in the period chart to open that day, step through days with the arrows, or 
share the view — every selection has a bookmarkable link.

### Where did the insight banners go?

They moved into the bell icon next to the live online counter. The bell shows a 
red blinking badge whenever fresh notes are waiting; open it on any tab to read 
them. No insight banner is rendered inside the analytics pages, so your charts always
stay at the top.

### Weblix shows English even though a Persian translation exists — what is wrong?

WordPress normally prefers `wp-content/languages/plugins/weblix-fa_IR.mo` — a language
pack that is downloaded automatically only for plugins HOSTED on WP.org — over the`
languages/` folder bundled with the plugin. Since 3.0 the order is deliberately 
reversed: the file bundled with the plugin loads FIRST, so installing or updating
Weblix always brings its freshest translation to every user, and any old language
pack left on the server becomes a harmless fallback (nothing to delete). If strings
still look English, open Diagnostics — the “Translation” row shows which file is
active and whether a file for your locale exists at all. Once Weblix is hosted on
WP.org, keep translate.wordpress.org in sync as well; a plugin update still ships
the newest strings instantly under this order.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Weblix Analytics – Real-Time Stats & Visitor Counter” is open source software. 
The following people have contributed to this plugin.

Contributors

 *   [ Vahid Behnam ](https://profiles.wordpress.org/vahidbehnam/)

“Weblix Analytics – Real-Time Stats & Visitor Counter” has been translated into 
1 locale. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/weblix/contributors)
for their contributions.

[Translate “Weblix Analytics – Real-Time Stats & Visitor Counter” into your language.](https://translate.wordpress.org/projects/wp-plugins/weblix)

### Interested in development?

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

## Changelog

#### 3.2.2

 * Fixed: the Realtime page counters no longer look frozen after you switch browser
   tabs — the console now catches up the moment you return instead of waiting for
   the next scheduled tick
 * New: Always online mode — a new Background tab updates setting in Settings  General
   keeps the live counters refreshing even while their tab is hidden, for consoles
   that stay open on a second screen

#### 3.2.1

 * New: the nightly archive run time is now a setting on the GMT clock (Settings
   General, default 00:00 GMT) — a self-re-anchoring scheduler keeps the slot even
   after missed cron nights, and changing it never moves a visit into the wrong 
   day
 * New: honest page views — a fixed 90-second gate replaces the 30-minute duplicate
   window, and the duplicate identity now includes the browser, so different people
   behind one shared carrier-grade NAT IP each count (much closer to GA’s pageviews
   on mobile-heavy audiences)
 * Fixed: no more phantom pageviews from hover-prerendered pages (WordPress 6.8+
   Speculative Loading) — the tracking timer starts only when the page is actually
   opened; back/forward cache restores now count as the real views they are
 * Fixed: referrer classification by exact host — wix.com and netflix.com no longer
   count as Twitter/X, Google Docs/Sites properties no longer count as Google Search,
   regional Google domains (google.co.uk …) do, and self-links through www. are 
   Internal instead of fake referrals
 * Fixed: rate limits are split per request kind — outbound click beacons and the
   Diagnostics self-test no longer share (and lose) the pageview quota on busy sites
 * Fixed: a URL’s #fragment no longer splits one page in two — /#anchor and / are
   counted as one page with one view, the way every analytics tool treats anchors
 * Fixed: every Analytics tab keeps its own shareable link (Today, Yesterday, 7/
   30/90/180/365, picked days) and returning to Today repaints instantly instead
   of waiting on the network; view headings can no longer keep the previous view’s
   label
 * New: every console tab owns a shareable link too — the address bar follows the
   panel you are on (Realtime, Compare, Pages, Sources, Devices, Bots) instead of
   keeping the last Analytics link, so a reload or a pasted URL opens exactly that
   panel
 * Fixed: the Next arrow no longer appears on the Today view’s first paint — its
   visibility now travels with every path into Today, not only with later view switches
 * Fixed: the Realtime minute chart no longer empties on hosts where MySQL runs 
   UTC (timezone-safe minute buckets)
 * Fixed: a missed cron night can never leave a permanent hole in the archive — 
   missing days fold automatically from the still-live raw window (widened 48  72
   hours), and opening a day in the analytics page folds it on the spot
 * Fixed: goal identities no longer shift when a middle goal slot is cleared — archived
   goal history stays bound to its slot
 * Fixed: the CSV export button now actually downloads (the form was nested inside
   the settings form), and its date defaults follow the site timezone
 * Fixed: concurrent outbound clicks can no longer lose increments, and the day’s
   click counters are only released after the archive row is verifiably written
 * Changed: the raw visit window widened 48  72 hours so the returning-visitor lookback
   stays mathematically safe with the earliest fold slots; bounded, self-cleaning,
   still tiny
 * Changed: Analytics page order — Devices now sits inside the Traffic Sources column,
   Top Bots joins the Browsers/OS band, and the Publishing Clock moved to the end
   of the page
 * Removed: the dead “Separate Bots from Visitors” switch — bots were always tracked
   separately, so the checkbox did nothing (zero behavior change, one checkbox fewer)

#### 3.2.0

 * New: engagement rate — the modern replacement for bounce rate, in the audience
   strip for every view, derived from data the archive already stores (zero database
   cost)
 * New: site search — the top terms visitors typed into WordPress search, archived
   per day and merged across periods
 * New: referrer domains — top referring domains are archived per day, so the sources
   report now works for any window
 * New: outbound link tracking — clicks leaving your site (download subdomains, 
   payment gateways) counted via one tiny per-day counter folded into the nightly
   archive; no per-click rows, no new tables
 * New: simple goals — up to five conversions defined in Settings (name + URL fragment);
   page goals count unique visitors, click goals count outbound clicks; an empty
   state links straight to the settings
 * New: weekly email report — sent 08:00 (site timezone) on the WordPress “Week 
   Starts On” day with totals vs the previous week, engagement rate, best day, busiest
   hour and the top lists; Persian sites receive Persian, every other language English;
   composed from the daily archive, nothing stored

#### 3.1.0

 * New: the Today tab is now the Analytics page — Today, Yesterday, any of the last
   30 days and rolling 7/30/90/180/365-day reviews, all with the same KPI cards,
   charts and top lists
 * New: pick any day (date picker, labeled prev/next stepper) and see its full hourly
   chart, top pages, sources, devices, browsers, OS and bots from the archives
 * New: 7/30-day totals with daily-average and best-day cards, previous-period deltas
   and a mixed trend chart — views as columns, visitors as a line, best/worst day
   marked, clicking a point opens that day
 * New: the nightly archive stores new vs returning, single-page visits, average
   active span, peak hour and landing/exit pages per day
 * New: 90/180/365-day windows read the same permanent daily archive — no tables,
   no jobs, no database weight
 * New: the busiest hour counts unique visitors, not page views
 * Fixed: empty Top pages/bots on period views; date ranges in right-to-left interfaces;
   the busiest-hour footnote’s Persian plural; the running day can be a window’s
   best but never its worst
 * Changed: honest delta notes (previous period / previous day / “up to this moment”
   on Today); labeled accent day stepper; compact one-row view selector; auto-refresh
   pauses on historical views

#### 3.0.1

 * Fixed: crawlers whose user agent lacks the literal “Googlebot” token were counted
   as online humans — Google Search Console’s live URL test (Google-InspectionTool),
   other Google tool crawlers and common automation toolkits are now recognized 
   as bots
 * Requests with an empty User-Agent also count as bots
 * First WordPress.org release; no schema or data changes — statistics preserved

#### 3.0

Complete rebuild in one release: the Pulse realtime console (minute chart, Trending
Now, recent-visitors feed), Search-Console-style rolling and multi-day comparisons
with the Views-per-Visitor metric, GA-inspired audience insights (new vs returning,
landing/exit pages, UTM campaigns, Publishing Clock), the tiny numbers-only hourly
engine, live admin-bar status, Statistics Visibility and cache-proof POST tracking
with self-healing snapshots. Widget page titles are hyperlinks on the Dashboard 
Refresh cadence. Complete Persian translation bundled; Plugin Check clean; statistics
preserved.

#### 2.0.1

 * Improved bot detection logic
 * Fixed duplicate check for bots (better counting)
 * Updated Chart.js handling for better compatibility
 * Minor UI and performance improvements

#### 2.0

**Major rewrite.** Separate daily-archive table (48-hour rolling live table, nightly
00:05 aggregation, batch DELETE with LIMIT), a full analytics dashboard with hourly
charts and period comparisons, server-side bot tracking with bot names, the smart
insights bar, a cache-compatible tracker, Diagnostics page and CSV export.

#### 1.4.1

 * Fix: Resolved nonce validation conflicts for logged-in users
 * Optimization: Improved REST API request handling for smoother tracking

#### 1.4

 * Improved user identification method for more accurate online user tracking
 * Enhanced cron job scheduling for better performance and efficiency

#### 1.3

 * Improved resource usage efficiency
 * Added compatibility with caching plugins
 * Enhanced online user tracking accuracy

#### 1.2

 * Optimized and improved the retrieval of page titles
 * Enhanced resource usage efficiency
 * Improved bot detection
 * Fixed minor bugs related to cron scheduling

#### 1.1

 * Added weekly cleanup schedule for old records
 * Improved database query performance

#### 1.0

 * Initial release

## Meta

 *  Version **3.2.2**
 *  Last updated **6 ورځې ago**
 *  Active installations **70+**
 *  WordPress version ** 5.3 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/weblix/) and [Persian](https://fa.wordpress.org/plugins/weblix/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/weblix)
 * Tags
 * [analytics](https://ps.wordpress.org/plugins/tags/analytics/)[real-time](https://ps.wordpress.org/plugins/tags/real-time/)
   [statistics](https://ps.wordpress.org/plugins/tags/statistics/)[tracking](https://ps.wordpress.org/plugins/tags/tracking/)
   [visitor counter](https://ps.wordpress.org/plugins/tags/visitor-counter/)
 *  [Advanced View](https://ps.wordpress.org/plugins/weblix/advanced/)

## Ratings

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/weblix/reviews/)

## Contributors

 *   [ Vahid Behnam ](https://profiles.wordpress.org/vahidbehnam/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/weblix/)