Как узнать, откуда пришли посетители сайта

Источники трафика показывают отчеты Яндекс Метрики и Google Analytics 4. Они помогают разделить поиск, рекламу, переходы с других сайтов и прямые заходы. UTM-метки уточняют кампанию, а панели вебмастеров показывают поисковые запросы. Серверные логи помогают разобрать отдельные переходы, но не заменяют счетчик.

Какие бывают источники трафика

Система аналитики определяет источник по меткам, рефереру и другим признакам. Реферер – это адрес отправляющей страницы, который браузер передает при запросе. HTTP-заголовок называется Referer, именно с таким написанием.

Тип трафикаОткуда приходит посетительЧто помогает определить источник
ПоискИз обычной выдачи поисковой системыРеферер поисковика; запросы смотрят отдельно в панелях вебмастеров
РекламаИз платного объявленияUTM-метки, рекламные идентификаторы и интеграции
Ссылки с сайтовИз статьи, каталога или партнерского материалаДомен в реферере или метки размещения
СоцсетиИз публикации, сообщества или профиляРеферер соцсети либо UTM-метки
МессенджерыИз сообщения, канала или чатаПрежде всего UTM-метки: приложение может не передать реферер
РассылкиИз письмаUTM-метки с обозначением email-канала
Прямые заходыИз закладки, адресной строки или перехода без распознанного источникаИсточник часто остается неизвестным

Источник обозначает конкретную площадку, канал объединяет похожие способы привлечения. Например, google – источник, а organic – обозначение бесплатного поискового перехода.

В GA4 пара source / medium объединяет источник и тип перехода. Группа каналов классифицирует такие пары по собственным правилам.

Реферальный трафик обычно означает переходы по ссылкам с других сайтов. Соцсети и поисковики тоже передают реферер, но аналитика выделяет их отдельно.

Источники трафика в Яндекс Метрике

Откройте Яндекс Метрику и выберите счетчик нужного сайта. Отчеты покажут только посещения, которые счетчик успел зарегистрировать.

Установка счетчика не восстанавливает историю предыдущих визитов.

Как прочитать отчет «Источники, сводка»

  1. Откройте «Отчеты» → «Источники» → «Источники, сводка». В таблице появятся группы источников трафика.
  2. В календаре над отчетом задайте даты начала и окончания. Для первого разбора возьмите последние 7 полных дней.
  3. Сравните количество визитов по источникам. Один посетитель может создать несколько визитов, поэтому посетители и визиты не совпадают.
  4. Откройте настройку группировок таблицы. Оставьте источник трафика, затем добавьте детализацию по поисковой системе или сайту перехода.
  5. Если на сайте настроены цели, сравните конверсию источников. Источник с большим количеством визитов может приносить меньше заявок.

Группировка определяет содержание строк, а метрика – значение в столбце. Например, вы группируете визиты по источнику и оцениваете число достижений цели.

Как найти сайты, с которых приходят посетители

В сводке источников оставьте группировку по сайту перехода. Задайте тот же период, который использовали для общего распределения визитов. Строки с доменами покажут сайты-доноры и объем зарегистрированного трафика.

Для проверки конкретного донора отфильтруйте таблицу по его домену. Добавьте детализацию по адресу реферера, если она доступна в отчете.

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

Где искать поисковые запросы

Откройте «Отчеты» → «Источники» → «Поисковые запросы» и задайте нужный период. Таблица покажет запросы, которые система смогла определить. «Поисковая фраза» – группировка внутри отчета.

Пустая строка или скрытая фраза не означает отсутствие поискового перехода.

Для анализа поискового спроса используйте также Яндекс Вебмастер и Google Search Console. Их отчеты описывают поисковую выдачу, поэтому дополняют статистику счетчика.

Источники трафика в Google Analytics 4

В Google Analytics выберите ресурс нужного сайта. Для ответа на вопрос «откуда пришли посетители» анализируйте источники сеансов.

Источник первого привлечения пользователя показывает, как система впервые узнала этого посетителя.

  1. Откройте «Отчеты» → «Привлечение» → «Привлечение трафика». Вы увидите таблицу привлечения сеансов.
  2. Задайте период в календаре отчета. Для сравнения с Метрикой используйте одинаковые даты.
  3. В измерении таблицы выберите «Источник / канал сеанса». В строках появятся пары вроде google / organic.
  4. Сравните сеансы и настроенные ключевые события. Эти столбцы помогают оценить объем и результат привлечения.

Здесь слово «канал» в паре означает medium. Не путайте его с группой каналов, например Organic Search или Referral. Группа объединяет переходы по правилам классификации GA4.

Если отчет отсутствует в навигации, используйте поиск внутри Analytics. Введите название «Привлечение трафика» и откройте найденный отчет.

Изменять структуру отчетов ради просмотра статистики не требуется.

Как посмотреть реферальные сайты

В отчете привлечения трафика выберите измерение источника и канала сеанса. Отберите строки, у которых medium равен referral. Источник в таких строках обычно содержит домен сайта-донора.

Например, строка partner.example / referral обозначает переходы с условного партнерского сайта. Она не сообщает, какая именно статья содержала ссылку. Полный адрес зависит от переданного реферера и собранных параметров событий.

Почему цифры Метрики и GA4 расходятся

Сравнивайте одинаковые периоды, часовые пояса и показатели. Число пользователей в одном сервисе нельзя напрямую сравнивать с визитами другого.

  • Счетчики могут загружаться на разных страницах или с разными задержками.
  • Блокировщик либо настройки согласия могут разрешить один счетчик и отключить другой.
  • Системы по-разному определяют сеансы, фильтруют трафик и присваивают источники.
  • Редиректы, переходы между доменами и потерянные метки меняют атрибуцию.

При заметном расхождении сначала проверьте установку обоих счетчиков на посадочных страницах. Затем сравните один размеченный переход в обеих системах. Если переход зарегистрировал только один счетчик, начните с проверки загрузки второго.

UTM-метки: как отслеживать рекламу и рассылки

UTM-метки добавляют сведения об источнике прямо в адрес ссылки. Счетчик читает параметры при открытии посадочной страницы.

Для базовой разметки заполняйте 3 параметра по единым правилам именования. Значения выбирайте под площадку, тип перехода и кампанию каждого размещения. Считайте эти поля обязательными в собственной таблице рекламных ссылок.

ПараметрЧто обозначаетПример
utm_sourceПлощадку или отправителяnewsletter, telegram
utm_mediumТип переходаemail, social, cpc
utm_campaignНазвание кампанииspring_launch

Одна кампания может объединять несколько площадок.

Например, сохраните spring_launch для письма и публикации в Telegram. У письма задайте newsletter / email, у публикации – telegram / social.

Для письма о запуске продукта ссылка может выглядеть так. Домен и страница в примере условные; замените их своими.

https://local.it/offer?utm_source=newsletter&utm_medium=email&utm_campaign=spring_launch
  1. Возьмите конечный адрес посадочной страницы. Откройте его и убедитесь, что страница работает.
  2. Добавьте параметры после знака ?. Если параметры уже есть, присоедините метки через &. Метки должны стоять перед фрагментом адреса, который начинается с #.
  3. Запишите названия в нижнем регистре. Например, используйте newsletter во всех письмах одной рассылки.
  4. Откройте готовую ссылку в отдельном окне браузера. После редиректов метки должны остаться в конечном адресе.
  5. Поставьте готовую ссылку в письмо или объявление вместо обычной. Сохраните ее вместе с названием размещения.

Собрать адрес помогает Campaign URL Builder от Google. Укажите адрес страницы и значения source, medium, campaign в соответствующих полях. Если используете собственную таблицу разметки, храните в ней те же 3 поля.

Где найти размеченную кампанию

В Метрике откройте «Отчеты» → «Источники» → «Метки UTM». Выберите период тестового перехода. Отчет объединяет данные по парам «атрибут – значение» метки. Найдите utm_campaign со значением spring_launch, которое вы указали в ссылке.

В GA4 откройте «Отчеты» → «Привлечение» → «Привлечение трафика». Выберите измерение кампании сеанса и найдите spring_launch. При детализации по источнику и каналу ожидаемая пара – newsletter / email.

Данные могут появиться после обработки, поэтому отсутствие кампании сразу после клика не доказывает ошибку.

Если кампания так и не появилась, проверьте сохранность параметров после редиректов. Также проверьте загрузку счетчика и исключение собственных посещений фильтрами.

Не ставьте UTM-метки на внутренние ссылки сайта. Внутренняя навигация не привлекает нового посетителя извне. Для анализа баннеров внутри сайта используйте события клика.

Чтобы отменить разметку размещения, верните исходную ссылку в письме или объявлении. Уже собранная статистика кампании при этом останется.

По каким запросам приходят из поиска

Поисковики обычно не передают текст запроса в реферере перехода. Из серверного лога нельзя восстановить скрытую поисковую фразу.

Запросы смотрят в панелях вебмастеров после подтверждения прав на сайт.

Запросы в Яндекс Вебмастере

  1. Откройте Яндекс Вебмастер и выберите подтвержденный сайт. Адрес должен соответствовать нужному домену и протоколу.
  2. Откройте отчет «Статистика поисковых запросов». В нем собраны показатели запросов, включая показы и клики.
  3. Сопоставьте запросы с количеством кликов. Фразы с кликами привели переходы из поиска; одни показы этого не доказывают.

Показы означают появление сайта в результатах поиска. Клики означают переходы из выдачи.

Запросы в Google Search Console

  1. Откройте Google Search Console и выберите подтвержденный ресурс сайта.
  2. Откройте отчет об эффективности в обычном поиске – Performance (Search results). Он содержит график кликов и показов. Не выбирайте отчеты о рекомендациях или новостях.
  3. Задайте период и откройте вкладку запросов – Queries. Сопоставьте поисковые фразы с количеством кликов.
  4. Для анализа конкретной посадочной страницы добавьте URL-фильтр с ее адресом. На вкладке Queries смотрите запросы для выбранной страницы. Вкладка Pages показывает данные по страницам сайта.

Поисковые панели не связывают каждую фразу с конкретным человеком. Часть запросов скрывается ради приватности. Поэтому сумма видимых строк может отличаться от общего количества кликов.

Сравнивайте запросы внутри одной панели. Клик поисковика и сеанс счетчика описывают разные события, поэтому равенство чисел не гарантировано. После клика посетитель может закрыть страницу до загрузки счетчика.

Почему часть трафика попадает в «Прямые заходы»

Прямой заход не всегда означает ручной ввод адреса. Система может отнести сюда переход без распознанного источника.

Если реферер отсутствует и меток нет, определить площадку задним числом часто невозможно.

ПричинаЧто происходитЧто делать
Закладки и адресная строкаУ перехода нет отправляющей веб-страницыУчитывать такие посещения как самостоятельный сценарий
Мессенджер или приложениеПриложение может открыть ссылку без реферераРазмечать ссылки каналов и публикаций UTM-метками
Письмо без метокПочтовый клиент может не сообщить источникДобавлять utm_medium=email и название рассылки
Ограничение Referrer-PolicyСтраница-источник запрещает передачу реферераИспользовать метки в согласованных внешних размещениях
Переход с HTTPS на HTTPПолитика браузера может убрать реферер при снижении защищенностиПеревести посадочные страницы на HTTPS
Редирект теряет параметрыКонечная страница открывается без UTMСохранять query-параметры при перенаправлении

Заголовок Referrer-Policy управляет передачей адреса источника. При политике strict-origin-when-cross-origin межсайтовый HTTPS-переход передает только origin: схему, хост и порт. Внутри одного origin браузер может передать путь и параметры.

При той же политике переход с HTTPS на HTTP не передает реферер. Политика no-referrer запрещает его передачу целиком.

Настройка вашего сайта не заставит чужой сайт раскрыть адрес отправляющей страницы.

Отсутствие пути в реферере само по себе не создает прямой заход. Если аналитика получила домен донора, она еще может определить источник. Главная потеря здесь – адрес конкретной статьи.

Проверяйте размещения отдельными тестовыми переходами. Сравните конечный URL с исходной размеченной ссылкой. Если метки исчезли, исправьте перенаправление до запуска кампании.

Как получить источник перехода на сервере

PHP получает реферер через $_SERVER['HTTP_REFERER'], а параметры ссылки – через $_GET. Оба источника содержат пользовательский ввод. Отсутствующий реферер нужно обрабатывать без ошибки.

Рабочий пример для PHP 8

Создайте каталог var вне публичного каталога сайта. Разрешите пользователю PHP запись только в этот каталог. Пример предполагает, что файл обработчика лежит в соседнем публичном каталоге.

<?php
 declare(strict_types=1);

function queryValue(string $key): ?string
{
    $value = $_GET[$key] ?? null;
    return is_string($value) ? substr($value, 0, 300) : null;
}

$refererValue = $_SERVER['HTTP_REFERER'] ?? '';
$referer = is_string($refererValue)
    ? substr($refererValue, 0, 2000)
    : '';

$refererHost = parse_url($referer, PHP_URL_HOST);
$requestUri = $_SERVER['REQUEST_URI'] ?? '/';
$landingPath = parse_url($requestUri, PHP_URL_PATH);

$record = [
    'time' => gmdate('c'),
    'landing_path' => is_string($landingPath) ? $landingPath : '/',
    'referer_host' => is_string($refererHost) ? $refererHost : null,
    'utm_source' => queryValue('utm_source'),
    'utm_medium' => queryValue('utm_medium'),
    'utm_campaign' => queryValue('utm_campaign'),
];

$line = json_encode(
    $record,
    JSON_UNESCAPED_UNICODE | JSON_INVALID_UTF8_SUBSTITUTE | JSON_THROW_ON_ERROR
) . "\n";

$written = file_put_contents(
    __DIR__ . '/../var/traffic.jsonl',
    $line,
    FILE_APPEND | LOCK_EX
);

if ($written === false) {
    error_log('Cannot write traffic log');
}

Подключите этот код в обработчике посадочной страницы. Откройте ее по ссылке с 3 UTM-метками из примера. В файле traffic.jsonl должна появиться строка с кампанией spring_launch.

Пример сохраняет только домен реферера и путь посадочной страницы. Полные адреса могут содержать токены, email и другие чувствительные параметры. Ограничьте доступ к логу и настройте его ротацию.

Флаг FILE_APPEND добавляет запись в конец файла. Флаг LOCK_EX блокирует конкурирующую запись на время операции. Разделитель "\n" создает отдельную строку для каждого JSON-объекта.

Если лог не появился, проверьте существование каталога и права пользователя PHP. Сообщение об ошибке записи попадет в журнал ошибок PHP.

Чтобы отключить сбор, удалите подключение обработчика.

Как декодировать параметры без ручного разбора

PHP уже декодирует значения в $_GET. Не применяйте urldecode() к ним повторно: двойное декодирование может изменить исходное значение.

Для отдельной закодированной строки используйте urldecode().

$encodedValue = 'spring+launch';
$readableValue = urldecode($encodedValue); // spring launch

$url = 'https://local.it/offer?utm_source=newsletter&utm_medium=email';
$query = parse_url($url, PHP_URL_QUERY);
$params = [];

if (is_string($query)) {
    parse_str($query, $params);
}

$source = $params['utm_source'] ?? null;

Функция parse_url() выделяет query-часть адреса. Функция parse_str() разбирает параметры и декодирует значения. Семейство ereg удалено в PHP 7.0; для обработки процентов оно не требуется.

Реферер можно подделать или вообще не передать. Не используйте его для авторизации, выдачи доступа или единственной проверки безопасности. UTM-метки тоже не доказывают подлинность источника.

Как прочитать реферер в access-логах nginx и Apache

Путь к access-логу задает конфигурация веб-сервера. У nginx его определяет директива access_log, у Apache – CustomLog. В панели хостинга ищите журнал обращений нужного домена.

Если вы администрируете сервер, найдите эти директивы в конфигурации сайта. Они укажут файл и используемый формат записи. Универсального расположения для всех установок нет.

В формате combined реферер стоит в кавычках после размера ответа. Следующее поле содержит User-Agent. Условная строка выглядит так:

192.0.2.10 - - [TIME] "GET /offer?utm_source=newsletter HTTP/1.1" 200 1234 "https://partner.example/" "Browser"

Здесь https://partner.example/ обозначает реферер. Значение "-" на его месте означает отсутствие значения в записи. Для собственного формата nginx ищите переменную $http_referer, у Apache – спецификатор %{Referer}i.

UTM-параметры ищите в адресе запроса, если формат сохраняет query-строку.

Серверный запрос не равен визиту: логи содержат обращения роботов, запросы ресурсов и повторные загрузки. Без идентификатора посетителя отдельные строки не складываются в надежную историю его действий.

С чего начать анализ источников

Для общего распределения посещений используйте отчет источников в счетчике. Для оценки размещений заранее создавайте UTM-ссылки. Поисковые запросы изучайте в панелях вебмастеров, а отдельные технические переходы разбирайте по логам.

Совет от нашей редакции: заведите единую таблицу названий UTM-меток до первой кампании. Одинаковые правила именования позволят сравнивать размещения без ручного объединения похожих строк.

Комментарии

Оставьте свой комментарий
ДП
Дмитрий П.

И гугл и яндекс при нажатии на сайт перенаправляет через какую-то страницу, которая никак не может определить запрос

Г
Гость

А как же смотреть запросы то? Яндекс тот же через прокладку перенаправляет и запрос там шифрованный..

W
wemas-ru

а можно чтобы например вот зарегистрировался юзер и в анкете выходило пришел с google.com....

Г
Гость

Не понял как этот код ставить и куда ставить его подскажите мне.

Р
Руслан

Поставил, все работает. Вот только в некоторых ссылках вообще кракозябры вместо руских букв в ссылке. Кто нибудь знает, в как исправить?

А
Анатолий

Похоже я буду частым гостем у вас.

K
Kom

Либо я гдето туплю, либо в коде чёта не так(( потому-что ошибок не выдаёт, но в файл ничё не пишеццо!(((

K
Kom

Да жирненько и действительно просто!! спс за труды!!

Я
Ярослав

У меня вот такая ошибка при считывании скрипта - Deprecated: Function ereg() is deprecated in /home/*/********/WWW/****.php on line 16
Как это исправит..скажите плиз...
звездочки сам поставил)))

T
tester

А чем не нравится urldecode?

Загрузить еще