Баннер согласия на cookie для сайта на WordPress
Как подключить баннер согласия на cookie на WordPress: через плагин вставки кода или в header.php дочерней темы, почему важен порядок относительно wp_head() и какие cookie на самом деле ставит сам WordPress.
После установки счётчики на сайте WordPress не запустятся, пока посетитель не нажмёт «Принять», а каждое его решение попадёт в журнал.
Если вы не редактируете файлы темы — поставьте любой плагин из категории вставки кода в head (в каталоге WordPress их несколько, подойдёт любой). Мы не участвуем в их разработке и ничего конкретного не рекомендуем.
В настройках плагина есть поле для кода, который выводится в head. Вставьте туда строку и, если плагин позволяет задать приоритет вывода, поставьте наименьшее значение — код должен идти раньше счётчиков.
Этот способ переживает обновление темы: код лежит в плагине, а не в её файлах.
header.php дочерней темы
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<!-- LoveCookie -->
<script src="https://app.lovecookie.ru/embed-script/SITE_ID.js"></script>
<?php wp_head(); ?>
</head>Строка обязана стоять выше wp_head(). Если поставить ниже, баннер появится, но Метрика успеет отработать до согласия — и проверка это покажет.
async или defer. С ними загрузчик может стартовать позже счётчиков, и блокировка не сработает.- Откройте место для вставки кода
Либо настройки плагина вставки кода в head, либо header.php дочерней темы: Внешний вид → Редактор файлов темы → header.php. Какой путь ваш — выбрано переключателем выше.
Внешний вид→Редактор файлов темы→header.phpЧерез FTP или репозиторий:
/wp-content/themes/{дочерняя-тема}/header.php - Вставьте строку выше wp_head()
Строка должна выполниться раньше счётчиков. В теме это означает «выше вызова wp_head()», в плагине — наименьший приоритет вывода. Именно порядок, а не сам факт вставки, определяет, успеет ли счётчик отработать до согласия.
- Очистите кэш
Сбросьте кэш в плагине кэширования, а также в панели хостинга и в CDN, если они используются. Иначе часть посетителей продолжит получать сохранённую страницу без загрузчика. Проверять установку имеет смысл только после сброса.
- Проверьте установку
Мы откроем сайт и посмотрим, найден ли загрузчик, где он стоит и какие счётчики срабатывают до согласия.
Откройте header.php дочерней темы и вставьте строку внутрь head, выше вызова wp_head(). Правьте именно дочернюю тему: изменения в родительской пропадут при первом же её обновлении.
Если дочерней темы нет, а тема получает обновления — используйте вариант с плагином вставки кода. Так вы не потеряете строку при обновлении.
Альтернатива для разработчика — хук wp_head с приоритетом 0 в functions.php дочерней темы. Приоритет важен: с ним строка выводится раньше кода плагинов.
Правьте дочернюю тему. Строка, добавленная в родительскую, исчезнет при её обновлении.
На wordpress.com редактирование темы и установка плагинов доступны с тарифа Business.
При мультисайте строку нужно добавить для каждого сайта сети отдельно.
Не добавляйте к тегу async или defer: с ними загрузчик может стартовать позже счётчиков.
Какие cookie ставит сам WordPress
Мы открыли 17 клиентских сайтов на WordPress как обычный посетитель и не нашли ни одного cookie ядра WordPress. Все cookie ниже появляются только после входа в систему, отправки комментария или добавления товара в корзину — то есть после осознанного действия. Ни одно из них не требует баннера, и загрузчик их не трогает.
| Cookie | Что делает | Кто ставит | Основание |
|---|---|---|---|
wordpress_logged_in_* | сессия администратора или зарегистрированного пользователя | сервер, ядро WordPress | обязательная |
wp-settings-* | настройки интерфейса админки для конкретного пользователя | сервер, ядро WordPress | обязательная |
comment_author_* | подставляет имя и почту в форму комментария при повторном визите | сервер, ядро WordPress | обязательная |
woocommerce_cart_hash | содержимое корзины WooCommerce | сервер, WooCommerce | обязательная |
wp_woocommerce_session_* | привязка корзины и оформления заказа к посетителю | сервер, WooCommerce | обязательная |
Всё остальное, что оказалось на этих сайтах, ставили не WordPress, а плагины и внешние счётчики: аналитика, коллтрекинг, определение источника перехода. Вот именно ими и управляет загрузчик — их состав на вашем сайте покажет проверка выше.
Плагин-баннер и управление загрузкой — в чём разница
В каталоге WordPress есть решения обоих классов. Сравниваем классы, а не конкретные плагины; что делает установленный у вас — покажет проверка выше.
| Что сравниваем | Плагин-баннер | Управление загрузкой и журнал согласий |
|---|---|---|
| Показывает уведомление о cookie | Да | Да |
| Задерживает выполнение счётчиков до согласия | Зависит от решения, чаще нет | Да |
| Сохраняет, на что именно согласился посетитель | Обычно только факт закрытия | Да, по категориям |
| Где хранится журнал согласий | В базе того же сайта | Во внешнем сервисе, отдельно от сайта |
| Список трекеров | Обновляется вместе с плагином | Обновляется на стороне сервиса, без обновления сайта |
| Влияние на скорость сайта | Ещё один плагин в загрузке PHP | Одна строка, серверный код не выполняется |
В таблице только проверяемые технические различия. Мы не оцениваем соответствие чужих решений закону и не называем конкретные плагины.
Частые вопросы
Счётчики, которыми управляет загрузчик, не выполняются, а решение записывается в журнал. Cookie входа, комментариев и корзины продолжают работать: они появляются только после действия самого посетителя и согласия не требуют.
Если вставить её в родительскую тему — пропадёт при первом же обновлении. Поэтому либо дочерняя тема, либо плагин вставки кода: в обоих случаях обновление темы строку не затрагивает.
Запустите проверку выше по адресу вашего сайта. Она покажет, срабатывают ли счётчики до согласия. Если срабатывают — баннер показывается, но загрузку не контролирует, и подтвердить состав согласия по нему нельзя.
Да. Строку нужно добавить для каждого сайта сети, а в личном кабинете завести их отдельно — журнал согласий по каждому сайту ведётся свой.
Строка стоит ниже wp_head() или ниже кода счётчика. Поднимите её выше и очистите кэш. Если код вставлен плагином — задайте плагину наименьший приоритет вывода. Проверка покажет, какие именно счётчики объявлены раньше загрузчика.
На стороне WordPress не выполняется ничего: это обычный тег script, серверного кода и запросов к базе он не добавляет.
Нет. Cookie корзины и сессии WooCommerce относятся к техническим, загрузчик их не блокирует и не удаляет.