Был разработан и внедрен модуль для системы управления сайтом WordPress, позволяющий фиксировать факт посещения страниц сайта. Данные о каждом посещении (IP-адрес, URL страницы, реферер) сохраняются в специальном разделе административной панели WordPress в виде списка записей. Это позволяет получить представление о реальной активности на сайте: кто приходит, какие страницы посещаются, откуда приходят пользователи.

Зачем это нужно?
Это решение может быть полезно в следующих случаях:
- Мониторинг активности: Понимать, когда и какие страницы посещаются, особенно если основные инструменты аналитики (GA, Я.Метрика) отключены или дают искажённые данные (например, из-за блокировщиков рекламы).
- Анализ трафика: Оценить источники трафика (рефереры), выявить популярные страницы.
- Техническая диагностика: Отследить, как часто определённые страницы посещаются, например, для проверки работы редиректов или доступности контента.
- Потребность в простой аналитике «внутри WordPress»: Для случаев, когда не хочется или нельзя использовать внешние сервисы аналитики, и нужен простой встроенный способ фиксации посещений.
- Выявление не типовых запросов к файлам внутри системы, а также обращение к несуществующим файлам.
План проведённых работ
1. Анализ и проектирование:
- Определение целей: фиксировать посещения, IP, рефереры; избежать сложного отслеживания пользователей.
- Выбор подхода: создание собственного типа записи (CPT) в WordPress.
2. Разработка и внедрение:
- Создание CPT
visit_log: Регистрация нового типа записейvisit_logс настройками, скрывающими его от публичного доступа, но позволяющими просматривать в админке. - Сбор данных: Разработка функции, которая срабатывает при загрузке страницы (кроме AJAX, админки, ботов), извлекает IP-адрес (
$_SERVER['REMOTE_ADDR']), реферер ($_SERVER['HTTP_REFERER']) и текущий URL ($_SERVER['REQUEST_URI']). - Сохранение данных: Реализация логики сохранения собранных данных (IP, URL, реферер) в новую запись типа
visit_logкак вmetaполя, так и частично вpost_contentдля удобства просмотра. - Отображение в админке: Настройка списка записей
visit_logв админке WordPress: добавление новых колонок (IP, URL, реферер), заполнение их данными. URL и реферер отображаются мелким шрифтом. - Детализация: Добавление метабокса на страницу редактирования записи для просмотра всех собранных данных в одном месте.
- Оптимизация и фильтрация: Добавление проверок для исключения AJAX-запросов, админ-страниц, внутренних проверок (
health-check) и (потенциально) ботов. Реализация ежедневной задачи (wp_cron) для автоматической очистки старых записей (например, старше 30 дней), чтобы база данных не переполнялась.

Плюсы решения
- Интеграция с WordPress: Данные хранятся в структуре WordPress, легко просматриваются и управляются через админ-панель.
- Простота реализации: Быстрое внедрение на существующий сайт.
- Гибкость: Возможность настройки под конкретные задачи (например, изменение срока хранения).
- Визуализация: Удобный список посещений с детализацией в админке.
- Анонимность: Не использует cookies или localStorage, фиксирует посещения, а не конкретных пользователей (если не хранить
clientId).
Минусы данного решения
- Нагрузка на базу данных: Каждое посещение создаёт новые записи в базе данных (
wp_posts,wp_postmeta). На сайтах с высоким трафиком (тысячи посещений в день) это может сильно нагружать сервер базы данных и увеличивать объём базы. Это ключевой недостаток при высоких нагрузках. - Не полноценная аналитика: Не заменяет собой Google Analytics или Яндекс.Метрику. Нет встроенной визуализации (графиков), сложнее анализировать данные в больших объёмах.
- Конфиденциальность: Хранение IP-адресов может требовать соблюдения норм законодательства (например, 152-ФЗ в РФ).
- Точность данных: Данные могут включать посещения ботов, если фильтрация настроена недостаточно точно. Также может не учитывать посетителей с динамическими IP.
UPD. Проведена модификация функции и визуальной составляющей:
Новые возможности:
- Три вкладки: Visitors (по IP), Pages (по URL), Sources (по реферерам)
- KPI-карточки: общее число визитов, уникальные посетители, bounce rate
- Совмещённый график посещений по дням: общие визиты и уникальные посетители на одном поле
- Топ-20 с цветовыми мини-барами для наглядного сравнения
- Топ-3 строки подсвечены золотом/серебром/бронзой
- Модальные окна с детализацией: для IP — список посещённых URL с количеством заходов, для реферера — список IP и целевых URL
- Поиск внутри модальных окон
- Копирование IP в буфер обмена по клику
- Favicon для доменов-рефереров
- Фильтр по диапазону дат с кнопкой сброса
- Автоочистка логов старше 30 дней (cron)

Плюсы:
- Вся аналитика внутри WordPress, без внешних сервисов
- Наглядная визуализация: график, бары, цветовая иерархия
- Быстрый доступ к детализации через модальные окна
- Кастомный дизайн без стандартных таблиц widefat
- Простая установка — один файл functions.php
Вывод
Эта доработка предоставляет простой способ фиксации посещений внутри WordPress. Она подходит для сайтов с умеренным трафиком, где важна интеграция с CMS и относительная простота отслеживания. Однако, для сайтов с высоким трафиком требуется дополнительная оценки влияния на производительность. Это скорее технический инструмент для мониторинга, чем полноценная система бизнес-аналитики.