Discover, trust, install: FAIR 1.0 is here
Website Analytics by YEB
Version: 1.0.0
Description
Google Analytics alternative for WordPress: clean stats, interactions, verified bots, UTM, GeoIP, CSV export. Privacy-first.
What you get
- At-a-glance KPIs: pageviews, sessions, unique visitors, pages per session.
- Interactions (sessions): session explorer with landing, referrer, per-session timeline (page history), avg. load, distinct pages, pageviews, expand/collapse.
- Content insights: top URLs, titles, post IDs.
- Acquisition: referrers (root domains) and UTM (source/medium/campaign).
- Audience: countries, regions, cities, languages, common screen sizes.
- Tech: device type, OS, browser.
- Bots (with verification): separate verified search engine hits (Google, Bing, etc.).
- Networks: major networks/ISPs and their CIDR ranges.
- CSV export: exports exactly what your current filters show.
- SPA-friendly & IPv6-ready.
Why people choose it
- Clear and calm: focused reports, no maze of menus.
- Actionable filters: time window, path, title, country/city, referrer, device, OS, browser, language, UTM, bot type.
- You stay in control: richer info (city, device brand/model, verified bot checks) is optional — enable only what you want.
Setup (optional extras)
Want richer details like city/region, device brand/model, or verified bot checks?
- Sign in at https://yeb.to and create an API key (free test credits).
- In WordPress, open Analytics (YEB) Settings, paste your key.
- Toggle the extras you want (Geo, Network/ASN, Device details, Bot verification).
Nothing is sent to YEB until you add a key and turn on a feature — you choose.
Usage
- Go to Analytics (YEB) Dashboard for your reports.
- Use the tabs to dive into Overview, Interactions, Content, Acquisition, Audience, Tech, Bots, Networks.
- Click Export CSV to download exactly what you’re viewing.
Shortcode (public mini-stats)
Show small, public counters anywhere (pages, posts, widgets, site editor).
Basic:
`
[waby_visits_stats] ; whole site, last 7 days
[waby_visits_stats period=”30d”] ; whole site, last 30 days
[waby_visits_stats period=”1d” bots=”only”] ; bots only, yesterday
[waby_visits_stats page=”/pricing”] ; just /pricing page, last 7 days
`
Auto-detect current page:
`
[waby_visits_stats current_page]
`
If page=""
isn’t provided, current_page
uses the current request path.
Show exactly what you want:
`
[waby_visits_stats show=”visits”] ; only total visits (pageviews)
[waby_visits_stats show=”uniques”] ; only unique visitors
[waby_visits_stats show=”both”] ; both (default)
`
Bot filter:
– bots="exclude"
(default) — show human traffic and unverified bot-like traffic treated as human
– bots="only"
— bot traffic only
– bots="include"
— include everything
Labels, layout & CSS hooks (for custom styling):
`
[waby_visits_stats
current_page
show=”both”
label_visits=”Views”
label_uniques=”Visitors”
layout=”inline” ; inline | stack
sep=” • ”
wrap_tag=”div” ; div | span | p
item_tag=”span” ; span | div
wrapper_class=”stats stats–mini”
item_class=”stats__item”
label_class=”stats__label”
value_class=”stats__value”
]
``
All attributes:
– period
: 1d
, 7d
(default), 30d
– page
: limit to a path (e.g. /pricing
)
– current_page
: presence-only flag to use the current URL path
– bots
: exclude
(default), only
, include
– show
: visits
, uniques
, both
(default)
– label_visits
(default Visits
), label_uniques
(default Unique
)
– layout
: inline
(default) or stack
– sep
: separator when layout="inline"
(default |
)
– wrap_tag
: div
(default), span
, p
– item_tag
: span
(default), div
– wrapper_class
, item_class
, label_class
, value_class
: extra CSS classes
Styling the shortcode
Paste this CSS into Appearance
`css
/* YEB Visits – public stats */
.yeb-visits-stats {
display: inline-flex;
gap: .75rem;
align-items: baseline;
font: 500 14px/1.3 system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}
.yeb-visits-stats.yeb–layout-stack {
display: inline-grid;
gap: .35rem;
}
.yeb-visits-stats .yeb-metric {
display: inline-flex;
gap: .35rem;
align-items: baseline;
white-space: nowrap;
}
.yeb-visits-stats .yeb-metric__label { opacity: .7; }
.yeb-visits-stats .yeb-metric__value { font-weight: 700; }
.yeb-visits-stats .yeb-sep { opacity: .35; }
“
Privacy, Cookies & Data Flow
You choose which extras to enable (location, device details, bot verification). IPs are stored in a way that groups them by network (not exact address). You can limit how often extras are called and how much data is kept.
External Service & Data Flow (Guideline 6)
This plugin can optionally call the YEB API to enrich your local analytics. Nothing is sent to YEB until you add an API key in Analytics (YEB)
Settings and enable the related toggle.Endpoints (HTTPS):
- GeoIP:
{base}/country
,{base}/city
,{base}/asn
(default base:https://api.yeb.to/v1/geoip
) - Device analyze:
{endpoint}
(default:https://api.yeb.to/v1/device-analyze
) - Bot verification:
{base}
or{base}/{vendor}
(default base:https://api.yeb.to/v1/bot/detect/detect
)
What is sent and when:
- GeoIP Country — IP address; only if API key set and “Country” enabled (purpose: country lookup)
- GeoIP City/Region — IP address; only if API key set and “Region & City” enabled (purpose: city/region)
- ASN/Network — IP address; only if API key set and “ASN & Network” enabled (purpose: ASN/CIDR)
- Device analyze — User-Agent; only if API key set and “Parse user-agent strings” enabled (purpose: browser/OS/device parsing, bot type)
- Bot verification — IP + User-Agent; only if API key set and “Bot-Detect” enabled and UA looks like a bot (purpose: verify known crawlers)
All requests use HTTPS. The plugin stores analytics locally; enrichment results are cached locally.
YEB policies:
- Privacy Policy: https://yeb.to/privacy
- Terms of Service: https://yeb.to/terms
Cookies
Two first-party cookies (pseudonymous GUIDs):
yeb_sid
— session id, 30 minutes; groups pageviews into sessions.yeb_vid
— visitor id, 1 year; counts returning unique visitors.
Consent & Opt-Out (Guidelines 7 & 9)
By default, the beacon loads for visitors (logged-in admins excluded unless you enable Track logged-in admins). If your jurisdiction or policy requires consent before placing analytics cookies, gate the beacon with your consent tool.
Example (dequeue until consent):
`php
/**
* Stop the YEB beacon until a custom consent flag is set.
* Replace the condition with your CMP’s check.
*/
add_action(‘wp_enqueue_scripts’, function () {
$consent_given = isset($_COOKIE[‘my_consent_flag’]) && $_COOKIE[‘my_consent_flag’] === ‘yes’;
if ( ! $consent_given ) {
wp_dequeue_script(‘waby-visits-beacon’);
wp_deregister_script(‘waby-visits-beacon’);
}
}, 100);
`
Public REST Endpoint
The plugin exposes an intentionally public ingest endpoint used by the front-end beacon:
`
POST /wp-json/waby/v1/visit
Alias: POST /wp-json/yeb/v1/visit
`
It accepts sanitized visit metadata (URL, path, referrer, UTM, screen, language, etc.) and stores it in your site’s database. It does not expose private data or modify content.
Data Retention & IP Handling
- A salted hash of the visitor IP is stored to group traffic by network.
- The raw IP is not stored by default. If you enable Store raw IP (packed), it is retained only for the number of days you set (default 7 days) and is visible to admins only.
- During enrichment, the raw IP may be encrypted temporarily and then cleared automatically once enrichment is done or after a short fallback window.
- You can limit daily external calls and sampling in Analytics (YEB) Settings.
Uninstall
- If you enable Delete all data on uninstall in settings, uninstalling the plugin will remove its custom tables and options.
- Leave it off if you want to keep your analytics data.
Filters & Extensibility
waby_visits_stats_output
— filter the final HTML of the public stats shortcode.waby_visits_cache_ttl
— filter select-query cache TTL (seconds) used by the dashboard and shortcode.
Installation
- Upload the
website-analytics-by-yeb
folder to/wp-content/plugins/
, or install it via Plugins Add New. - Activate Website Analytics by YEB.
Faq
Not unless you turn it on in settings.
Yes. Many sites keep GA for marketing funnels and use YEB for a clean on-site dashboard, verified bot accounting, and exports.
Yes — the Bots tab separates verified search engine hits (e.g., Googlebot) from everything else, so you can quickly see what’s real.
Yes, end-to-end.
Yes. Export CSV downloads exactly what your current filters show.
Reviews
Changelog
1.0.0
Initial release.