Если сайт сделан как одностраничное приложение, а текст политики обработки персональных данных подставляется JavaScript-ом уже в браузере, вы попадаете в неприятную ситуацию: живой посетитель документ видит, а любой простой HTTP-клиент получает по этому адресу пустой каркас без содержания. Так работают часть поисковых роботов и средства автоматизированного мониторинга. Формально по адресу что-то есть, фактически подтвердить наличие политики нельзя — а часть 2 статьи 18.1 152-ФЗ требует обеспечить именно возможность ознакомиться с документом. Ответственность идёт по части 3 статьи 13.11 КоАП РФ: для юридических лиц 30 000–60 000 ₽, наш сканер показывает как потолок 60 000 ₽. Хорошая новость в том, что чинится это точечно: переделывать сайт целиком не нужно, достаточно вынести одну страницу. Разбираем, в чём именно разница между тем, что видит браузер и что видит программа, как проверить свой сайт за минуту и какие есть варианты решения.
Проверьте, видна ли ваша политика простому HTTP-клиенту — бесплатно ←
Что происходит технически
Обычная страница приходит к посетителю уже готовой: сервер отдаёт HTML, в котором текст политики лежит прямо в разметке. Одностраничное приложение устроено иначе. Сервер отдаёт короткий документ-каркас — как правило, несколько строк разметки и подключение скриптов. Дальше работу делает браузер: выполняет JavaScript, запрашивает содержание отдельно и вставляет его в страницу. Человек видит результат и не догадывается, что первый ответ сервера был пустым.
Теперь посмотрите на то же самое глазами программы, которая просто запрашивает адрес и читает ответ. Она получает каркас. Скрипты она не выполняет — либо потому, что не умеет, либо потому, что это дорого делать в массовом обходе. В её представлении по адресу политики нет ни слова про обработку персональных данных.
Разница между этими двумя картинами и есть проблема. Она не зависит от того, насколько хорош ваш сайт и насколько аккуратно написан текст политики: содержание просто не доезжает до той стороны, которая проверяет.
Почему это риск, даже если посетители всё видят
Часть 2 статьи 18.1 152-ФЗ говорит о неограниченном доступе к документу. Спорить о том, обеспечен ли доступ, когда текст появляется только после выполнения скриптов в конкретном браузере, — заведомо неудобная позиция: доказывать придётся вам, а исходное впечатление проверяющей стороны будет «политики по ссылке нет».
Есть и вторая, более приземлённая сторона. Ровно та же механика ломает индексацию: страница, у которой в исходном HTML нет текста, попадает в поисковую выдачу хуже. Наконец, за этой же проблемой обычно тянутся соседние — если политика собирается на клиенте, то и текст согласия рядом с формой, и ссылка на политику из чекбокса нередко существуют только после выполнения скриптов. Как автоматизированная проверка вообще смотрит на сайт, разобрано в материале «Как бот РКН сканирует сайты».
Норма и сумма
- Требование: часть 2 статьи 18.1 152-ФЗ — политика опубликована, доступ к ней не ограничен.
- Ответственность: часть 3 статьи 13.11 КоАП РФ (редакция, действующая с 30.05.2025): граждане — 1 500–3 000 ₽, должностные лица — 6 000–12 000 ₽, ИП — 10 000–20 000 ₽, юридические лица — 30 000–60 000 ₽.
- Потолок в отчёте сканера: 60 000 ₽.
Это тот же состав, что и при полностью недоступной странице политики, и та же квалификация, что при её отсутствии. Разница только в причине: там страница сломана, здесь — отдаётся без содержания.
Как проверить свой сайт за минуту
- Откройте страницу политики в браузере.
- Нажмите Ctrl+U (или выберите в меню «Просмотр кода страницы» / «View page source»). Важно: не «Инспектор» и не «Просмотреть элемент» — они показывают уже собранную браузером страницу и всегда выглядят нормально. Нужен именно исходный код ответа сервера.
- В открывшемся окне нажмите Ctrl+F и поищите характерную фразу из своей политики: «персональных данных», «оператор», название вашей компании.
- Нашли — содержание отдаётся сервером, всё в порядке.
- Не нашли, а сам код состоит из пары десятков строк и списка подключаемых скриптов — текст подставляется на стороне браузера, и проблема подтверждена.
Дополнительная проверка для тех, кто дружит с командной строкой: запросите адрес политики любым консольным HTTP-клиентом и посмотрите тело ответа. Результат должен быть тем же самым — текст политики виден в ответе.
Как исправить, не переделывая сайт
Вариант 1 — статическая HTML-страница. Самый простой и надёжный: положите политику отдельным HTML-файлом по адресу вроде /privacy.html или /politika-obrabotki-pdn.html и ведите ссылку из футера на него. Приложение при этом не трогается вообще. Для документа, который меняется раз в год, отдельная статическая страница — вполне нормальное решение, а не костыль.
Вариант 2 — серверный рендеринг для одного маршрута. Современные фреймворки позволяют включить отдачу готового HTML для отдельных страниц, не меняя режим работы остального приложения. Если такая возможность в вашем стеке есть, включите её для маршрута политики: результат — сервер отдаёт страницу с текстом сразу.
Вариант 3 — предварительная генерация. Страница собирается один раз на этапе сборки и дальше отдаётся как обычный статический файл. Подходит документам, которые почти не меняются, — политика как раз такой.
Что бы вы ни выбрали, проверка результата одинаковая: откройте исходный код страницы и найдите в нём текст политики. Пока текст там не появился, задача не решена, как бы аккуратно ни выглядела страница в браузере.
Что заодно стоит проверить на SPA
- Текст согласия рядом с формой — он тоже часто подставляется скриптом. Если содержания нет в исходном HTML, автоматическая проверка форму «не увидит».
- Ссылка на политику из подписи чекбокса — должна быть обычной ссылкой, а не обработчиком клика на скрипте.
- Полнота самой политики. Технически исправленная страница должна ещё и содержать все обязательные разделы — сверьтесь с шаблоном политики обработки персональных данных.
- Отдельный адрес. У политики должен быть собственный адрес, который открывается прямым переходом, а не только кликом внутри приложения.
Короткий итог
Проблема не в фреймворке и не в качестве вашего сайта, а в том, что содержание доезжает не до всех. Одна страница, вынесенная в статический HTML или отданная с серверным рендерингом, снимает риск по части 2 статьи 18.1 152-ФЗ, попутно улучшает индексацию и стоит несколько часов работы разработчика. Проверить результат можно самому за минуту — просмотром исходного кода страницы.