Налаштування 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
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    880
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    805
  • 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 при кожному візиті

Замовте налаштування попередження — отримайте юридично значущий модуль з гарантією та тестовим періодом. Зв'яжіться з нами для консультації.