Een teller voor statische sites
Statische hosting is stilletjes de verstandige manier geworden om een kleine site op het internet te zetten. GitHub Pages, Codeberg Pages, Neocities, of een map met bestanden bij een willekeurige goedkope host: geen database, geen taal aan de serverkant, niets bij te werken, niets dat gekaapt kan worden.
Er zit precies één gat in. Er is geen serverlog om te lezen, en geen manier om iets te draaien dat het tellen zou doen. Een site gaat de lucht in, en niets zegt of er iemand geweest is.
Dit is de situatie waarvoor een bezoekersteller is uitgevonden, en daarom zijn ze eigenlijk niet achterhaald.
Wat ervoor nodig is
Het stukje code van de statistiekpagina gaat in de HTML, op de plek waar de teller hoort. Dat is de hele procedure. Het werkt omdat de teller een afbeelding en een klein script is — twee dingen die elke statische host uitlevert zonder te weten of zich erom te bekommeren wat ze zijn.
Het tellen gebeurt op onze server. De host blijft een map met bestanden.
Kopieer het script niet in de repository
Dit is het ene advies dat het hele bericht waard is, want de gewoonten rond statische sites duwen hard de andere kant op. Afhankelijkheden in de repo zetten is normaal gesproken goede praktijk — het is reproduceerbaar, het overleeft een bron die verdwijnt, en het bespaart een aanvraag.
Doe het hier niet.
Een gekopieerd script staat stil op het moment van kopiëren. Het blijft voor altijd doen wat het die dag deed, bij elk bezoek, en niets wat er aan de bron gebeurt kan het nog bereiken. Dat is niet hypothetisch: toen dit jaar de schermresolutie uit de teller werd gehaald, bleven kopieën van het oude script hem sturen, en de enige manier om de verzameling te beëindigen was de server de waarde van iedereen te laten weigeren.
Hetzelfde geldt voor beveiligingsreparaties, voor wijzigingen in wat er verstuurd wordt, en voor al het andere dat de bezoekers van een site zou moeten bereiken. Link het script. Het is één aanvraag, het wordt gecachet, en het blijft actueel.
Wat het levert, en wat niet
De teller levert bezoekersaantallen, dagen, landen, browsers, verwijzende domeinen, de meest bezochte pagina's en een live-overzicht van wie er nu op de site is. Voor een persoonlijke site, een projectpagina of een kleine winkeletalage is dat meestal de hele vragenlijst.
Wat hij niet kan leveren, is loganalyse, want er is geen log. Niets over aanvragen die mislukken, bestanden die 404 geven, of bandbreedte. Waar die ertoe doen, had statische hosting al niet de juiste vorm voor het probleem.
Nog iets dat statische sites goed past
Niets hier heeft een account nodig. Er is geen aanmelding, geen wachtwoord om in een repository te bewaren, en geen sleutel om in een openbare commit te lekken — een soort ongeluk waar projecten met statische sites ongewoon goed in zijn.