Если UTM-метки не работают на сайте, чаще всего проблема в одном из трёх мест: метка обрезается при редиректе, счётчик аналитики не успевает её считать из-за кэширования страницы, либо ссылка с меткой ведёт не туда, где стоит сам счётчик. Разберём по порядку, как это диагностировать.
Как проверить, доходит ли метка до сайта
Откройте ссылку с меткой (например, ?utm_source=…&utm_medium=…&utm_campaign=…) в режиме инкогнито и посмотрите на адресную строку после загрузки страницы. Если параметры исчезли — значит, их «съедает» редирект или JS-роутер. Если параметры остались, но данных в системе аналитики нет — проблема на стороне счётчика, а не самой ссылки.
Частые причины потери меток
- Серверный или .htaccess-редирект настроен с явным указанием конечного URL без флага сохранения query-строки — параметры отбрасываются при переходе.
- CMS или SPA-роутер (React, Vue) перезаписывает URL через history.pushState без параметров при первой отрисовке.
- Страница отдаётся из кэша (браузера, CDN или плагина кэширования), и код счётчика срабатывает на закэшированной версии до появления актуальных параметров в DOM.
- Ссылка изначально собрана с ошибкой: пропущен знак ? или &, использованы не те регистры в названиях параметров.
- Счётчик подключён асинхронно и инициализируется до полной загрузки параметров URL, если они формируются через JS.
Что делать, если метки не работают
Проверьте правило редиректа в конфиге сервера (nginx, Apache) — при 301/302 редиректе должен использоваться флаг сохранения запроса (в nginx это $is_args$args, в Apache — [QSA] в mod_rewrite). Отключите кэширование для страниц с utm-параметрами в настройках плагина кэша или CDN, добавив эти параметры в исключения. Проверьте в консоли разработчика (вкладка Network), какой именно запрос уходит в систему аналитики, и сверьте его с ожидаемыми значениями меток.
Как проверить работу счётчика отдельно от меток
Откройте отчёт в реальном времени в самой системе аналитики и перейдите по тестовой ссылке с меткой. Если визит появляется, но источник определён как «прямой заход» — метка не считывается именно счётчиком, и стоит проверить порядок загрузки скриптов на странице: код счётчика должен идти после того, как параметры URL уже сформированы.