Lean Bunker Stat – WordPress Plugin
Lean Bunker Stat è un plugin di analisi minimalista, scritto in poco più di 500 righe di codice PHP, contenute in un unico file.
Non usa librerie esterne, non carica script aggiuntivi, non invia dati a terzi e non richiede configurazioni complesse.
Tutto ciò che fa è tracciare visite umane reali su post pubblici, memorizzando i dati in una sola tabella (wp_bunker_stat_views) con tre campi essenziali: post_id, ip_hash (hashato con AUTH_SALT per privacy) e timestamp della visita.
Nessun grafico ridondante, nessun tracking in tempo reale, nessun sovraccarico. Solo VT (Visite Totali) e VU (Visitatori Unici), visibili direttamente nell’elenco admin di WordPress, con filtro avanzato per data e ordinamento nativo.
Perché quando si tratta di misurare l’impatto dei tuoi contenuti, meno è davvero più.
Lean Bunker Stat: Statistiche Umane, Granulari e Senza Compromessi
Lean Bunker Stat non è un altro plugin di analytics.
È uno strumento minimalista, performante e focalizzato esclusivamente sulle visite umane reali, progettato per chi vuole dati affidabili senza tracciamento invasivo, script esterni o dipendenze superflue.
Tutto il codice risiede in un unico file PHP, compatibile con WordPress 5.6+, e funziona perfettamente in ambienti multisito, con o senza Redis, e anche su hosting limitati.
🔍 Cosa traccia (e cosa NO)
- ✅ Solo visite da utenti umani: ogni richiesta con User-Agent riconducibile a bot (Googlebot, Bingbot, Yandex, crawler, spider, ecc.) viene ignorata silenziosamente.
- ✅ Visitatori unici per IP: l’indirizzo IP viene hashato con HMAC-SHA256 usando
AUTH_SALT, garantendo privacy e impossibilità di reverse-engineering. - ✅ Solo contenuti pubblici: vengono tracciate solo le pagine/post con stato
publish. - ❌ Niente tracciamento in tempo reale, niente heatmap, niente sessioni — solo ciò che serve per misurare l’impatto reale dei tuoi contenuti.
- ❌ Nessun cookie, nessun JS esterno, nessuna chiamata a servizi terzi.
Il ping avviene tramite una chiamata AJAX leggerissima (admin-ajax.php) iniettata in fondo alla pagina, attivata solo dopo il caricamento completo del DOM, con un ritardo di 2 secondi per evitare interferenze con la UX.
📊 Visualizzazione delle statistiche in bacheca
Una volta attivato, il plugin aggiunge due colonne opzionali a tutti i tipi di post pubblici nell’elenco admin (wp-admin/edit.php):
- VT (Visite Totali): numero totale di accessi umani al singolo post.
- VU (Visitatori Unici): numero di IP hash unici che hanno visitato il post.
Entrambe le colonne sono:
- Ordinabili (clicca sull’intestazione per ordinare per VT o VU decrescente).
- Aggiornate in tempo reale (nessuna cache, nessun refresh manuale necessario).
- Visibili solo se il post è pubblico.
🗓️ Filtro avanzato per data (con supporto contestuale)
Sopra l’elenco dei post, appare un pannello di filtro personalizzato:
- Due campi
dateHTML5 (lbs_startelbs_end) per selezionare un intervallo di date di pubblicazione del post (non della visita!). - Checkbox “Visite”: quando attivato, cambia il comportamento del filtro:
- Senza spunta: il filtro agisce solo sulla data di pubblicazione (comportamento standard di WordPress).
- Con spunta: il filtro agisce sulla data della visita (campo
visited_atnella tabellawp_bunker_stat_views).
⚠️ Attenzione: il filtro “Visite” modifica anche i totali globali mostrati in alto (vedi sotto) e influenza l’ordinamento delle colonne VT/VU.
Questo permette scenari avanzati come:
- “Mostrami tutti i post pubblicati a gennaio 2025, ma ordina per quelli con più visite tra il 1° e il 15 febbraio”.
- “Quanti visitatori unici ha avuto il mio blog nell’ultima settimana, indipendentemente da quando sono stati pubblicati i post?”
📈 Totali globali contestuali
Nella barra di paginazione dell’elenco post, viene iniettato un riepilogo in tempo reale.
Questi numeri non sono fissi: riflettono esattamente:
- Il set di post attualmente filtrato (per tipo, categoria, parola chiave, data di pubblicazione…).
- Se attivo, anche il filtro “Visite” per intervallo di date delle visite.
In altre parole:
I totali mostrano solo le visite relative ai post visibili in quel momento nell’elenco, con la logica di filtro applicata.
🧠 Architettura tecnica (per sviluppatori)
- Tabella dedicata:
wp_bunker_stat_viewscon indici ottimizzati supost_id,visited_ate(post_id, visited_at). - Anti-spam: transient-based per evitare ping multipli dallo stesso IP sullo stesso post entro 10 minuti.
- Compatibilità multisito: la tabella viene creata automaticamente per ogni nuovo sito della rete.
- Zero overhead in frontend: lo script di ping pesa meno di 300 byte, non blocca il rendering, e fallisce in silenzio se qualcosa va storto.
- Privacy by design: nessun dato personale memorizzato; l’IP è irrecuperabile grazie all’hash HMAC con secret salt.
🛠️ Perché sceglierlo?
- Se usi Redis, OPcache o caching avanzato, non devi disabilitare nulla: il ping è asincrono e non interferisce.
- Se gestisci centinaia di migliaia di post, le query sono ottimizzate per scalare.
- Se sei ossessionato dalla sicurezza (come noi), apprezzerai l’assenza di endpoint REST esposti, l’uso di
admin-ajax.phpcon nonce implicito, e la sanificazione rigorosa. - Se ami il codice pulito, troverai zero librerie esterne, zero jQuery, zero bloat.
📦 Disponibile subito
Lean Bunker Stat è incluso in Lean Bunker Security oppure disponibile come plugin autonomo.
Richiede solo WordPress 5.6+ e PHP 5.6+.
Perché complicare ciò che può essere semplice?
Le vere statistiche non hanno bisogno di grafici colorati — hanno bisogno di precisione, privacy e rispetto per le risorse del server.
❓ FAQ – Lean Bunker Stat
🔹 PRIMA DELL’INSTALLAZIONE
Q: A cosa serve questo plugin?
R: Traccia solo le visite umane reali sui tuoi post pubblici e le mostra direttamente nell’elenco admin di WordPress, con due colonne: VT (Visite Totali) e VU (Visitatori Unici). Niente bot, niente dati superflui.
Q: È un sostituto di Google Analytics o Matomo?
R: No. Non vuole esserlo. Questo plugin non traccia comportamenti, sessioni, geolocalizzazione o conversioni. Ti dice solo: “Quante persone vere hanno letto questo articolo?” — nient’altro.
Q: Quanto pesa?
R: Meno di 550 righe di codice PHP, in un unico file. Zero dipendenze, zero librerie esterne, zero JavaScript aggiuntivo (usa solo XMLHttpRequest nativo). La tabella del database contiene solo tre campi essenziali.
Q: Cosa memorizza nel database?
R: Una sola tabella: wp_bunker_stat_views, con:
post_id(ID del post visitato)ip_hash(hash HMAC-SHA256 dell’IP, irrecuperabile grazie aAUTH_SALT)visited_at(timestamp della visita)
Nessun nome, email, cookie, User-Agent o metadato personale.
Q: Funziona con caching (Redis, OPcache, plugin cache)?
R: Sì. Il ping avviene via AJAX dopo il caricamento della pagina, quindi non è influenzato dalla cache HTML. Anche se la pagina è servita staticamente, lo script di ping viene eseguito dal browser.
Q: Richiede configurazioni?
R: No. Attivalo e basta. Non ci sono impostazioni da regolare, API da collegare o account da creare.
🔹 DOPO L’INSTALLAZIONE
Q: Dove vedo le statistiche?
R: Nell’elenco dei post (wp-admin/edit.php), compaiono due nuove colonne: VT e VU. Funzionano per tutti i tipi di post pubblici (post, pagine, custom post type).
Q: Perché alcuni post mostrano 0 visite?
R: Potrebbe essere perché:
- Il post non è stato ancora visitato da un utente umano (non bot).
- Il visitatore ha
Do Not Trackattivo (lo script rispetta questa preferenza). - Il post non è in stato
publish. - Il browser ha bloccato la richiesta AJAX (raro, ma possibile).
Q: Come filtro i post per numero di visite?
R: Clicca sull’intestazione VT o VU per ordinare in ordine decrescente. Non c’è un filtro “per numero”, ma l’ordinamento ti permette di identificare subito i contenuti più letti.
Q: Cosa fa il checkbox “Visite” nel filtro in alto?
R: Cambia il significato del filtro per date:
- Senza spunta: filtri per data di pubblicazione del post (comportamento standard di WordPress).
- Con spunta: filtri per data della visita (es. “mostrami tutti i post visitati tra il 1° e il 10 marzo”).
Inoltre, quando è attivo, i totali globali (VT/VU nella paginazione) si riferiscono solo alle visite nell’intervallo selezionato.
Q: I totali globali (VT/VU) cambiano in base ai filtri?
R: Sì. Mostrano sempre il totale relativo ai post attualmente visibili nell’elenco, con tutti i filtri applicati (categoria, parola chiave, data, ecc.).
Q: Funziona in Multisite?
R: Sì. Ogni sito della rete ha la sua tabella wp_#_bunker_stat_views. Se attivi il plugin a livello di rete, viene installato automaticamente su ogni nuovo sito.
🔹 DOMANDE TECNICHE AVANZATE
Q: Come evita di contare i bot?
R: Controlla il User-Agent della richiesta. Se contiene stringhe come bot, crawl, spider, googlebot, bingbot, ecc., la visita viene ignorata. Il controllo è case-insensitive e copre i principali crawler noti.
Q: Come protegge la privacy degli utenti?
R: L’IP non viene mai memorizzato in chiaro. Viene calcolato un hash HMAC-SHA256 usando la costante AUTH_SALT del tuo wp-config.php. Senza quel salt, il dato è irrecuperabile. Inoltre, non vengono usati cookie né identificatori persistenti.
Q: Evita i ping multipli dallo stesso utente?
R: Sì. Usa un transient (lbs_pinged_{post_id}_{ip_hash}) con durata di 10 minuti. Se lo stesso IP visita lo stesso post entro questo intervallo, il ping viene ignorato.
Q: Perché usare admin-ajax.php e non un endpoint REST?
R: Per massima compatibilità e sicurezza. admin-ajax.php funziona su qualsiasi versione di WordPress ≥ 5.6, non richiede autenticazione, e non espone endpoint aggiuntivi. Inoltre, molti hosting limitano o bloccano la REST API per motivi di sicurezza — qui non serve.
Q: Posso disattivare il plugin senza perdere i dati?
R: Sì. La disattivazione non cancella la tabella wp_bunker_stat_views. I dati restano intatti. Puoi riattivare il plugin in qualsiasi momento e riprendere da dove avevi lasciato.
Q: Posso esportare i dati?
R: Non c’è un pulsante “Esporta”, ma puoi accedere direttamente alla tabella tramite phpMyAdmin o un plugin di gestione DB. La struttura è semplice: ogni riga = una visita umana.
Q: È compatibile con GDPR/privacy law?
R: Sì. Poiché non raccoglie dati personali identificabili (l’IP è reso anonimo tramite hash irreversibile), non richiede banner cookie né consenso esplicito. Tuttavia, consulta sempre il tuo legale per conformità specifica.
✅ In sintesi
Lean Bunker Stat non cerca di fare tutto. Fa una cosa sola — e la fa bene.
Se cerchi un modo leggero, privato e affidabile per sapere quanti esseri umani leggono i tuoi contenuti, questo è il plugin giusto.