Коротко: сервер и счётчик считают разные множества событий. В access-лог попадает каждый HTTP-запрос: боты, краулеры, API-клиенты, проверки мониторинга. Метрика видит только те просмотры, где в браузере успел отработать JavaScript-счётчик. Лог почти всегда больше отчёта, и это ожидаемо: источники измеряют разные вещи и отвечают на разные вопросы.
Access-лог фиксирует всё, что обращалось к серверу. Кроме людей, там постоянно находятся:
Ни один из этих запросов не доходит до Метрики: у робота нет исполнения JavaScript, у аптайм-проверки нет браузера, у API-клиента нет страницы. Серверная цифра при этом честно растёт.
Отсюда первое правило чтения лога: считать нужно запросы к страницам; все строки подряд дают заведомо завышенную картину, и всё равно останется неизвестный остаток ботов, маскирующихся под браузеры. Вычесть его точно нельзя: лог не показывает, исполнил ли клиент JavaScript. Разница между логом и отчётом поэтому даёт диапазон: в ней сидят и роботы, и потерянные блокировщиками живые посетители.
Обратное направление: люди, которые в лог попадают, а в Метрику нет.
Дальше расхождения идут на уровне механики страницы, и здесь оба источника правы каждый по-своему.
Редиректы. Цепочка из двух-трёх перенаправлений даёт серверу две-три строки лога, а счётчику — один запуск на финальной странице, где скрипт наконец исполнился.
Кэширование. Страница из кэша браузера отрисовывается без запроса к серверу: строки в логе нет, а счётчик на странице срабатывает. Есть и разворот того же механизма: запрос дошёл до сервера, но JavaScript не успел стартовать — серверная строка есть, визита нет. Оба случая дают зеркальное расхождение, которое не лечится правкой фильтров.
AJAX и SPA-переходы. Одностраничник меняет URL без полной загрузки документа. Сервер видит один запрос на весь сеанс; виртуальные просмотры в Метрике появляются, только если код сайта вручную отправляет хит при смене маршрута.
Часовые пояса. Метрика собирает статистику по поясу из настроек счётчика: «статистика будет собираться по указанному часовому поясу», и при смене пояса исторические данные не пересчитываются (справка Метрики). Серверные логи чаще всего пишутся в UTC. Одни и те же полночные визиты уходят в разные дни, и суточные отчёты расходятся даже при идентичном трафике.
Страницы ошибок. Лог насчитает запросы к несуществующим URL, на которых счётчик не установлен: в логе — трафик, в отчёте — тишина.
Источники не конкурируют: у каждого своя работа.
Практический ритм сверки простой: раз в неделю сравнивается форма кривой лога и отчёта по дням. Обе ровные — всё в порядке. На логе всплеск, в отчёте тишина — пришёл обходчик или сработал мониторинг. На логе провал — проблема уже на сервере, и претензий к счётчику в этом случае нет.
Когда нужен подсчёт людей без потерь на cookie и согласия, серверный лог тоже не ответ: он не отличает человека от робота. Эту задачу решает счётчик с серверной агрегацией, как в ДэйРике: визит собирается на сервере, без записи идентификаторов в браузер, а отчёт считает события воронки и выручку по тем же людям.
Итог прост: расхождение лога и отчёта — свойство архитектуры, а не ошибка настройки. Лог считает запросы, счётчик считает людей. Вопросы про трафик, конверсии и продажи адресуются счётчику, вопросы про сервер, ботов и нагрузку — логу.
ДэйРика агрегирует визиты на сервере без cookie: 13 событий автоматически, воронки и выручка, передача конверсий в Директ и VK по API. Демо-кабинет — логин demo, пароль demo.
Посмотреть, как работает ДэйРикаЧасовой пояс в настройках счётчика — справка Яндекс Метрики («Создание и установка счётчика»). Поведение access-логов, редиректов и кэша — общедокументированная механика HTTP. Параметры ДэйРики — по устройству продукта.