Сканировать

Как работает КириллоСкан

Детальный разбор технологии автоматического сканирования сайтов на соответствие Федеральному закону 168-ФЗ: от ввода URL до формирования отчёта.

Шесть этапов сканирования

Каждая проверка проходит через последовательность технологических этапов, обеспечивающих точность и полноту анализа

1

Ввод URL

Укажите адрес через веб-форму, Telegram-бота или API. Система принимает как отдельные страницы, так и доменные имена для полного обхода.

2

Загрузка страницы

Headless-браузер открывает страницу с полным рендерингом JavaScript, эмулируя реальное устройство пользователя.

3

Разбор DOM

Парсер выделяет все текстовые элементы и классифицирует их: навигация, кнопки, формы, карточки, баннеры, meta-теги.

4

Лингвоанализ

Каждый фрагмент проходит проверку на язык, наличие иностранных терминов и корректность русскоязычных дубликатов.

5

Классификация

Нарушения ранжируются по критичности: высокая, средняя, низкая. Исключения отфильтровываются автоматически.

6

Отчёт

Результат формируется в виде структурированного отчёта с рекомендациями по исправлению каждого нарушения.

Этап 1. Приём и валидация URL

Процесс сканирования начинается с того, что пользователь передаёт системе адрес страницы или домена для проверки. Это можно сделать тремя способами: через форму на главной странице сайта, отправив ссылку Telegram-боту или вызвав метод API программно.

На этапе валидации система выполняет несколько предварительных проверок. Прежде всего проверяется корректность формата URL: наличие допустимой схемы (http или https), валидность доменного имени, отсутствие запрещённых символов. Затем система проверяет доступность ресурса — выполняется HEAD-запрос для получения статуса ответа и заголовков.

Если указан домен целиком (без конкретного пути), система переходит в режим обхода: начиная с главной страницы, краулер обнаруживает внутренние ссылки и формирует очередь страниц для анализа. Глубина обхода и максимальное количество страниц определяются тарифным планом пользователя: от 1 страницы на бесплатном плане до неограниченного количества на тарифе «Агентство».

Система также определяет технологический стек сайта: CMS, фреймворк, наличие SPA-архитектуры. Это влияет на стратегию загрузки и парсинга — например, для React- или Vue-приложений требуется дополнительное ожидание завершения рендеринга.

Этап 2. Загрузка и рендеринг

После валидации страница загружается в headless-браузер на основе Chromium. Это принципиально отличает КириллоСкан от простых HTTP-парсеров: мы видим страницу так же, как её видит реальный посетитель. Все JavaScript-скрипты выполняются, AJAX-запросы завершаются, динамический контент подгружается.

Браузер эмулирует стандартное десктопное разрешение экрана (1920 x 1080) и типичный user-agent. При этом система умеет распознавать и обрабатывать ряд специфических сценариев:

Lazy loading. Изображения и текстовые блоки, загружаемые при прокрутке страницы, обрабатываются путём программной эмуляции скролла до конца документа. Это гарантирует, что элементы из нижней части страницы не будут пропущены.

Всплывающие окна. Модальные окна, баннеры с согласием на cookie, промо-поп-апы — все они перехватываются и анализируются отдельно. Текст в таких окнах подлежит проверке наравне с основным контентом.

Динамические меню. Выпадающие меню, мега-меню и навигационные панели активируются через программную эмуляцию наведения курсора. Скрытые до наведения элементы извлекаются и проверяются.

SPA и динамический контент. Для одностраничных приложений система ожидает завершения всех сетевых запросов и стабилизации DOM-дерева. Таймаут ожидания настраивается адаптивно: от 5 до 30 секунд в зависимости от сложности приложения.

Этап 3. Парсинг DOM-структуры

После полной загрузки страницы начинается структурный разбор DOM-дерева. Парсер обходит все узлы документа и выделяет текстовые элементы, группируя их по семантическим категориям.

Навигация и меню. Элементы внутри тегов <nav>, <header>, а также ссылки с ролью навигации. Приоритет проверки — высокий, так как навигация видна на каждой странице сайта.

Кнопки и элементы призыва к действию. Теги <button>, <a> с соответствующими классами, элементы с ролью button. CTA-элементы часто содержат англоязычные надписи: «Buy now», «Add to cart», «Subscribe».

Формы. Поля ввода, их плейсхолдеры, метки (label), тексты валидации, кнопки отправки. Плейсхолдеры — одно из самых частых мест нарушений, так как разработчики нередко оставляют их на английском.

Карточки товаров и услуг. Названия, описания, характеристики, статусы (in stock, out of stock), кнопки действий. Для e-commerce-сайтов это ключевая категория проверки.

Баннеры и промо-блоки. Текстовый контент внутри рекламных блоков, акционных баннеров, слайдеров. Часто содержат англоязычные слоганы — «Sale», «New collection», «Best price».

Подвал сайта (footer). Ссылки, копирайт, юридическая информация, контактные данные. Проверяется с учётом того, что footer отображается на каждой странице.

Meta-теги и SEO-элементы. Title, description, alt-атрибуты изображений, Open Graph теги. Хотя они не видны пользователю напрямую, 168-ФЗ распространяется и на мета-информацию, индексируемую поисковыми системами.

Cookie-баннеры и уведомления. Тексты согласия на обработку данных, уведомления о конфиденциальности. Часто используют шаблоны на английском языке без адаптации.

Этап 4. Лингвистический анализ

Каждый извлечённый текстовый фрагмент передаётся в модуль лингвистического анализа. Это ядро системы, определяющее точность результатов сканирования.

Определение языка. Первым шагом анализатор определяет основной язык текста. Используется комбинация статистического метода (на основе n-грамм) и словарного подхода. Для коротких текстов (1-3 слова) приоритет отдаётся словарному методу, так как статистика на малых объёмах ненадёжна.

Выделение иностранных лексем. Из текста извлекаются все слова и словосочетания, не принадлежащие русскому языку. При этом система умеет различать транслитерированные заимствования («менеджер», «маркетинг»), которые являются частью русского языка, и иностранные слова в оригинальной графике («manager», «marketing»), подпадающие под требования 168-ФЗ.

Проверка исключений. Не все иностранные слова являются нарушениями. Закон предусматривает ряд исключений: зарегистрированные товарные знаки, общепринятые аббревиатуры (HTML, CSS, URL), технические стандарты, имена собственные. Анализатор сверяет каждое обнаруженное иностранное слово с базой исключений.

Контекстный анализ. Система учитывает контекст употребления. Слово «Sale» в заголовке баннера — это нарушение. Но тот же термин внутри URL-адреса или в атрибуте class HTML-элемента нарушением не является. Контекстный анализатор определяет, обращён ли текст к конечному пользователю или является техническим элементом разметки.

Подбор замен. Для каждого обнаруженного нарушения система подбирает русскоязычный аналог из словаря замен. Словарь содержит тысячи пар «иностранный термин — русский аналог», сгруппированных по отраслям: e-commerce, HoReCa, финансы, IT, бьюти-индустрия.

Этап 5. Классификация и приоритизация

После лингвистического анализа каждое обнаруженное нарушение получает категорию критичности. Система использует трёхуровневую шкалу.

Высокая критичность. Иностранные слова в элементах, напрямую обращённых к потребителю и влияющих на принятие решения о покупке или использовании услуги: кнопки действий, названия товаров, описания услуг, цены и условия. Такие нарушения с наибольшей вероятностью привлекут внимание проверяющих органов.

Средняя критичность. Иностранные слова в навигации, баннерах, вспомогательных текстах. Эти элементы видны пользователю, но не являются основной потребительской информацией. Тем не менее они подпадают под требования закона и подлежат исправлению.

Низкая критичность. Meta-теги, alt-атрибуты, скрытые элементы. Формально они должны соответствовать требованиям 168-ФЗ, но на практике риск штрафа за такие нарушения минимален. Тем не менее для полного соответствия рекомендуется исправить и их.

Помимо критичности, нарушения группируются по типу элемента (навигация, кнопки, формы и т.д.) и по странице, на которой обнаружены. Это позволяет разработчику системно подходить к исправлениям — например, начать с шаблонных элементов (header, footer), которые повторяются на всех страницах.

Этап 6. Формирование отчёта

Финальный этап — агрегация результатов в структурированный отчёт. Формат и детализация отчёта зависят от тарифного плана.

Экспресс-отчёт (бесплатный план) показывает общую оценку соответствия в процентах, количество обнаруженных нарушений и детали по первым трём из них. Этого достаточно, чтобы оценить масштаб проблемы и принять решение о необходимости полного аудита.

Полный отчёт (тарифы «Стандарт» и выше) содержит исчерпывающий перечень нарушений с детализацией по каждому элементу: тип, расположение на странице, текущий текст, рекомендуемая замена, ссылка на норму 168-ФЗ, CSS-селектор элемента. Отчёт доступен в формате PDF для печати и веб-версии для интерактивной работы.

Отчёт с ТЗ (тариф «Про») дополнительно включает готовый шаблон технического задания для разработчиков. В нём нарушения сгруппированы по файлам и компонентам, указаны конкретные строки кода и предложены варианты исправления. Такой формат позволяет сразу передать документ в работу без дополнительной обработки.

White-label отчёт (тариф «Агентство») предоставляется без фирменного оформления КириллоСкан. Агентство может добавить собственный логотип и реквизиты, представив отчёт клиенту как результат собственного аудита.

Посмотреть пример сформированного отчёта можно на странице демо-отчёта.

Технологии под капотом

Движок рендеринга

Загрузка страниц выполняется кластером headless-браузеров на базе Chromium. Каждый экземпляр работает в изолированном контейнере с ограничением ресурсов, что обеспечивает стабильность при параллельной обработке сотен запросов. Средняя пропускная способность кластера — до 500 страниц в минуту.

Лингвистическая модель

Ядро анализатора — собственная модель, обученная на размеченном корпусе из более чем 200 000 веб-страниц российских сайтов. Модель регулярно дообучается на новых данных, включая результаты ручной верификации и обратную связь пользователей. Текущая точность определения нарушений — 95,7% по результатам последнего бенчмарка.

Словарная база

Словарь замен содержит более 15 000 пар «иностранный термин — русский аналог», сгруппированных по отраслям. База пополняется еженедельно на основе анализа обнаруженных нарушений. Пользователи могут предлагать собственные варианты замен через форму обратной связи.

Инфраструктура

Сервис развёрнут на российских серверах с географической локализацией данных. Архитектура построена на микросервисной модели с автоматическим масштабированием: при увеличении нагрузки кластер наращивает вычислительные ресурсы без прерывания обслуживания.

Интеграции и каналы доступа

КириллоСкан доступен через три канала, каждый из которых предоставляет полный функционал сканирования.

Веб-интерфейс. Основной канал — форма сканирования на главной странице. Подходит для разовых проверок и работы с отчётами.

Telegram-бот. Бот @mos168fz_website_bot принимает URL и возвращает результат прямо в чат. Удобен для быстрых проверок с мобильного устройства и групповых чатов рабочих команд.

REST API. Документированный API для программной интеграции. Позволяет встроить проверку в CI/CD-пайплайн, систему мониторинга или собственную панель управления. API поддерживает все тарифные планы и форматы отчётов.

Что дальше

Понимание технологии — это первый шаг. Чтобы увидеть результат в действии, запустите бесплатное сканирование или изучите демо-отчёт. Если вы хотите узнать больше о самом законе, обратитесь к базе знаний.

Просканируйте свой сайт

Автоматическая проверка на все требования 168-ФЗ. Результат за 2 минуты.