mysurik.ru

Plausible: веб-аналитика без Google на своём сервере

Plausible: веб-аналитика без Google на своём сервере

Долгое время я сидел на Google Analytics. Бесплатно, мощно, всё под рукой. Но чем дальше, тем больше меня бесило: скрипты жрут трафик, GDPR-баннеры, данные утекают в корпорацию. А потом Google Analytics вообще заблокировали в России — и я решил, что хватит.

Так я наткнулся на Plausible.

Что это вообще такое? Plausible — это лёгкая, self-hosted аналитика, которая не собирает личные данные, не использует куки и работает без согласия пользователей. Скрипт весит меньше 1 КБ — против 45+ КБ у GA. Сайт грузится быстрее, а данных ровно столько, сколько нужно: просмотры, визиты, источники трафика, страницы, география. Без лишней мишуры.

Почему я не поставил Яндекс.Метрику? Вопрос логичный. Метрика тоже бесплатна и работает в РФ. Но у неё те же проблемы — тяжёлый скрипт, сбор всего подряд, привязка к экосистеме Яндекса. Мне хотелось что-то своё, подконтрольное, лёгкое.

Установка Plausible на свой сервер

Plausible работает на Docker. Если у тебя уже стоит Docker Compose, считай, полдела сделано. Мой сервер — Ubuntu 24.04 на Proxmox VM.

Создаю директорию:
mkdir -p /opt/plausible && cd /opt/plausible

Качаю конфиг:
wget https://raw.githubusercontent.com/plausible/analytics/master/docker-compose.yml
wget https://raw.githubusercontent.com/plausible/analytics/master/plausible-conf.env

Редактирую plausible-conf.env. Главное — задать SECRET_KEY_BASE (можно сгенерировать через openssl rand -base64 48) и указать домен:
ADMIN_USER_EMAIL=mysurik@mysurik.ru
ADMIN_USER_NAME=mysurik
BASE_URL=https://analytics.mysurik.ru
Также я сразу настроил SendGrid для писем — чтобы получать отчёты на почту.

Запускаю:
docker compose up -d

Через минуту сайт доступен по адресу. Захожу, создаю сайт (my-site.com), вставляю скрипт из админки в header.php темы:

Скрипт настолько лёгкий, что я сначала подумал — не сломалось ли. Нет, работает. Данные пошли сразу.

Тонкая настройка

Plausible умеет скрывать твои визиты (по куке), исключать ботов, настраивать цели. Я добавил отслеживание кликов по внешним ссылкам и 404 ошибок — для этого нужен script.outbound-links.js:

Ещё прикрутил уведомления в Telegram через вебхуки — Plausible шлёт еженедельный дайджест.

Что я получил

Вместо десятков графиков GA — шесть строчек цифр. Скорость загрузки не просела. Данные не уходят в Google. И главное — я контролирую всё сам. Если сервер ляжет — моя проблема, но это плата за независимость.

Единственный минус — Plausible не показывает «глубину просмотра» и «воронки» бесплатно. Но для блога мне хватает базовой статистики. Кто заходит, откуда, какие страницы читают.

Теперь это мой стандарт. Ставлю Plausible на все свои сайты. Google Analytics я удалил без сожаления.

Расшифрую опыт подробнее, чтобы ты не наступил на мои грабли. Начну с того, зачем я вообще ушёл с Google Analytics — потому что это помогло мне сформулировать, чего именно я хочу от аналитики. Мне не нужны были двести метрик, которыми я не пользовался. Мне нужно было знать три вещи: сколько людей приходит, откуда они и какие страницы читают. Плюс — чтобы это не тормозило сайт и не собирало лишнего о посетителях.

Скорость — это на самом деле важнее, чем кажется. У меня сайт разгонялся под десятую долю секунды, и вешать на него 45-килобайтный скрипт GA означало похоронить весь результат. Plausible с его одним килобайтом вписался идеально. Первое время я даже проверял в панели разработчика: скрипт грузится асинхронно, не блокирует рендер, и никакого влияния на метрики скорости не даёт.

Теперь про установку, но с деталями, которые я выяснил только на практике. Во-первых, Plausible требует свой домен или поддомен — я вынес его на analytics.mysurik.ru и повесил за nginx reverse proxy с Let’s Encrypt. Если поставить прямо на IP, мобильные браузеры и почтовые клиенты будут ругаться. Во-вторых, не забудь открыть порт и проверить, что домен резолвится на сервер до запуска docker compose, иначе Plausible будет видеть не тот адрес в запросах.

Ещё один нюанс — база данных. Plausible использует ClickHouse, и это не шутка про ресурсы. На моём VPS с двумя гигабайтами памяти он чувствует себя нормально, но на совсем слабых машинах стоит ограничить память в docker-compose.yml, иначе ClickHouse может выесть всю память и положить соседние контейнеры. У меня такое было один раз — я поставил memory limit и лимит на swap, после чего всё стало стабильно.

Что мне реально пригодилось из настроек. Во-первых, исключение собственных визитов — иначе я сам себе накручивал статистику, когда тестировал сайт. Plausible делает это по куке, так что мне не нужно было городить VPN или менять IP. Во-вторых, цели. Я настроил цель на страницу благодарности после подписки — и теперь вижу, сколько людей реально подписываются на мои обновления, а не просто читают. В-третьих, отслеживание 404-й — благодаря этому я нашёл несколько битых ссылок, о которых бы и не узнал. В-четвёртых, исключение ботов. По умолчанию Plausible это делает хорошо, но я добавил в фильтр пару известных поисковых краулеров, чтобы цифры были точнее.

Отчёты на почту — вещь, которую я сначала недооценивал. Plausible умеет слать еженедельный дайджест на email. Мне приходит одно короткое письмо: сколько визитов, откуда трафик, какие страницы в топе. Это заменило мне привычку каждое утро открывать панель аналитики. Один раз в неделю я смотрю почту — и у меня всегда есть картина происходящего.

Если сравнивать с Яндекс.Метрикой — да, она богаче по функциям: там и вебвизор, и цели, и интеграции с рекламой. Но для моего блога это избыточно. Плюс вебвизор собирает данные о поведении пользователей, а мне это не нужно и, честно говоря, некомфортно. Я хочу видеть цифры, а не записывать, как кто-то скроллит страницу.

Не буду приукрашивать: были и минусы. Плашное место — нет бесплатных воронок и глубины прокрутки. Когда я делал страницу с несколькими шагами, мне пришлось считать конверсию руками по целям. Это небольшое неудобство, но для сложных задач Plausible, честно говоря, слабоват. Ещё момент — если твой сайт совсем маленький и ты только начинаешь, функционала может быть слишком мало. Но как только появляется пара тысяч визитов в месяц, простоты начинает хватать.

Ещё я хочу сказать про независимость. Это прозвучит пафосно, но для меня важно, что аналитика живёт на моём сервере, под моим контролем. Никто не заблокирует доступ, не изменит условия, не начнёт показывать рекламу на основе моих данных. Мой сервер, мои данные, мой выбор. После истории с блокировкой Google Analytics в России это стало для меня определяющим фактором.

Что я советую в итоге. Если тебе нужна аналитика для блога или небольшого сайта и ты хочешь что-то лёгкое и приватное — Plausible почти идеален. Ставится за полчаса, скрипт невесомый, данных ровно столько, сколько нужно. Смотришь на цифры — и понимаешь, что происходит на сайте, без лишнего шума. Уже полгода пользуюсь и ни разу не пожалел. Разве что когда проверял, почему ClickHouse съел память — но это была моя ошибка с лимитами, а не вина самого инструмента.

Немного про сравнение с другими лёгкими аналитиками, потому что я перепробовал несколько вариантов перед тем, как остановиться. Уmami — открытый аналог, тоже на Docker, но интерфейс мне показался сыроватым, а данных по источникам меньше. Matomo — мощный, но тяжёлый: по сути, это снова Google Analytics, просто под твоим контролем, со всеми его баннерами и настройками. GoAccess — вообще не то, он анализирует логи, а не собирает статистику на сайте. Plausible оказался золотой серединой: достаточно функций для блога и при этом лёгкий и простой.

Отдельно скажу про приватность и GDPR — это звучит скучно, но важно. Plausible по умолчанию не собирает cookies и не создаёт профили пользователей. Это значит, что мне не нужен баннер согласия на сайте, и я не нарушаю никаких правил, даже когда сайт читают из Европы. Для меня это сняло целый пласт головной боли, который был с Google Analytics.

Ещё одна деталь, о которой часто забывают: резервное копирование. Раз аналитика живёт у тебя — ты отвечаешь за её данные. Я настроил ежедневный дамп базы Plausible в свои обычные бэкапы на домашний сервер. Если VPS с аналитикой упадёт — потеряю максимум день статистики, а не всё. С облачными сервисами об этом думать не приходилось, но здесь это обязательная рутина.

Если вкратце по настройке:
— Поддомен (например, analytics.mysurik.ru) + HTTPS через reverse proxy.
— docker compose up -d из официальных файлов, задав SECRET_KEY_BASE и BASE_URL.
— Ограничить память ClickHouse, если VPS слабый.
— Исключить собственные визиты, добавить цели и отслеживание 404.
— Настроить еженедельный отчёт на почту и не забыть бэкапы.

Напоследок повторю главное: Plausible не про «мощно и многофункционально», а про «просто и приватно». Если тебе нужна аналитика, которая не тормозит сайт, не собирает лишнего и живёт под твоим контролем — это твой вариант. Я на нём уже несколько месяцев, и возвращаться к Google или Метрике желания нет никакого.

Расскажу ещё про один приятный момент — публичные дашборды. Plausible умеет открывать статистику по ссылке, без логина. Я повесил публичный дашборд для своего блога, и читатели могут посмотреть цифры сами. Это добавляет прозрачности и, к слову, неплохо работает как доказательство того, что блог живой и его читают.

И маленькая история из жизни. Когда я только перенёс аналитику, пару дней я сравнивал цифры Plausible и Google Analytics параллельно. Расхождения были — GA считает все запросы, включая ботов и «холодные» визиты, а Plausible — реальных людей. Сначала я думал, что Plausible «теряет» данные. Потом понял: он просто показывает правду без мусора. Теперь эти цифры для меня честнее, чем то, что я видел в GA. Небольшое, но показательное отличие — в плюс Plausible.

Плюс, если ты настраиваешь несколько сайтов, Plausible поддерживает мультисайт из коробки. Я добавил в панель и блог, и один тестовый сайт — переключение между ними в один клик, общая статистика по всем проектам тоже видна. Для кого-то с двумя-тремя проектами это избавляет от кучи отдельных панелей.

Вот, пожалуй, и всё, что я хотел рассказать про Plausible. Коротко: лёгкий, приватный, на моём сервере. Полгода пользования — ноль поводов для сожаления.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *