Un contatore per i siti statici
L'hosting statico è diventato, silenziosamente, il modo più sensato per mettere online un piccolo sito. GitHub Pages, Codeberg Pages, Neocities, oppure una cartella di file su un qualsiasi host economico: nessun database, nessun linguaggio lato server, niente da aggiornare, niente che possa essere compromesso.
Ha esattamente una lacuna. Non c'è alcun log del server da leggere, e nessun modo di eseguire qualcosa che conti le visite. Si pubblica, e poi non si sa se sia arrivato qualcuno.
È la situazione per cui è stato inventato un contatore di visite, ed è per questo che non sono affatto superati.
Cosa serve fare
Lo snippet preso dalla pagina delle statistiche va incollato nell'HTML del sito, nel punto in cui deve comparire il contatore. Questa è l'intera procedura. Funziona perché il contatore è un'immagine e un piccolo script — due cose che qualsiasi host statico serve senza sapere né preoccuparsi di cosa siano.
Il conteggio avviene sul nostro server. L'host resta una cartella di file.
Lo script non va copiato nel repository
Questo è l'unico consiglio che da solo vale l'intero articolo, perché le abitudini tipiche dei siti statici spingono con forza nella direzione opposta. Il vendoring delle dipendenze nel repository è normalmente buona pratica — è riproducibile, sopravvive alla scomparsa di un progetto a monte, e risparmia una richiesta.
In questo caso però no.
Uno script copiato resta congelato al momento della copia. Continua a fare per sempre quello che faceva quel giorno, a ogni visita, e nulla di ciò che viene fatto a monte può raggiungerlo. Non è un'ipotesi: quando quest'anno la risoluzione dello schermo è stata rimossa dal contatore, le copie del vecchio script hanno continuato a inviarla, e l'unico modo per porre fine alla raccolta è stato far sì che il server rifiutasse il valore da chiunque, senza eccezioni.
Lo stesso vale per le correzioni di sicurezza, per i cambiamenti in ciò che viene inviato, e per qualsiasi altra cosa che dovrebbe raggiungere i visitatori di un sito. Lo script va collegato tramite link. È una sola richiesta, viene messo in cache, e resta sempre aggiornato.
Cosa si ottiene, e cosa no
Si ottengono il numero di visitatori, i giorni, i paesi, i browser, i domini di provenienza, le pagine più visitate, e una vista in tempo reale di chi si trova sul sito in questo momento. Per un sito personale, la pagina di un progetto, o una piccola vetrina, questo di solito è l'intero insieme di domande a cui serve rispondere.
Non si ottiene l'analisi dei log, perché non c'è alcun log. Non si ottiene nulla riguardo alle richieste fallite, ai file che restituiscono un 404, o alla banda utilizzata. Se queste cose contano, l'hosting statico era già la scelta sbagliata per il problema.
Un'altra cosa che si adatta bene ai siti statici
Niente di tutto questo richiede un account. Non c'è alcuna registrazione, nessuna password da conservare in un repository, e nessuna chiave che possa finire per errore in un commit pubblico — una categoria di incidenti in cui i progetti di siti statici sono insolitamente bravi a incorrere.