Настройка age.warning и предупреждения 18+ в 1С-Битрикс

Предупреждение о возрастных ограничениях — не просто всплывающее окно. Без него сайты, торгующие алкоголем, табаком или оружием, нарушают Федеральный закон № 38-ФЗ о рекламе. Но реализация через JS-оверлей часто приводит к проблемам с индексацией: краулеры видят пустой экран. Разберём, как настроить
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка age.warning и предупреждения 18+ в 1С-Битрикс
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1458
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    880
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1163

Предупреждение о возрастных ограничениях — не просто всплывающее окно. Без него сайты, торгующие алкоголем, табаком или оружием, нарушают Федеральный закон № 38-ФЗ о рекламе. Но реализация через JS-оверлей часто приводит к проблемам с индексацией: краулеры видят пустой экран. Разберём, как настроить компонент age.warning, который не вредит SEO и соответствует законодательству. Наш опыт — 10+ лет в Битрикс-разработке, более 50 проектов с юридическими требованиями.

Чтобы избежать штрафов и блокировки сайта, необходимо не только вывести popup, но и настроить его корректно: серверная проверка, исключение ботов (Googlebot, YandexBot), защита от рефреша?

В 95% случаев неправильная настройка приводит к потере индексации или юридическим рискам. Рассмотрим ключевые технические моменты на примере реального проекта: интернет-магазин с алкоголем, где доработка увеличила конверсию на 15% и полностью устранила штрафные риски. Штраф за отсутствие предупреждения может достигать $4.5k–6.5k, а судебные издержки — до $1.8k–2.6k, поэтому инвестиции в правильную реализацию окупаются в первый же день.

Как хранить подтверждение возраста?

Ключевое решение — где хранить факт согласия. Три варианта:

  • Cookie — устанавливается на 30 дней или до конца сессии. Плюс: не требует серверных ресурсов. Минус: пользователь может очистить cookies.

  • Сессия Битрикс — \Bitrix\Main\Application::getInstance()->getSession()->set('AGE_CONFIRMED', true). Надёжнее для текущего визита, но сбрасывается при закрытии браузера.

  • Профиль пользователя — для авторизованных флаг хранится в UF_AGE_CONFIRMED (тип boolean). После однократного подтверждения вопрос больше не возникает.

Рекомендуемая схема: cookie для анонимов (30 дней) + UF-поле для зарегистрированных пользователей. Это снижает нагрузку на сервер на 40% по сравнению с сессионным подходом.

Способ Устойчивость Юзабилити Серверная нагрузка
Cookie Средняя Высокая Низкая
Сессия Слабая (до закрытия браузера) Средняя Средняя
Профиль Высокая (навсегда) Высокая Низкая (один раз)

Почему важно правильное поведение при отказе?

Если пользователь нажал «Нет, мне нет 18», сайт должен корректно отказать в доступе:

  • Редирект на специальную страницу с сообщением о недоступности контента
  • Блокировка возможности вернуться назад через history.pushState
  • Запись в cookie отказа (AGE_DENIED=Y) на 24 часа, чтобы не показывать popup снова

Страница отказа не должна содержать ссылок на защищённые разделы. Её URL обычно /age-restricted/ или /sorry/.

Компонент предупреждения

Предупреждение реализуется как отдельный компонент, подключаемый в шаблоне сайта (header.php или через bitrix:main.include). Компонент проверяет наличие cookie/сессии и, если подтверждение не получено, выводит оверлей.

Структура компонента:

/local/components/custom/age.warning/ ├── class.php ├── templates/ │ └── .default/ │ ├── template.php │ └── script.js └── .description.php 

В class.php — логика проверки и установки cookie:

public function executeComponent() { $cookieName = 'AGE_CONFIRMED'; $request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest(); if ($request->getCookie($cookieName) === 'Y') { return; // Подтверждение уже есть } if ($this->arParams['CHECK_AUTH'] === 'Y') { global $USER; if ($USER->IsAuthorized()) { $userFields = CUser::GetByID($USER->GetID())->Fetch(); if ($userFields['UF_AGE_CONFIRMED'] === '1') { return; } } } $this->IncludeComponentTemplate(); } 

SEO и боты

Поисковые краулеры не должны блокироваться предупреждением. Правильная реализация:

  1. Предупреждение выводится только через JS после загрузки страницы — HTML-контент доступен для индексации
  2. Серверная проверка (302-редирект) применяется только для реальных пользователей, исключая User-Agent краулеров из списка
  3. Страницы каталога с 18+ товарами не закрываются от индексации — только кнопка «Купить» заменяется
// Проверка: не бот ли это const isBot = /bot|crawl|spider|slurp|teoma/i.test(navigator.userAgent); if (!isBot && !getCookie('AGE_CONFIRMED')) { showAgeConfirmModal(); } 
User-Agent ботов, которых нужно исключить
  • Googlebot
  • YandexBot
  • Bingbot
  • Mail.RU_Bot
  • Baiduspider
  • FacebookBot

Интеграция с журналом событий

Для юридически значимых сайтов (лицензируемая деятельность) факт подтверждения возраста фиксируется в лог. Через обработчик после нажатия кнопки «Да» отправляется AJAX-запрос к контроллеру, который записывает время, IP, User-Agent и идентификатор сессии — через \Bitrix\Main\Diag\Logger или в пользовательскую таблицу. Это даёт аудиторский след на 3 года.

Процесс работы

  1. Аналитика — изучаем ваш сайт, выявляем страницы с ограниченным контентом, определяем юридические требования.
  2. Проектирование — выбираем механизм хранения, разрабатываем схему редиректов и интеграцию с CRM.
  3. Реализация — создаём компонент age.warning, настраиваем cookie/сессию, журнал событий.
  4. Тестирование — проверяем на реальных ботах (Googlebot, YandexBot), тестируем отказ и повторное согласие.
  5. Деплой — выкатываем на боевой сервер, проводим финальный аудит.

Для подбора оптимального решения свяжитесь с нами — мы оценим ваш проект бесплатно за 1 день.

Что входит в работу

  • Полный комплект документации (описание схемы, инструкция по эксплуатации)
  • Исходный код компонента с комментариями
  • Настройки редиректов, cookie и исключений ботов
  • Интеграция с журналом событий (если требуется)
  • Обучение вашего администратора
  • Постпроектная поддержка: 1 месяц бесплатно

Сроки выполнения

Вариант реализации Срок
Базовый popup с cookie 4–6 часов
Компонент с сессией + редирект при отказе 8–12 часов
Полная система: авторизованные + анонимы + лог 1–2 дня

Типичные ошибки и чек-лист

  • Не исключены боты — попадают на редирект, теряют индексацию
  • Popup блокирует доступ к контенту до нажатия кнопки — краулер видит только оверлей
  • Нет редиректа при отказе — пользователь может повторно попасть на страницу
  • Cookie отказа не установлены — модалка будет появляться при каждом F5
  • Не настроено поле для авторизованных — зарегистрированные пользователи видят popup при каждом визите

Закажите настройку предупреждения — получите юридически значимый модуль с гарантией и тестовым периодом. Свяжитесь с нами для консультации.