К основному содержимому

WordPress + Google Analytics 4: правильное подключение

WordPress · 27.01.2025 · 4 мин чтения
Иллюстрация к статье «WordPress + Google Analytics 4: правильное подключение»

Три способа добавить GA4 в WordPress

МетодПлюсыМинусы
Site Kit by GoogleОфициальный, удобныйТяжёлый плагин
Вручную (functions.php)ЛегковесноНужны знания PHP
Google Tag ManagerГибкость, все теги в одном местеСложнее настройка

Метод 2: Вручную через functions.php

function add_ga4_tracking() {
    $measurement_id = 'G-XXXXXXXXXX';
    echo "
    <script async src='https://www.googletagmanager.com/gtag/js?id={$measurement_id}'></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', '{$measurement_id}');
    </script>";
}
add_action('wp_head', 'add_ga4_tracking');
💡 Добавьте if (!current_user_can('manage_options')) перед echo, чтобы не считать свои просмотры в аналитике.

Настройка целей GA4

В GA4 цели называются Events. Ключевые события для сайта хостинга:

  • purchase — оформление заказа
  • sign_up — регистрация
  • generate_lead — заявка с формы
  • page_view — просмотр страницы
⚠️ GA4 не хранит IP-адреса по умолчанию — это соответствует GDPR. Не меняйте эту настройку без необходимости.

Разбор ошибок трекинга GA4

Код счётчика вставлен, а данные в отчётах не появляются. Разница между GA4 и старым Universal Analytics в том, что GA4 группирует всё в события, поэтому многие «ошибки» на деле — не баг, а иначе устроенная модель данных. Вот что означают типичные симптомы.

СимптомПричинаЧто делать
Отчёт Real-Time пустой, хотя код вставленMeasurement ID указан с опечаткой, либо скрипт блокируется кэш-плагином как «неиспользуемый JS»Сверить ID в GA4 → Admin → Data Streams, исключить файл из минификации
Ошибка в консоли: gtag is not definedСкрипт gtag.js не успел загрузиться до вызова gtag(), обычно из-за нарушенного порядка подключенияНе менять порядок из примера: сначала dataLayer, затем сам скрипт gtag.js
Число сессий вдвое больше ожидаемогоGA4 подключён одновременно через Site Kit и вручную через functions.phpОставить только один способ подключения счётчика
Запрос к google-analytics.com помечен Blocked by clientОтправку блокирует блокировщик рекламы у части посетителейЭто ожидаемо для части трафика; для надёжности используйте серверный тегирование через GTM Server Container

Когда самостоятельная настройка GA4 не подходит

  • Сайты с жёсткими требованиями GDPR — нужен Consent Mode v2 и баннер согласия перед любой отправкой данных в GA4
  • Интернет-магазины с отчётностью по продажам — вручную через functions.php сложно передать данные о покупках, удобнее использовать встроенную интеграцию WooCommerce или GTM
  • Компании с юридическим требованием хранить данные внутри Евросоюза — нужна отдельная настройка региона обработки данных в GA4 Admin, а не просто вставка кода
  • Одностраничники с десятками микроконверсий — ручная разметка каждого события в коде не масштабируется, нужен Google Tag Manager
  • Сайты с несколькими доменами под одним брендом — для сквозной аналитики между доменами нужна настройка cross-domain measurement, а не просто вставка одного и того же кода на каждый домен

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

Настройка через Google Tag Manager

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

<!-- В head, сразу после открывающего тега body -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>

<!-- Основной контейнер вставляется в head через functions.php,
     как в примере с gtag выше -->

Если контейнер GTM не загружается из-за политики безопасности контента, разберитесь с настройкой CSP на сайте.

Как проверить, что данные идут в GA4 корректно

  • В GA4 → Admin → DebugView события появляются в реальном времени при активной отладке
  • В DevTools → Network запрос к домену google-analytics.com/g/collect возвращает статус 204
  • Тег Assistant в браузере показывает сработавшие теги без ошибок конфигурации
  • Число событий page_view примерно совпадает с числом уникальных загрузок страниц за тот же период
// Быстрая проверка в консоли браузера
console.log(window.dataLayer);
// Массив должен содержать события gtag('config', ...) и gtag('event', ...)

После проверки трекинга стоит также свериться с базовыми SEO-настройками — см. статью про Yoast SEO.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке