Вопрос-ответ Интеграции и аналитика
Как сделать счетчик просмотров на сайте?
Артем, Москва 1,3 тыс. просм.
Хочу показывать под каждой статьей блога число просмотров, как на популярных площадках. Сайт на своем движке, не WordPress. Насколько это сложно технически и как вообще принято такое делать - я нашел JS-скрипты, но не уверен, что они точные?
Алексей Петров технический директор
ответил
Настоящий счетчик просмотров считает на сервере, а не в браузере посетителя: при каждом открытии страницы серверный код увеличивает число в базе данных на единицу и отдает уже посчитанное значение. Готовые JS-скрипты, которые считают прямо в браузере через localStorage, показывают только просмотры этого конкретного человека на этом конкретном устройстве - для публичного счетчика "сколько раз статью прочитали все" они не подходят в принципе, это разные задачи.
Если сайт на своем движке, а не на готовой CMS, минимальная реализация такая: в таблице статей добавляете поле views (целое число), и при каждой отдаче страницы сервер выполняет запрос вида "увеличить views на 1 для этой статьи", а само число просто выводите в шаблон. Это буквально несколько строк кода на бэкенде, ничего сложного технически тут нет.
Сложность появляется, когда нужна точность, а не просто растущее число. Без защиты счетчик накрутят: обновление страницы одним человеком десять раз даст десять просмотров, а поисковые боты и сканеры будут накидывать цифры без единого реального читателя. Базовая защита - считать не каждый запрос, а уникальные просмотры по IP-адресу или сессии за сутки, и не увеличивать счетчик для известных ботов по User-Agent.
Если считать статистику точно важнее, чем просто красивая цифра под статьей, для этого уже есть готовые инструменты - Яндекс.Метрика и подобные системы аналитики решают задачу глубже и точнее, с разбивкой по источникам трафика и устройствам, просто без публичного вывода числа на самой странице. Часто разумный вариант - сделать простой счетчик views для витрины на странице и параллельно смотреть реальную статистику в Метрике для аналитики.
Задать свой вопрос
Вопросы проходят модерацию. Ответ специалиста студии публикуется на сайте в течение пары дней.
Вопрос отправлен на модерацию. После проверки он появится на сайте вместе с ответом.
Вопрос не отправлен: нужно подтвердить согласие на обработку персональных данных.