SadalClik на WordPress
Два рабочих пути: через плагин, который ставит контейнер Google Tag Manager, или через functions.php дочерней темы. Ядро и файлы темы патчить не надо. Ниже — куда класть папку /cg/ и что на WordPress ломает счётчик чаще всего.
Подходит для WooCommerce · обновление WordPress установку не сносит
Шаг, который нельзя пропустить
Папка /cg/ кладётся в корень сайта
Сначала FTP, потом тег. В папке лежат два файла: счётчик cg-tracker.safe.js и приёмник collect.php. Приёмник — это PHP, и он должен исполняться на вашем домене, чтобы визиты не резали блокировщики. Google Tag Manager PHP-файл создать не может: тег умеет только вставить JavaScript в страницу.
Кладите рядом с wp-config.php — там же, где корень WordPress:
public_html/
├── wp-admin/
├── wp-content/
├── wp-includes/
├── wp-config.php
└── cg/
├── cg-tracker.safe.js
└── collect.php
| Путь | Вердикт | Почему |
|---|---|---|
/cg/ |
Верно | Корень сайта. Обновления WordPress, темы и плагинов сюда не лезут. |
/wp-content/themes/tema/cg/ |
Нет | Слетит при первом же обновлении темы. И адрес сменится, если тему поменяете. |
/wp-content/plugins/cg/ |
Нет | То же самое плюс риск, что оптимизатор посчитает папку мусором. |
/wp-content/uploads/cg/ |
Нет | Многие хостинги запрещают исполнять PHP в uploads — collect.php молча вернёт 403. |
Проверка: откройте в браузере https://vash-sajt.com/cg/cg-tracker.safe.js. Должен отдаться текст скрипта. Если видите страницу «404 — не найдено» от WordPress, файл лежит не там или права не 644.
Права: папка 755, файлы 644. Постоянные ссылки WordPress реальные файлы не перехватывают — правило .htaccess проверяет наличие файла и пропускает его напрямую.
Путь A · рекомендуем
Через плагин, который ставит контейнер GTM
Site Kit by Google и GTM4WP делают одно: вставляют в страницы контейнер Google Tag Manager. Сам код SadalClik они не знают — его вы добавите внутри GTM. Зато потом любые правки делаются в интерфейсе GTM, без доступа к сайту.
Поставьте контейнер
Site Kit: Настройки → подключить Tag Manager, выбрать контейнер GTM-XXXXXXX. GTM4WP: Settings → Google Tag Manager → вписать ID и включить вставку кода.
Убедитесь, что он один
Ctrl+U на главной, поиск по googletagmanager.com/gtm.js. Должно найтись одно вхождение. Два контейнера на странице — каждый визит уйдёт к нам дважды и лимит тарифа сгорит вдвое быстрее.
Добавьте тег SadalClik
В GTM: Теги → Создать → Custom HTML, вставить код из панели, триггер All Pages, отметку «один раз на страницу» оставить включённой.
Preview, потом Submit
В режиме предпросмотра GTM откройте свой сайт: тег должен быть в списке Fired. Только после этого публикуйте контейнер.
Site Kit и GTM4WP вместе включать не надо. Если контейнер уже вставляет один плагин, во втором вставку кода выключите.
Путь B · без GTM
functions.php дочерней темы
Если Tag Manager на сайте не нужен, скрипт подключается штатным способом WordPress. Правило одно: файл редактируется только в дочерней теме. В родительской теме правка живёт до первого обновления, потом исчезает вместе с данными.
Вариант через wp_enqueue_script — настройки уезжают в тот же тег, порядок гарантирован:
add_action('wp_enqueue_scripts', function () {
wp_enqueue_script(
'cg-tracker',
home_url('/cg/cg-tracker.safe.js'),
[], null, true
);
wp_add_inline_script('cg-tracker',
"window.CG_ACC='vash-akaunt';" .
"window.CG_CG_ENDPOINT='" . home_url('/cg/collect.php') . "';",
'before'
);
});
Если enqueue не нужен, тот же код можно вывести в подвал напрямую:
add_action('wp_footer', function () { ?>
<script data-cfasync="false" data-no-optimize="1">
window.CG_ACC = 'vash-akaunt';
window.CG_CG_ENDPOINT = '<?= home_url('/cg/collect.php') ?>';
</script>
<script src="<?= home_url('/cg/cg-tracker.safe.js') ?>" async></script>
<?php }, 99);
- Последний аргумент true ставит скрипт в подвал — страница его не ждёт.
- Версия null убирает ?ver= из адреса: файл и так отдаётся с вашего домена.
- home_url() сам подставит нужный протокол и домен — на стейджинге ничего править не придётся.
- В header.php и в footer.php темы код не вставляйте: эти файлы перезаписываются обновлением.
Плагина SadalClik в каталоге WordPress пока нет. Оба пути выше — штатные средства самого WordPress, ничего лишнего в базу не пишется.
Подводные камни
Что на WordPress ломает счётчик
Сам код простой. Ломают его не мы и не WordPress, а слой оптимизации поверх него: кеш, минификация, склейка файлов и отложенный запуск JavaScript. Симптом всегда один — визитов стало заметно меньше или они пропали с части устройств.
| Что стоит | Что делает | Что сделать |
|---|---|---|
| WP Rocket | Minify/Combine JavaScript склеивает файлы и рвёт порядок; Delay JavaScript execution откладывает запуск до касания экрана. | Добавьте cg-tracker.safe.js в Excluded JavaScript Files и в исключения отложенного запуска. |
| LiteSpeed Cache | JS Combine и Load JS Deferred меняют момент выполнения; Localize Resources копирует внешние файлы к себе. | Впишите /cg/ в JS Excludes и в Localization Excludes. |
| Autoptimize | Aggregate JS-files собирает всё в один файл и часто выносит его выше настроек. | Поле Exclude scripts from Autoptimize: cg-tracker. |
| Cloudflare Rocket Loader | Переносит выполнение всех скриптов на потом и меняет их порядок. Самая частая причина «тег стоит, визитов нет». | Атрибут data-cfasync="false" на теге либо выключенный Rocket Loader для домена. |
| Плагины «defer all JS» | Вешают defer на всё подряд, включая инлайн-настройки — счётчик стартует раньше, чем узнает аккаунт. | Исключение по имени файла или атрибут data-no-defer="1". |
Типичная картина: после включения кеша цифра визитов упала втрое, а доля рекламных визитов подскочила. Это не детектор ошибся — это часть страниц отдаётся из кеша со склеенным скриптом.
Кеш чистится после каждой правки: сначала плагин, потом Cloudflare. Иначе вы проверяете вчерашнюю страницу и делаете выводы по ней.
Проверка
Пять минут, и понятно — работает или нет
Откройте сайт в режиме инкогнито
Адрес с меткой: https://vash-sajt.com/?gclid=test123. Так визит попадёт в рекламные и будет виден в журнале отдельной строкой.
Смотрите вкладку Network
F12 → Network → фильтр collect. Должен быть запрос на /cg/collect.php со статусом 200. Пусто — скрипт не запустился, ищите его в оптимизаторе. Статус 403 или 404 — папка лежит не там.
Проверьте исходник страницы
Ctrl+U и поиск по cg-tracker. Для пути A рядом должен быть gtm.js, для пути B — ваш собственный тег в подвале.
Загляните в журнал панели
Строка визита появляется почти сразу. Оценка и причины дописываются в течение десяти минут — детектор проходит по свежим визитам с таким интервалом.
Тестовые визиты с gclid считаются рекламными и расходуют лимит тарифа. На «Детекторе» это до 10 000 визитов в месяц — на проверку хватит с запасом, но гонять сотни перезагрузок смысла нет.
Вопросы по WordPress
Обновление WordPress или темы снесёт установку?
У меня нет FTP, только админка WordPress.
Сайт на WooCommerce с большим каталогом — не замедлит?
А как быть с согласием на cookie?
У меня не WordPress, а Tilda или другой конструктор.
Посмотрите на свой трафик
Аккаунт создаётся бесплатно, без карты — платная подписка сама не включается. Мы ничего не блокируем, просто показываем, кто к вам приходит.