Любой сайт, на котором есть форма заявки или счётчик веб-аналитики, обрабатывает персональные данные посетителей. Чтобы не получить штраф по ст. 13.11 КоАП РФ, у каждой формы должен быть неотмеченный чекбокс отдельного согласия на обработку персональных данных, для рекламных рассылок — второй необязательный чекбокс, а аналитические скрипты вроде Яндекс Метрики должны загружаться только после того, как посетитель нажал «Принять» в cookie-баннере.
Ниже — практическое руководство для владельца сайта и разработчика со ссылками на Закон № 152-ФЗ и КоАП РФ в редакции, действующей в октябре 2026 года: почему прежние подписи под кнопкой больше не работают, как сверстать чекбоксы и cookie-баннер, что писать в лог согласий на сервере и какие сторонние скрипты незаметно создают трансграничную передачу данных.
Почему строка «Нажимая кнопку, вы соглашаетесь» больше не защищает
До осени 2025 года на тысячах сайтов под кнопкой «Отправить» стояла мелкая приписка: «Нажимая на кнопку, вы принимаете условия оферты, политики конфиденциальности и даёте согласие на обработку персональных данных и получение рассылок». С 1 сентября 2025 года вступил в силу Федеральный закон от 24.06.2025 № 156-ФЗ, который дополнил ч. 1 ст. 9 Закона № 152-ФЗ прямым требованием: согласие на обработку персональных данных должно быть оформлено отдельно от иных информации и (или) документов, которые подтверждает или подписывает субъект.
В сочетании с базовыми признаками согласия — оно должно быть конкретным, предметным, информированным, сознательным и однозначным — это меняет требования к вёрстке любой веб-формы:
- Нельзя склеивать согласие с офертой или договором. Подтверждение условий заказа в корзине и согласие на обработку персональных данных — два разных юридических действия.
- Нельзя прятать в одно согласие рекламную рассылку. По ч. 1 ст. 15 Закона № 152-ФЗ и ч. 1 ст. 18 Закона № 38-ФЗ «О рекламе» согласие на получение рекламы по сетям электросвязи (e-mail, SMS, мессенджеры, телефонные звонки) должно быть предварительным и самостоятельным.
- Нельзя ставить галочку заранее. Атрибут
checkedв HTML или автоподстановка галочки скриптом после загрузки страницы означают, что выбор сделал оператор, а не посетитель. По ч. 3 ст. 9 Закона № 152-ФЗ обязанность предоставить доказательство получения согласия лежит на операторе. - Ссылка в подписи у чекбокса должна вести на текст согласия и на политику. Если у формы есть только чекбокс «Согласен на обработку персональных данных» без ссылки на документ с перечнем данных, целями и сроками хранения, согласие трудно признать информированным.
| Что сделано на сайте | Какая норма нарушена | Штраф для ООО | Штраф для ИП |
|---|---|---|---|
| Форма собирает имя и телефон без согласия или с заранее отмеченной галочкой | ч. 1 ст. 6, ч. 1 ст. 9 152-ФЗ (ч. 1 ст. 13.11 КоАП) | 150–300 тыс. ₽ (повторно по ч. 1.1: 300–500 тыс. ₽) | 50–100 тыс. ₽ (повторно по ч. 1.1: 300–500 тыс. ₽) |
| Форма собирает сведения о здоровье (например, на сайте клиники) без письменного согласия | ч. 4 ст. 9, ст. 10 152-ФЗ (ч. 2 ст. 13.11 КоАП) | 300–700 тыс. ₽ (повторно по ч. 2.1: 1–1,5 млн ₽) | 100–300 тыс. ₽ (повторно: 500 тыс. – 1 млн ₽) |
| На сайте не опубликована политика обработки персональных данных или ссылка ведёт на 404 | ч. 2 ст. 18.1 152-ФЗ (ч. 3 ст. 13.11 КоАП) | 30–60 тыс. ₽ | 10–20 тыс. ₽ |
| В политике нет обязательных разделов (сроков хранения, целей, прав субъекта) | ч. 1 ст. 14, ч. 1 ст. 18.1 152-ФЗ (ч. 4 ст. 13.11 КоАП) | 40–80 тыс. ₽ | 20–40 тыс. ₽ |
Рекламная рассылка включена в общий чекбокс или галочка на рекламу обязательна (required) | ч. 1 ст. 18 38-ФЗ «О рекламе» (ч. 4.1 ст. 14.3 КоАП) | 300 тыс. – 1 млн ₽ | 20–100 тыс. ₽ |
| Форма требует лишние данные, без которых услугу можно оказать (паспорт, дата рождения в заявке на звонок) | ч. 5 ст. 5 152-ФЗ, п. 4 ст. 16 ЗоЗПП (ч. 7 ст. 14.8 КоАП) | 30–50 тыс. ₽ | 5–10 тыс. ₽ |
| Заявки из формы пишутся напрямую в зарубежную CRM или Google Таблицы | ч. 5 ст. 18 152-ФЗ (ч. 8 ст. 13.11 КоАП) | 1–6 млн ₽ (повторно по ч. 9: 6–18 млн ₽) | 1–6 млн ₽ (повторно: 6–18 млн ₽) |
Как сверстать форму заявки с двумя чекбоксами и сохранить доказательство
Инспектор Роскомнадзора при дистанционном мониторинге смотрит страницу глазами обычного посетителя и проверяет исходный код формы. Чтобы к форме не возникало претензий ни у РКН, ни у ФАС, разделите обязательное согласие на обработку заявки и добровольное согласие на маркетинг.
HTML-разметка двух чекбоксов
Первый чекбокс отвечает за обработку данных для ответа на обращение или расчёта заказа: у него стоит атрибут required, но нет checked. Второй чекбокс отвечает за рассылки акций и новостей: он остаётся необязательным и тоже не отмечен по умолчанию.
<form action="/api/lead" method="post" class="lead-form">
<label>
Ваше имя
<input type="text" name="name" autocomplete="name" required>
</label>
<label>
Телефон
<input type="tel" name="phone" autocomplete="tel" required>
</label>
<!-- 1. Обязательное отдельное согласие на обработку ПДн (без checked) -->
<label class="form-check">
<input type="checkbox" name="pd_consent" value="v2026-10" required>
<span>
Я даю <a href="/soglasie/" target="_blank" rel="noopener">согласие на обработку персональных данных</a>
и ознакомлен с <a href="/politika/" target="_blank" rel="noopener">Политикой обработки персональных данных</a>.
</span>
</label>
<!-- 2. Отдельное необязательное согласие на рекламу и рассылки (без required и без checked) -->
<label class="form-check">
<input type="checkbox" name="ad_consent" value="1">
<span>
Согласен получать информационные и рекламные сообщения об услугах и акциях.
</span>
</label>
<button type="submit">Отправить заявку</button>
</form>
Обратите внимание на две детали. Во-первых, ссылки ведут на две разные страницы: /soglasie/ и /politika/, и открываются в новой вкладке, чтобы человек не потерял введённый текст. Во-вторых, проверка чекбокса должна дублироваться на сервере: если скрипт злоумышленника или сбой в браузере отправит POST-запрос без поля pd_consent, сервер обязан вернуть ошибку 400 и не сохранять персональные данные.
Что должно быть на странице «Согласие на обработку персональных данных»
Короткая подпись под формой не вмещает всех сведений, которые делают согласие предметным и информированным. Поэтому полный текст выносят на отдельную страницу /soglasie/. Даже когда закон не требует строгой письменной формы по ч. 4 ст. 9, опора на её структуру закрывает вопросы проверяющих:
- Кому даётся согласие: полное наименование организации или ФИО индивидуального предпринимателя, ИНН, ОГРН (ОГРНИП) и адрес оператора.
- Конкретные цели обработки: например, «обработка входящей заявки с сайта, обратная связь по телефону или в мессенджере, подготовка коммерческого предложения». Избегайте размытых фраз вроде «повышение качества обслуживания».
- Точный перечень данных: только те поля, которые реально есть в формах сайта (имя, номер телефона, адрес электронной почты, текст сообщения, технические идентификаторы cookie и IP-адрес).
- Перечень действий с данными: сбор, запись, систематизация, накопление, хранение, уточнение, использование, передача по поручению оператора, блокирование, удаление и уничтожение.
- Лица, которым данные передаются по поручению (ч. 3 ст. 6): хостинг-провайдер в РФ, российская CRM-система, сервис почтовых уведомлений — с указанием их наименований и адресов.
- Срок действия согласия и порядок его отзыва: конкретный срок (например, 3 года с момента отправки заявки либо до достижения цели обработки) и электронный адрес, на который достаточно прислать свободное письмо для отзыва согласия и уничтожения данных в течение 30 дней (ч. 5 ст. 21 Закона № 152-ФЗ).
Что записывать в базу данных при отправке формы
Если посетитель пожалуется в Роскомнадзор или ФАС, что не оставлял заявку и не подписывался на рассылку, скриншот пустой формы на сайте доказательством не станет. Оператор должен показать запись из базы данных или журнала событий, привязанную к конкретной редакции текста согласия:
CREATE TABLE leads (
id BIGSERIAL PRIMARY KEY,
name TEXT NOT NULL,
phone TEXT NOT NULL,
email TEXT,
page_url TEXT NOT NULL,
consent_version TEXT NOT NULL, -- например, 'v2.1 от 01.09.2026'
consent_text_url TEXT NOT NULL, -- 'https://site.ru/soglasie/'
ad_consent BOOLEAN NOT NULL DEFAULT FALSE,
consented_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
ip INET NOT NULL,
user_agent TEXT
);
Храните старые редакции страниц /soglasie/ и /politika/ с датами утверждения. Когда вы меняете состав полей или подключаете новую CRM, выпускайте новую версию документа (например, v2.2 от 31.10.2026), чтобы по полю consent_version всегда было видно, под каким именно текстом поставил галочку конкретный клиент.
Cookie-баннер и Яндекс Метрика: уведомление или согласие до загрузки счётчика
В российском праве нет отдельного «закона о cookie», но п. 1 ст. 3 Закона № 152-ФЗ определяет персональные данные как любую информацию, относящуюся к прямо или косвенно определённому или определяемому физическому лицу. Идентификаторы аналитических систем (_ym_uid и _ym_d у Яндекс Метрики, _ga у Google Analytics, tmr_lvid у Top.Mail.Ru) в связке с IP-адресом, параметрами браузера и историей просмотренных страниц позволяют выделить конкретного посетителя, поэтому практика Роскомнадзора и судов относит их к персональным данным.
Отсюда следует важное различие между двумя видами файлов cookie:
- Технические (строго необходимые) cookie: идентификатор сессии авторизованного пользователя, содержимое корзины интернет-магазина, токен защиты от CSRF-атак, выбранный город и сама запись о том, какую кнопку посетитель нажал в cookie-баннере. Без них сайт технически не может исполнить запрос пользователя, поэтому блокировать их до нажатия кнопки не нужно.
- Аналитические и маркетинговые cookie: счётчики посещаемости, вебвизор, пиксели ретаргетинга, сквозная аналитика и коллтрекинг. Для работы сайта они не обязательны, а их единственная задача — учёт действий посетителя.
Типичная ошибка на 9 из 10 сайтов выглядит так: внизу экрана висит плашка «Мы используем cookie, продолжая пользоваться сайтом, вы соглашаетесь», а код Яндекс Метрики вставлен прямо в <head>. Если открыть такой сайт в режиме инкогнито и посмотреть вкладку Application → Cookies в инструментах разработчика до любого клика, в браузере уже лежат _ym_uid и _ym_d, а на серверы mc.yandex.ru ушёл первый пакет данных. То есть обработка началась до согласия.
Код cookie-баннера с отложенной загрузкой Яндекс Метрики
Безопасная схема устроена просто: в баннере есть две равнозначные кнопки («Принять» и «Отклонить необязательные»), а скрипт Яндекс Метрики создаётся и подключается только после согласия. До клика или при отказе ни один запрос к mc.yandex.ru не уходит:
<div id="cookie-banner" class="cookie-banner" hidden>
<p>
Мы используем технические cookie для работы сайта и аналитические cookie Яндекс Метрики,
чтобы понимать, какие страницы полезны. Подробности — в
<a href="/politika/">Политике обработки персональных данных</a>.
</p>
<div class="cookie-banner__actions">
<button type="button" id="cookie-accept">Принять все</button>
<button type="button" id="cookie-reject">Только обязательные</button>
</div>
</div>
<script>
(function () {
var STORAGE_KEY = 'cookie_consent_2026';
var METRIKA_ID = 12345678; // подставьте номер вашего счётчика
var banner = document.getElementById('cookie-banner');
function startMetrika() {
if (window.__ymLoaded) return;
window.__ymLoaded = true;
(function(m,e,t,r,i,k,a){
m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
k=e.createElement(t),a=e.getElementsByTagName(t)[0];
k.async=1;k.src=r;a.parentNode.insertBefore(k,a);
})(window, document, 'script', 'https://mc.yandex.ru/metrika/tag.js', 'ym');
window.ym(METRIKA_ID, 'init', {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
}
var choice = localStorage.getItem(STORAGE_KEY);
if (choice === 'accepted') {
startMetrika();
} else if (!choice && banner) {
banner.hidden = false;
}
document.getElementById('cookie-accept')?.addEventListener('click', function () {
localStorage.setItem(STORAGE_KEY, 'accepted');
if (banner) banner.hidden = true;
startMetrika();
});
document.getElementById('cookie-reject')?.addEventListener('click', function () {
localStorage.setItem(STORAGE_KEY, 'rejected');
if (banner) banner.hidden = true;
});
})();
</script>
Именно по такой схеме мы настроили аналитику в интернет-магазине производителя химии для бассейнов КЕНАЗ и на сайте арбориста DerevaNet: при первом заходе посетитель видит аккуратную плашку с выбором, а счётчик Яндекс Метрики и цели подключаются только после нажатия «Принять».
Незаметная трансграничная передача: Google Fonts, reCAPTCHA, карты и CDN
Даже если сервер вашего сайта физически стоит в московском или петербургском дата-центре, страница может передавать персональные данные за рубеж без вашего ведома. Как только браузер посетителя встречает в HTML-коде тег <script src="…">, <link rel="stylesheet" href="…"> или <iframe src="…"> с внешним доменом, он напрямую обращается к чужому серверу и передаёт ему IP-адрес посетителя, User-Agent, адрес текущей страницы (Referer) и заголовки браузера.
Если сервер получателя находится за пределами России, возникает трансграничная передача персональных данных (ст. 12 Закона № 152-ФЗ). С 1 марта 2023 года оператор обязан до начала такой передачи подать в Роскомнадзор отдельное уведомление о намерении осуществлять трансграничную передачу. А если страна получателя не входит в перечень государств, обеспечивающих адекватную защиту прав субъектов (США и большинство стран ЕС в него не входят), передавать туда данные нельзя в течение 10 рабочих дней пока ведомство рассматривает уведомление, причём РКН вправе передачу запретить.
На практике в 95% случаев бизнесу на сайте вообще не нужна трансграничная передача — внешние вызовы остались в коде по инерции от старых шаблонов и плагинов. Проще и дешевле один раз убрать зарубежные зависимости, чем подавать уведомление по ст. 12 и обосновывать меры защиты у иностранного подрядчика:
| Зарубежный ресурс в коде сайта | Почему возникает риск по 152-ФЗ | Чем заменить на сайте |
|---|---|---|
fonts.googleapis.com и fonts.gstatic.com (Google Fonts) | При каждом открытии страницы браузер скачивает CSS и файлы шрифтов с серверов Google в США и Европе, передавая IP посетителя | Скачать файлы .woff2 на свой сервер и подключить через @font-face в собственном CSS (заодно ускоряет загрузку за счёт отсутствия лишнего DNS-запроса) |
www.googletagmanager.com и www.google-analytics.com (GA4, GTM) | Прямой сбор поведенческих данных и IP-адресов граждан РФ на серверах Google LLC в США | Удалить GA4 и GTM; использовать Яндекс Метрику и Top.Mail.Ru с загрузкой после согласия в cookie-баннере |
www.google.com/recaptcha и hcaptcha.com | Скрипт капчи собирает отпечаток браузера, движение мыши, cookie и IP-адрес и отправляет на зарубежные серверы до отправки формы | Яндекс SmartCaptcha (российское юрлицо и серверы в РФ) либо серверная защита формы (honeypot-поля, лимит запросов по IP и проверка времени заполнения) |
cdnjs.cloudflare.com, unpkg.com, jsdelivr.net | Подгрузка библиотек (jQuery, Swiper, GSAP, FontAwesome) с зарубежных CDN передаёт IP каждого посетителя | Положить используемые .js и .css файлы в папку /assets/ своего сайта |
| Встроенные плееры YouTube и Vimeo, карты Google Maps | <iframe> загружает сторонние скрипты и трекинговые cookie даже тогда, когда пользователь не нажимал кнопку Play | Собственный HTML5-плеер (тег <video> со своего сервера), VK Видео или Rutube; для карт — Яндекс Карты или 2ГИС |
Пиксели и виджеты Meta Platforms Inc. (connect.facebook.net) | Организация признана экстремистской и запрещена в РФ; помимо нарушения 152-ФЗ создаёт прямые правовые риски | Полностью вычистить из шаблона и диспетчера тегов, заменить на пиксель ВКонтакте |
| Отправка заявок напрямую в Google Таблицы, Airtable, Notion или зарубежную CRM | Нарушение локализации баз данных при сборе (ч. 5 ст. 18 152-ФЗ): штраф по ч. 8 ст. 13.11 КоАП от 1 до 6 млн ₽ | Записывать заявки сначала в базу на российском VPS или в российскую CRM (Битрикс24, amoCRM, собственной разработки) |
17 разделов политики обработки персональных данных, которые ищет проверка
Опубликовать любой скачанный из интернета файл «Политика конфиденциальности» недостаточно. Во-первых, сам закон в ч. 2 ст. 18.1 Закона № 152-ФЗ называет этот документ «политикой оператора в отношении обработки персональных данных» — именно так стоит озаглавить страницу, чтобы у проверяющего не было повода считать, что на сайте выложена общая декларация о конфиденциальности. Во-вторых, ссылка на политику должна стоять в сквозном подвале всех страниц сайта, включая отдельные рекламные лендинги и квизы.
Когда наш аудитор 152-ФЗ разбирает текст политики на сайте, он проверяет наличие 17 смысловых блоков, вытекающих из ст. 6, 9, 12, 14, 18, 18.1, 19 и 21 Закона № 152-ФЗ:
- Реквизиты оператора: полное наименование ООО или ФИО ИП, ИНН, ОГРН/ОГРНИП, адрес и контактный e-mail для обращений субъектов.
- Ссылка на Федеральный закон от 27.07.2006 № 152-ФЗ в преамбуле документа.
- Цели обработки персональных данных — отдельно по каждой задаче (обработка заявок с сайта, исполнение договора, рассылки, веб-аналитика).
- Правовые основания обработки (согласие субъекта, заключение и исполнение договора по инициативе субъекта, исполнение обязанностей по закону).
- Категории и точный перечень обрабатываемых данных под каждую цель (без лишних формулировок «и иные данные»).
- Категории субъектов персональных данных (посетители сайта, клиенты, контрагенты, соискатели).
- Способы обработки (автоматизированная или смешанная обработка с передачей по внутренней сети и сети Интернет).
- Сроки обработки и хранения данных с привязкой к достижению цели, истечению срока согласия или срокам хранения документов по закону.
- Порядок уничтожения персональных данных по достижении цели или при отзыве согласия (в срок до 30 дней по ч. 4–5 ст. 21 Закона № 152-ФЗ).
- Сведения о реализуемых мерах защиты (правовые, организационные и технические меры по ст. 18.1 и 19, включая шифрование канала HTTPS, разграничение доступов и учёт носителей).
- Права субъекта персональных данных (получение информации об обработке, уточнение, блокирование и уничтожение данных по ст. 14).
- Порядок отзыва согласия с указанием электронного и почтового адреса оператора (ч. 2 ст. 9).
- Порядок направления запросов субъектом и срок ответа оператора (10 рабочих дней с момента получения запроса с возможностью мотивированного продления не более чем на 5 рабочих дней по ч. 1 ст. 20).
- Описание использования файлов cookie и метрических программ с перечислением конкретных систем (например, Яндекс Метрика, ООО «ЯНДЕКС»).
- Передача данных третьим лицам по поручению оператора (ч. 3 ст. 6): хостинг, CRM, служба доставки, платёжный агрегатор.
- Условия трансграничной передачи данных (ст. 12) либо прямое указание, что трансграничная передача оператором не осуществляется.
- Сведения о локализации баз данных на территории РФ (ч. 5 ст. 18) и дата утверждения действующей редакции документа внизу страницы.
Как проверить свой сайт за 5 минут
Вы можете провести первичную проверку самостоятельно в любом браузере на компьютере:
- Откройте сайт в окне «Инкогнито», нажмите
F12(илиCmd + Option + Iна Mac) и перейдите на вкладку Network. Перезагрузите страницу, не нажимая никаких кнопок на сайте. - Посмотрите список доменов в колонке Domain: если там сразу появились
mc.yandex.ru,google-analytics.com,fonts.googleapis.comилиcdnjs.cloudflare.com, сайт грузит счётчики до согласия и обращается к зарубежным хостам. - Откройте вкладку Application → Cookies: до нажатия кнопки «Принять» в cookie-баннере там не должно быть аналитических кук
_ym_uid,_gaили_fbp. - Прокрутите страницу к каждой форме (включая всплывающие окна «Заказать звонок» и квизы): проверьте, что галочка согласия не отмечена заранее, кнопка отправки не срабатывает без неё, а ссылки ведут на живые страницы согласия и политики.
- Проверьте свою компанию или ИП по ИНН в реестре операторов Роскомнадзора.
Чтобы не искать внешние скрипты и пропущенные разделы политики вручную, запустите наш бесплатный аудитор сайта на 152-ФЗ. Он обходит главную и внутренние страницы сайта, находит все формы и чекбоксы, проверяет установку cookie до согласия, выписывает все сторонние домены с их юрисдикцией, сверяет текст политики по 17 разделам, определяет страну сервера по IP и ищет оператора по ИНН в реестре РКН. А внутренние документы компании (приказы, журналы, модели угроз) можно проверить в анкете самопроверки к проверке РКН из 75 контрольных вопросов.
Все остальные законы 2026 года, касающиеся владельцев сайтов (авторизация, рекомендательные алгоритмы, русский язык и правила дистанционной торговли), мы собрали в обзорной статье «Что должно быть на сайте по закону в 2026 году». Если аудитор нашёл замечания, а штатного разработчика нет — приведём формы, cookie-баннер, шрифты и политику в порядок в рамках поддержки сайта от 5 000 ₽ в месяц.