В типовом интернет-магазине до согласия грузится больше стороннего кода, чем на любом другом сайте: аналитика, пиксели ретаргетинга, коллтрекинг, чат, карта пунктов выдачи, видеообзоры в карточке товара, рекомендательные блоки. Cookie-баннер сам по себе ничего из этого не останавливает — это окно с текстом, и если счётчик отработал до клика, согласие по статье 9 152-ФЗ получено задним числом, то есть не получено. При этом блокировать нужно не всё подряд: корзина, сессия и авторизация технически необходимы, и без них магазин перестаёт быть магазином. Граница проходит именно здесь, и большинство готовых модулей согласия её не проводят — они рисуют баннер, но не блокируют скрипты. Ниже — что в сборках на Битриксе, InSales и Tilda срабатывает до согласия, какие cookie трогать нельзя, где прячутся забытые коды и как проверить свой магазин за пять минут. Источники: 152-ФЗ, статья 13.11 КоАП.
Проверить бесплатно: что грузится в вашем магазине до согласия ←
Почему в магазине этот вопрос острее, чем на обычном сайте
Обычный корпоративный сайт обвешан двумя-тремя счётчиками. Интернет-магазин — это витрина, к которой за годы прирос маркетинговый стек: аналитика, реклама, ретаргетинг, коллтрекинг, чат, рекомендации, отзывы, карты. Каждый инструмент вставлялся отдельно, часто разными подрядчиками, и почти каждый работает по одной схеме: код в шаблон, срабатывание при загрузке страницы.
Второе отличие — у магазина есть настоящие технически необходимые cookie. У сайта-визитки их почти нет, и там можно блокировать всё подряд без последствий. В магазине так нельзя: заблокируете сессию — сломаете корзину и вход в личный кабинет.
Третье — цена ошибки выше. Магазин почти наверняка ведёт рекламу, а значит, передаёт идентификаторы посетителей рекламным системам. Это не «сбор обезличенной статистики», а передача данных третьим лицам, и делать её до согласия нельзя.
Что нельзя блокировать: технически необходимое
Этот список короткий, и он одинаков почти для всех платформ:
- cookie сессии — тот самый идентификатор, по которому сервер узнаёт посетителя между запросами;
- корзина — состав корзины, привязанный к сессии;
- авторизация в личном кабинете и признак «пользователь вошёл»;
- защита форм от подделки запроса — токен, который платформа кладёт в форму заказа;
- выбранный город, валюта, язык — если от них зависит витрина и цены;
- сам факт выбора в cookie-баннере — иначе баннер будет показываться на каждой странице бесконечно.
Обработка этих данных обосновывается не согласием, а тем, что без них невозможно ни исполнить договор, ни просто отдать работающую страницу. Спрашивать на них разрешение не нужно, и включать их в переключатели баннера тоже не нужно — это только запутывает покупателя.
Отдельно стоит сохранение состава корзины на будущее, между визитами. Сама корзина необходима для покупки; а вот привязка этой корзины к рекламному профилю, чтобы потом догонять человека объявлением, — уже нет. Это два разных действия с одними и теми же данными, и второе требует согласия.
Что блокировать обязательно
Всё, что собирает поведение или уходит наружу:
- веб-аналитика — счётчики посещаемости, вебвизоры, карты кликов;
- пиксели рекламных систем и ретаргетинга — самое частое нарушение в e-commerce;
- коллтрекинг — скрипт, подменяющий номер телефона на витрине;
- чаты, виджеты обратного звонка, «оставьте заявку» — они грузятся со сторонних доменов и ставят свои cookie;
- карты в блоке пунктов выдачи — подключаются через iframe, а не через script, и модулем согласия обычно не перехватываются;
- видеообзоры товаров с внешних видеохостингов — та же история с iframe;
- A/B-тесты, персонализация витрины, рекомендательные блоки от внешних сервисов;
- внешние шрифты и CDN сторонних библиотек — они передают IP посетителя на чужой сервер.
Технически всё это лечится одинаково: код не вставляется в разметку напрямую, а подключается скриптом после того, как посетитель дал согласие. Подробный разбор с механикой — в статье про блокировку скриптов до согласия. Специально про счётчик посещаемости — в статье про Яндекс.Метрику и согласие.
Где в типовых сборках прячутся забытые коды
Это практическая часть, ради которой стоит открыть свой магазин прямо сейчас.
Битрикс. Счётчики и пиксели исторически вставляют прямо в шаблон подвала — файл, который правит верстальщик и о котором не знает ни один модуль согласий. Второе место — контейнер тег-менеджера: внутри него может быть десяток тегов, добавленных маркетологом, и список этот нигде не ведётся. Третье — готовые модули из маркетплейса платформы: многие рисуют баннер и сохраняют выбор, но реальной блокировки не делают, потому что не знают о кодах в шаблоне.
InSales и другие SaaS-конструкторы. Здесь коды подключаются через настройки «внешние скрипты» или «интеграции», и типичная проблема в том, что интеграция включается одним переключателем и начинает работать сразу для всех посетителей. Плюс встроенная аналитика самой платформы, которая для владельца магазина выглядит частью движка, а по факту тоже собирает данные посетителей.
Tilda и подобные. Счётчики задаются в настройках проекта и вставляются в каждую страницу. Виджеты — блоками, и блок с картой или видео тянет сторонний iframe, который к скриптовой блокировке отношения не имеет.
Общее для всех: проверять надо не главную страницу. Проверяйте карточку товара (там видео и рекомендации), корзину и страницу оформления заказа (там коллтрекинг и карта пунктов выдачи). Именно на этих страницах в магазине больше всего стороннего кода — и именно их обычно не смотрят.
Как должен выглядеть работающий баннер магазина
Требования вытекают из статьи 9 152-ФЗ: согласие должно быть конкретным, информированным, сознательным и свободным.
- Реальный отказ. Кнопка «Отклонить» должна быть равнозначна кнопке «Принять» — а не спрятана вторым экраном. Если отказ ничего не меняет и аналитика грузится всё равно, свободы выбора нет.
- Никаких предустановленных отметок. Согласие выражается действием. Переключатели категорий по умолчанию выключены — это то же правило, что и с предустановленной галочкой в форме заказа.
- Ссылка на политику, которая открывается. Открывается — значит отдаёт нормальную HTML-страницу по прямой ссылке, а не PDF и не 404.
- Ничего не грузится до выбора, кроме технически необходимого.
- Хранение выбора вместе с датой и версией текста, чтобы при изменении политики спросить заново.
- Возможность передумать — ссылка на настройки cookie в подвале.
Общая механика баннера с кодом разобрана отдельно: cookie-баннер по 152-ФЗ. Про ответственность — штраф за cookie без согласия.
Проверка своего магазина за пять минут
- Откройте магазин в окне инкогнито. Ничего не нажимайте в баннере.
- Включите панель разработчика, вкладка «Сеть», обновите страницу.
- Посмотрите список доменов, к которым ушли запросы. Всё, что не ваш домен и не CDN вашей платформы, — кандидат в нарушения.
- Повторите на карточке товара, в корзине и на странице оформления заказа. Списки будут разными.
- Откройте вкладку с cookie и посмотрите, что появилось до клика. Технически необходимых должно быть немного, аналитических — ноль.
- Нажмите «Отклонить» и повторите шаги 3–5. Если после отказа ничего не изменилось, кнопка декоративная.
Шаг за шагом это делается вручную, но то же самое умеет делать наш бесплатный скан: он открывает магазин снаружи, фиксирует, какие трекеры сработали до согласия, находит формы без корректного согласия и проверяет, находится ли политика и открывается ли она по ссылке. Разница с чтением статьи в том, что вы получаете список нарушений на своём домене, а не общее описание проблемы.
Смежное чтение: персональные данные покупателей интернет-магазина, нужно ли магазину уведомлять РКН, маркетплейс: кто оператор.