Марина уже выложила лендинг: политика есть, Яндекс.Метрика «считает», а cookie-баннер с одной кнопкой «Принять» оказался декорацией. В инкогнито до любого клика в Network уже летят запросы к mc.yandex.ru. За один вечер в Cursor можно собрать нижнюю плашку с «Принять» и «Отклонить», сохранить выбор в localStorage и запускать Метрику только после согласия – без npm, React и юриста.
Cookie-баннер на сайт нужен не ради красивой плашки, а чтобы дать явный выбор и не грузить аналитику до клика. Политика информирует, баннер спрашивает. Официальный пример Метрики часто копируют вслепую: tag.js грузится сразу, кнопки «Отклонить» нет. Правило cookie-banner.mdc, промпт в Agent и проверка в инкогнито закрывают этот затык за вечер.
В Яндекс Вордстат на 2026-07-10 кластер «cookie баннер» – 456 показов в месяц, «баннер cookie согласия» – 75, «согласие на cookie» – 1545. Люди ищут рабочую плашку, а не теорию. Гайды 2026 прямо пишут: скролл и закрытие крестиком не считаются согласием.
Если лендинга ещё нет, сначала соберите простой лендинг в Cursor AI без кода. Политику удобно держать рядом – в гайде про политику конфиденциальности в Cursor. Ниже – только баннер и отложенная Метрика.
Поймите задачу: политика не заменяет cookie-баннер

Боль звучит так: «у меня уже есть политика – зачем ещё плашка?» Политика рассказывает, что вы делаете с данными. Баннер cookie согласия даёт активный выбор: человек жмёт «Принять» или «Отклонить». Без клика аналитические cookies не должны стартовать.
На практике новичок путает три разные вещи. Галочка в форме заявки – согласие на персональные данные в этой форме. Cookie-баннер – про cookies и аналитику на всём сайте. Политика – текст-объяснение. Не смешивайте их в один абзац «продолжая пользоваться сайтом…».
Делайте: две равнозначные кнопки и ссылку на privacy. Не делайте: только «OK», pre-checked галочки и фразу «продолжая использование». Это типичная ошибка и по юридическим гайдам 2026, и в community-разборах Тильды.
Зафиксируйте правило cookie-banner.mdc, чтобы Cursor не тянул React

Страх «сломать сайт» появляется, когда Agent на запрос «добавь cookie-баннер» тащит React, npm или платный CMP. CMP – это готовый виджет согласия «из облака»; для маленького лендинга он часто лишний. Cursor Rules работают только как файлы .mdc в папке .cursor/rules/; обычный .md агент может игнорировать.
Откройте папку сайта (File → Open Folder) рядом с index.html и создайте .cursor/rules/cookie-banner.mdc с alwaysApply: true:
alwaysApply: true
description: Cookie banner static HTML onlyОбщий блок cookie-баннера и один JS для всех HTML-страниц. Стили через Tailwind CDN, без npm, React, Next.js, package.json и платных CMP. Текст про cookies + ссылка на политику. Кнопки «Принять» и «Отклонить» одного размера. Выбор в localStorage. Яндекс.Метрику не оставлять в head и noscript. Грузить tag.js только после «Принять». В футере ссылка «Настройки cookies».
Рекомендация: держите правило коротким и жёстким. Не просите «как в GDPR-CMP» и не соглашайтесь на package.json – иначе вместо плашки получите новый стек.
Соберите плашку в Agent: две кнопки и localStorage

localStorage – это маленькая «память» браузера на вашем домене: туда пишут ключ вроде cookie_consent=accepted или rejected, чтобы при обновлении страницы баннер не всплывал снова. Откройте Agent (Ctrl+I / Cmd+I) и дайте промпт без воды:
Добавь cookie-баннер на все страницы: текст про cookies и ссылка на политику, кнопки «Принять» и «Отклонить» одного размера, сохрани выбор в localStorage, при «Отклонить» аналитику не запускай. Один static HTML/JS, Tailwind CDN, без npm и React.
- Дождитесь общего блока баннера и скрипта на всех HTML-страницах.
- Откройте сайт двойным кликом или через ваш хостинг – без терминала.
- Проверьте, что обе кнопки видны на телефоне и не «прячут» отказ мелким серым текстом.
- Кликните «Отклонить»: плашка скрылась, Метрика молчит.
- Обновите страницу: выбор сохранился, баннер не всплыл снова.
Например, open-source баннеры вроде neiki-cookie-banner делают то же самое: consent в localStorage и отдельный хук, который «отпирает» скрипты аналитики только после Accept. Вам не нужно ставить библиотеку – достаточно того же паттерна на своих файлах.
Делайте равные кнопки. Не делайте dark pattern: огромный зелёный «Принять» и крошечный «Отклонить» в углу.
Отложите Яндекс.Метрику: уберите счётчик из head
Главная боль декоративного баннера – Метрика уже в head «как в справке». Официальный пример Яндекс.Метрики «Предупреждение о сборе статистики» действительно показывает плашку, но подключает https://mc.yandex.ru/metrika/tag.js сразу при открытии страницы и даёт только «Я согласен». Для практики 152-ФЗ 2026 этого мало: нужен жёсткий opt-in – сначала клик, потом скрипт.
Сделайте так:
- Найдите в head код Метрики и блок noscript с пикселем – удалите оба.
- Перенесите загрузку tag.js и вызов ym(…init) в обработчик кнопки «Принять».
- Если в localStorage уже accepted – запускайте Метрику при загрузке страницы без повторного баннера.
- При «Отклонить» не вызывайте init и не подгружайте tag.js.
- Если Метрику ещё не подключали, сначала пройдите гайд про Яндекс.Метрику на сайте в Cursor, затем вернитесь к отложенной загрузке.
Схема вечера:
Политика готова → правило cookie-banner.mdc → промпт в Agent → Метрика только после «Принять» → «Настройки cookies» в футере → проверка в инкогнито
В реальном проекте часто ломается noscript: UI баннера красивый, а пиксель в noscript уже стучит на mc.yandex.ru. Уберите его вместе с head-кодом.
Добавьте «Настройки cookies» и пройдите чек-лист в инкогнито
Человек может передумать. Без ссылки в футере ему пришлось бы чистить весь браузер. Добавьте «Настройки cookies»: клик очищает ключ localStorage и снова показывает баннер. Тот же приём есть в vanilla-баннерах на GitHub (атрибут вроде data-neiki-show-prefs).
Проверка без программиста – за две минуты:
- Откройте сайт в режиме инкогнито.
- Нажмите F12 → вкладка Network → фильтр mc.yandex.
- До клика по баннеру строк с mc.yandex.ru быть не должно.
- Нажмите «Принять» – появятся tag.js и запросы счётчика.
- В новом инкогнито нажмите «Отклонить» – запросов нет, выбор помнится после обновления.
| Проверка | PASS | FAIL |
|---|---|---|
| Кнопки на плашке | Есть «Принять» и «Отклонить» одного размера | Только «OK» / «Я согласен» |
| Network до клика | Нет mc.yandex.ru | tag.js или watch уже есть |
| После «Принять» | Метрика стартует | Счётчик молчит или ошибка в консоли |
| После «Отклонить» | Аналитика не грузится | Запросы всё равно идут |
| Футер | Есть «Настройки cookies» | Сменить выбор нельзя |
Критерий успеха простой: на всех HTML-страницах в инкогнито видна плашка со ссылкой на политику; до клика Network тихий; после «Принять» Метрика живая; после «Отклонить» – тишина; нет package.json и React. Если так – баннер cookie и кнопка отказа работают, а не украшают футер.
Честно говоря, это практика для малого сайта, а не юрконсультация. Если данные чувствительные – покажите схему юристу. Для старта без разработчиков этого вечера достаточно.
Что сделать дальше сегодня
Закрепите результат коротким чек-листом запуска:
- Обе кнопки читаются на мобиле, ссылка на политику открывается.
- Метрики нет в head и noscript; package.json не появился.
- «Настройки cookies» снова показывает баннер.
- Галочку в форме заявки не путаете с cookie-баннером – это разные согласия.
Если хотите быстрее собирать такие страницы без кода, загляните в курс Make.com и вайбкодинга на kv-ai.ru – там про Cursor и простые HTML-сайты.
Материал проверен: Артур Хорошев (CEO Maya AI, автор курса по Make.com и вайбкодингу).
Достоверность данных: справка Яндекс.Метрики про предупреждение о сборе статистики, гайды 152-ФЗ 2026 (152fz-audit, checkfz, help152), Cursor Docs Rules, Habr/community про consent+Метрика, GitHub neiki-cookie-banner; частотность «cookie баннер» и «согласие на cookie» – по Яндекс Вордстат на 2026-07-10.
Частые вопросы
Нужен ли cookie-баннер, если уже есть политика конфиденциальности?
Да. Политику оставьте как текст-объяснение, а баннер добавьте отдельно: две кнопки и блокировка аналитики до клика. Сегодня откройте сайт в инкогнито и проверьте, грузится ли Метрика до согласия.
Можно ли оставить только кнопку «Принять»?
Нельзя как рабочую схему согласия. Добавьте равнозначную «Отклонить» и при отказе не запускайте tag.js. Перегенерируйте плашку промптом с явным требованием двух кнопок одного размера.
Когда грузить Яндекс.Метрику?
Только после «Принять» или если в localStorage уже сохранён accepted. Вырежьте код из head и noscript, перенесите init в обработчик кнопки, затем проверьте Network на mc.yandex.
Чем cookie-баннер отличается от галочки в форме заявки?
Галочка закрывает согласие на персональные данные в конкретной форме. Баннер – cookies и аналитику на всём сайте. Не заменяйте одно другим: оставьте оба механизма на своих местах.
Как проверить баннер в инкогнито без программиста?
Инкогнито → F12 → Network → фильтр mc.yandex. До клика пусто, после «Принять» есть запросы, после «Отклонить» тишина. Если до клика уже есть строки – Метрика всё ещё в head.
Что делать, если Cursor снова предлагает React или CMP?
Остановите генерацию, усильте cookie-banner.mdc с alwaysApply: true и повторите промпт: «только static HTML/JS, без npm и React». Не принимайте package.json «на всякий случай».