Лічильник для статичних сайтів
Статичний хостинг непомітно став розумним способом розмістити невеликий сайт в інтернеті. GitHub Pages, Codeberg Pages, Neocities або просто папка файлів на будь-якому дешевому хостингу: немає бази даних, немає серверної мови, нема чого оновлювати, нема що зламати.
У нього є рівно одна прогалина. Немає серверного журналу, який можна прочитати, і немає способу запустити щось, що вело б підрахунок. Сайт опубліковано — і жодного уявлення, чи хтось на нього заходив.
Саме для такої ситуації й придумали лічильник відвідувань, і саме тому вони й досі не застаріли.
Що потрібно зробити
Фрагмент коду зі сторінки статистики вставляється в HTML, у те місце, де має з'явитися лічильник. Це вся процедура. Вона працює, бо лічильник — це зображення й невеликий скрипт: дві речі, які будь-який статичний хостинг віддає, не знаючи й не переймаючись тим, що це таке.
Підрахунок відбувається на нашому сервері. Хостинг так і залишається папкою файлів.
Скрипт не копіюють у репозиторій
Це та одна порада, заради якої варто прочитати весь цей допис, бо звички роботи зі статичними сайтами сильно тягнуть в інший бік. Вендоринг залежностей у репозиторій зазвичай є хорошою практикою — це відтворювано, це переживає зникнення джерела, і це економить один запит.
Тут так робити не варто.
Скопійований скрипт застигає в тому стані, в якому його скопіювали. Він назавжди продовжує робити те саме, що робив того дня, за кожного відвідування, і ніщо з того, що змінюється у джерела, до нього вже не дістанеться. Це не гіпотетична ситуація: коли цього року з лічильника прибрали роздільну здатність екрана, копії старого скрипта продовжували її надсилати, і єдиним способом припинити цей збір даних було змусити сервер відмовлятися приймати це значення взагалі від будь-кого.
Те саме стосується виправлень безпеки, змін у тому, що надсилається, і всього іншого, що має доходити до відвідувачів. Скрипт підключається посиланням. Це один запит, він кешується, і він завжди актуальний.
Що доступно, а що ні
Доступні кількість відвідувачів, дні, країни, браузери, домени, з яких переходять, найвідвідуваніші сторінки та перегляд у реальному часі, хто зараз на сайті. Для особистого сайту, сторінки проєкту чи невеликої вітрини магазину це зазвичай і є весь перелік питань, що цікавлять.
Аналізу журналів немає, бо немає й журналу. Немає нічого про запити, що завершилися помилкою, файли з кодом 404 чи обсяг трафіку. Якщо це важливо, статичний хостинг вже не пасував до цього завдання.
Ще одна річ, яка пасує статичним сайтам
Тут ніщо не потребує облікового запису. Немає реєстрації, немає пароля, який довелося б зберігати в репозиторії, і немає ключа, який міг би просочитися у публічний коміт — а це саме та категорія випадковостей, до якої проєкти статичних сайтів на диво схильні.