Un contador para sitios estáticos
El alojamiento estático se ha convertido silenciosamente en la forma sensata de poner un sitio pequeño en internet. GitHub Pages, Codeberg Pages, Neocities, o una carpeta de archivos en cualquier alojamiento barato: sin base de datos, sin lenguaje del lado del servidor, nada que actualizar, nada que se pueda comprometer.
Tiene exactamente una carencia. No hay ningún registro de servidor que leer, ni forma de ejecutar nada que cuente las visitas. Se publica, y luego no se sabe si ha venido alguien.
Esta es la situación para la que se inventó un contador de visitas, y por eso no están realmente obsoletos.
Qué hay que hacer
El fragmento de código de la página de estadísticas se pega en el HTML del sitio, en el lugar donde deba aparecer el contador. Ese es todo el procedimiento. Funciona porque el contador es una imagen y un pequeño script —dos cosas que cualquier alojamiento estático sirve sin saber ni importarle qué son.
El conteo ocurre en nuestro servidor. El alojamiento sigue siendo una carpeta de archivos.
El script no se copia al repositorio
Este es el único consejo que justifica toda la entrada, porque los hábitos de los sitios estáticos empujan con fuerza en la dirección contraria. Incorporar las dependencias directamente al repositorio suele ser una buena práctica —es reproducible, sobrevive a que la fuente original desaparezca, y ahorra una solicitud.
No lo hagas aquí.
Un script copiado queda congelado en el momento de la copia. Sigue haciendo lo que hacía aquel día, para siempre, en cada visita, y nada de lo que se haga en la fuente original puede alcanzarlo. Eso no es una hipótesis: cuando este año se eliminó la resolución de pantalla del contador, las copias del script antiguo siguieron enviándola, y la única forma de terminar con esa recopilación fue hacer que el servidor rechazara el valor viniera de quien viniera.
Lo mismo se aplica a las correcciones de seguridad, a los cambios en lo que se envía, y a cualquier otra cosa que deba llegar a los visitantes de un sitio. El script se enlaza. Es una sola solicitud, se almacena en caché, y se mantiene actualizado.
Qué se obtiene, y qué no
Se obtienen recuentos de visitantes, días, países, navegadores, dominios de referencia, las páginas más visitadas, y una vista en vivo de quién está en el sitio ahora mismo. Para un sitio personal, la página de un proyecto o un pequeño escaparate de tienda, eso suele ser todo el conjunto de preguntas que importan.
No hay análisis de registros, porque no hay registro. No hay nada sobre solicitudes que fallan, archivos que dan 404, o ancho de banda. Si eso importa, el alojamiento estático ya era la forma equivocada de abordar el problema.
Una cosa más que encaja con los sitios estáticos
Nada de esto necesita una cuenta. No hay registro, ninguna contraseña que guardar en un repositorio, y ninguna clave que se pueda filtrar en un commit público —una categoría de accidente en la que los proyectos de sitios estáticos son inusualmente propensos a caer.