Полный состав сайта: что обязано быть в продакшене
Документ перечисляет все элементы публичного сайта — от разметки страницы
до эксплуатации — с проверяемыми критериями. Каждое требование имеет код и попадает
в чек-лист приёмки в разделе 24.
Требований
168
Разделов
24
Приоритеты
обяз. / реком. / опц.
Доступность
WCAG 2.2 AA
Метрики скорости
LCP · INP · CLS
Как читать приоритеты. «Обяз.» — блокирует приёмку, релиз без этого не выпускается.
«Реком.» — фиксируется в бэклоге с датой, отсутствие обосновывается письменно.
«Опц.» — включается по решению заказчика. Требования нумеруются как раздел.номер
и в этом виде переносятся в акт приёмки.
01
Цели, аудитория и границы работ
Раздел фиксирует, зачем сайт существует и как измеряется его успех. Без этого
остальные требования не проверяемы: непонятно, что считать нормой.
1.1
Определена главная задача сайта одной фразой и одно целевое действие, к которому ведут все страницы.Без единого целевого действия структура расползается, а аналитика не сводится.
обяз.
1.2
Описаны 2–4 сегмента аудитории: задача, с которой приходят, устройство, уровень подготовки.
обяз.
1.3
Заданы измеримые цели запуска: конверсия целевого действия, доля отказов, скорость на мобильном.
обяз.
1.4
Зафиксированы границы: что входит в объём работ, что вне его, что переносится во вторую очередь.
обяз.
1.5
Согласована матрица поддержки: браузеры (две последние версии Chrome, Safari, Firefox, Edge), минимальная ширина 320px, доля мобильного трафика.
обяз.
1.6
Указаны ограничения: бюджет, срок, юрисдикция обработки данных, обязательные интеграции.
обяз.
1.7
Собраны референсы и антиреференсы с объяснением, что именно в них берётся или отвергается.
реком.
02
Информационная архитектура и обязательный набор страниц
Минимальный комплект страниц, ниже которого сайт считается незавершённым,
независимо от тематики.
Карта сайта
2.1
Схема всех страниц с адресом, заголовком, целевым действием и родителем в иерархии.
обяз.
2.2
Глубина вложенности не более трёх кликов от главной до любой содержательной страницы.
обяз.
2.3
Правила адресов: строчные буквы, дефисы, без параметров в канонических ссылках, без окончания .html. Транслитерация или английские слова — выбрано одно и применяется везде.
обяз.
Обязательные страницы
2.4
Главная — краткий ответ на вопрос «что это и кому», путь к целевому действию.
обяз.
2.5
Продуктовые или услуговые страницы — по одной на предложение, с ценой или порядком её получения.
обяз.
2.6
О компании — реквизиты, состав, история, доказательства существования.
обяз.
2.7
Контакты — адрес, телефон, почта, форма, карта, часы работы, реквизиты юрлица.
обяз.
2.8
Политика обработки персональных данных и согласие на обработку — отдельные документы с датой редакции.
обяз.
2.9
Политика cookie с перечнем категорий и сроков хранения.
обяз.
2.10
Пользовательское соглашение или оферта, если сайт что-то продаёт.
обяз.
2.11
Страница 404 с поиском, ссылкой на главную и списком популярных разделов.
обяз.
2.12
Страница 500 и страница технических работ — статические, не зависящие от приложения.
обяз.
2.13
Карта сайта для человека — плоский список всех разделов.
реком.
2.14
Заявление о доступности — уровень соответствия, известные ограничения, канал обратной связи.
реком.
2.15
Страница результатов поиска — если объём контента больше тридцати страниц.
реком.
2.16
Блог или база знаний со списком, тегами, постраничной навигацией и лентой подписки.
опц.
03
Глобальные элементы
Присутствуют на каждой странице и ведут себя одинаково — это отдельное
требование доступности в версии WCAG 2.2.
3.1
Ссылка «к содержимому» первым фокусируемым элементом, видимая при фокусе.
обяз.
3.2
Шапка: логотип со ссылкой на главную, основная навигация, целевое действие, переключатели языка и темы.
обяз.
3.3
Мобильное меню: удержание фокуса внутри, закрытие по Esc и по клику вне, блокировка прокрутки фона, возврат фокуса на кнопку.
обяз.
3.4
Подвал: карта разделов, контакты, юридические ссылки, реквизиты, год, соцсети.
обяз.
3.5
Хлебные крошки на страницах глубже второго уровня, с разметкой BreadcrumbList.
обяз.
3.6
Единая точка помощи — контакт или чат в одном и том же месте на всех страницах.
обяз.
3.7
Индикатор текущего раздела в навигации — визуальный и через aria-current.
обяз.
3.8
Баннер согласия на cookie с равнозначными кнопками принятия и отказа на первом экране.
обяз.
3.9
Кнопка «наверх» появляется после двух экранов прокрутки, не перекрывает контент.
реком.
3.10
Глобальный поиск с клавиатурным вызовом и подсказками.
реком.
3.11
Плавающая связь — мессенджер или обратный звонок, с возможностью скрыть.
опц.
04
Блоки главной и посадочных страниц
Порядок блоков отражает путь читателя: что это → доверие → как устроено →
сколько стоит → что мешает согласиться → действие.
4.1
Первый экран: заголовок, поясняющий абзац, основное и вторичное действия, доказательство или визуал продукта. Читаемо без прокрутки на 360×640.
обяз.
4.2
Социальное доказательство: логотипы клиентов, число внедрений, рейтинг — сразу после первого экрана.
обяз.
4.3
Ценность: 3–6 блоков «проблема → решение», сформулированных от читателя, а не от устройства системы.
обяз.
4.4
Как это работает: шаги нумеруются только если порядок действительно обязателен.
обяз.
4.5
Цены: тарифы или порядок расчёта, что входит и что нет, налоги и валюта.
обяз.
4.6
Отзывы: имя, роль, организация, фото или ссылка на источник. Анонимные не принимаются.
обяз.
4.7
Вопросы и ответы: 6–12 реальных возражений на нативных details с разметкой FAQPage.
обяз.
4.8
Завершающий призыв с повтором основного действия и снятием риска: гарантия, бесплатный период, отсутствие карты.
обяз.
4.9
Сравнение с альтернативами — таблица, честная к конкурентам.
Правило полноты. Компонент принимается, только когда продемонстрированы
все перечисленные состояния — в витрине компонентов или на отдельной странице примеров.
06
Состояния интерфейса
Самая частая недоделка. Пустое состояние и ошибка проектируются наравне
с основным сценарием.
6.1
Загрузка: каркас-заглушка вместо крутящегося индикатора там, где известна форма контента; место зарезервировано, чтобы не было сдвига.
обяз.
6.2
Пусто: объяснение, почему пусто, и кнопка, которая это исправляет.
обяз.
6.3
Ничего не найдено: показан запрос, предложены снятие фильтров и близкие варианты.
обяз.
6.4
Ошибка: что произошло, что сделать, кнопка повтора. Без кодов и извинений.
обяз.
6.5
Успех: подтверждение действия теми же словами, что были на кнопке.
обяз.
6.6
Нет сети: уведомление и повтор запроса после восстановления соединения.
реком.
6.7
Ограничение доступа: понятное объяснение вместо пустой страницы.
реком.
6.8
Частичный отказ: если один блок не загрузился, остальная страница работает.
реком.
07
Формы и ввод данных
7.1
Видимая метка у каждого поля. Плейсхолдер меткой не является.
обяз.
7.2
Правильные type, inputmode и autocomplete — чтобы на телефоне открывалась нужная клавиатура, а браузер подставлял сохранённое.
обяз.
7.3
Проверка после ухода из поля, повторная — при вводе; ошибка текстом рядом с полем и связана через aria-describedby.
обяз.
7.4
Ошибка объясняет как исправить, а не только что неверно.
обяз.
7.5
Проверка на сервере обязательна независимо от клиентской.
обяз.
7.6
Защита от повторной отправки: блокировка кнопки, идемпотентный ключ запроса.
обяз.
7.7
Без повторного ввода: данные, введённые на прошлом шаге, не запрашиваются заново.
обяз.
7.8
Отдельный флажок согласия на обработку данных со ссылкой на политику, по умолчанию снят.
обяз.
7.9
Антиспам без капчи по умолчанию: скрытое поле-приманка, отсечка по времени заполнения, ограничение частоты. Капча — только при подтверждённых атаках.
обяз.
7.10
Минимум полей: каждое дополнительное обосновывается.
обяз.
7.11
Сохранение черновика длинных форм в локальном хранилище.
реком.
7.12
Маски и подсказки формата для телефона, даты, документов.
реком.
7.13
Вход по ключам доступа вместо пароля, если есть личный кабинет.
реком.
08
Дизайн-система и токены
8.1
Токены вместо значений: цвет, отступ, радиус, тень, длительность заданы переменными и нигде не прописаны числом напрямую.
обяз.
8.2
Один акцент бренда. Цвета статусов — отдельная семантика, не украшение.
обяз.
8.3
Шкала отступов с единым шагом; произвольные значения запрещены.
обяз.
8.4
Типографическая шкала: не более шести размеров, строка основного текста 60–75 знаков.
обяз.
8.5
Светлая и тёмная темы обе продуманы, переключаются атрибутом и наследуют системную настройку.
обяз.
8.6
Единый набор иконок одной толщины, встроенных как SVG, с подписью для смысловых.
обяз.
8.7
Правила движения: длительности 80–350 мс, анимируются только transform, opacity, box-shadow.
обяз.
8.8
Витрина компонентов с примерами всех состояний, доступная команде.
реком.
8.9
Цвета в oklch и смешивание через color-mix — предсказуемая яркость при генерации оттенков.
реком.
8.10
Слои каскада и контейнерные запросы: компонент подстраивается под контейнер, а не под окно.
реком.
09
Адаптивность
Ширина, px
Что проверяется
320
нет горизонтальной прокрутки, читаемы цены и таблицы
360–430
основной мобильный диапазон, целевое действие в зоне большого пальца
768
планшет книжной ориентации, перестройка сеток
1024
планшет альбомный и малый ноутбук
1440
основной десктоп
1920+
ограничение ширины контента, поля не разъезжаются
9.1
Проектирование от мобильного; десктоп — расширение, а не источник.
обяз.
9.2
Цели нажатия от 24×24 px с достаточными промежутками; для основных действий — от 44 px.
Работа при увеличении текста до 200% без потери содержимого.
обяз.
9.5
Обе ориентации экрана поддерживаются, поворот не ломает раскладку.
обяз.
9.6
Широкие таблицы и диаграммы прокручиваются внутри своего контейнера.
обяз.
10
Доступность — WCAG 2.2, уровень AA
Для сервисов, работающих на аудиторию Евросоюза, доступность с 2025 года —
требование закона, а не пожелание. Ниже базовый набор плюс критерии, добавленные в версии 2.2.
Карточки для соцсетей: Open Graph и Twitter Card, изображение 1200×630, проверено в отладчиках.
обяз.
13.6
Осмысленная иерархия заголовков и внутренняя перелинковка.
обяз.
13.7
Ключевой контент присутствует в исходном HTML, а не появляется только после выполнения скриптов.
обяз.
13.8
Постоянные редиректы со старых адресов при переносе; цепочки не длиннее одного шага.
обяз.
13.9
Подключены панели вебмастеров поисковых систем, права подтверждены.
обяз.
13.10
Семантическое ядро и карта «запрос → страница».
реком.
13.11
hreflang при наличии языковых версий, с обратными ссылками.
реком.
14
Машиночитаемость для ИИ-систем
Часть трафика приходит не от людей, а от ассистентов, которые читают сайт
и пересказывают его пользователю. Отдельный слой требований, которого не было в ТЗ прошлых лет.
14.1
Политика доступа ИИ-краулеров явно задана в robots.txt: по каждому агенту решение принято осознанно, а не по умолчанию.
обяз.
14.2
Ключевые факты — цены, условия, контакты — доступны текстом в HTML, а не только картинкой или через скрипт.
обяз.
14.3
Разметка сущностей организации, товаров и услуг заполнена полно, включая цену, наличие и условия.
обяз.
14.4
Позиция по использованию контента для обучения моделей зафиксирована в условиях сайта.
обяз.
14.5
Файл llms.txt — краткая карта сайта для языковых моделей со ссылками на основные разделы.Отраслевое соглашение, а не утверждённый стандарт: даёт выигрыш, но поддержка не гарантирована.
реком.
14.6
Текстовые версии ключевых страниц в Markdown по предсказуемому адресу.
опц.
14.7
Открытый программный интерфейс к каталогу или базе знаний для интеграции с ассистентами.
опц.
15
Безопасность
15.1
Только HTTPS, обязательный редирект, заголовок строгой транспортной безопасности со сроком от года.
обяз.
15.2
Политика безопасности контента с одноразовым ключом для скриптов вместо разрешения встроенного кода.
обяз.
15.3
Заголовки: запрет угадывания типа файла, запрет встраивания в чужие фреймы, политика передачи источника перехода, политика разрешений на камеру, микрофон и геопозицию.
обяз.
15.4
Проверка целостности подключаемых внешних файлов.
обяз.
15.5
Защита форм от подделки межсайтовых запросов и ограничение частоты обращений по адресу и сессии.
обяз.
15.6
Экранирование вывода и параметризованные запросы к базе — без исключений.
обяз.
15.7
Секреты вне репозитория: переменные окружения или хранилище ключей, проверка на утечки в конвейере.
обяз.
15.8
Сообщения об ошибках не раскрывают версии, пути и структуру системы.
обяз.
15.9
Регулярное обновление зависимостей с автоматической проверкой уязвимостей.
обяз.
15.10
Административные разделы закрыты от индексации и ограничены по адресам или вторым фактором.
обяз.
15.11
Защита от ботов и всплесков нагрузки на уровне сети.
реком.
15.12
Файл security.txt с контактом для сообщений об уязвимостях.
реком.
16
Приватность и юридические требования
Состав требований зависит от того, чьи данные обрабатываются. Ниже пересечение
российского и европейского режимов; конкретика подтверждается юристом заказчика.
16.1
Согласие до установки необязательных cookie: аналитика и реклама не загружаются, пока пользователь не согласился.
обяз.
16.2
Отказ так же прост, как согласие: обе кнопки на первом экране баннера и равного веса.
обяз.
16.3
Решение пользователя сохраняется и в любой момент меняется через постоянную ссылку в подвале.
обяз.
16.4
Политика обработки персональных данных опубликована, дата редакции указана, ссылка есть в каждой форме.
обяз.
16.5
Уведомление уполномоченного органа об обработке данных подано; данные граждан России хранятся на серверах в России.
обяз.
16.6
Описан порядок реализации прав субъекта: доступ, исправление, удаление, отзыв согласия — с каналом и сроком ответа.
обяз.
16.7
Минимизация: собираются только необходимые данные, срок хранения каждой категории задан.
обяз.
16.8
Реквизиты продавца, порядок оплаты, доставки и возврата опубликованы, если сайт продаёт.
обяз.
16.9
Маркировка рекламных материалов по требованиям законодательства.
обяз.
16.10
Реестр обработки и договоры с подрядчиками-обработчиками.
реком.
16.11
Оценка воздействия на приватность при обработке чувствительных категорий данных.
реком.
17
Аналитика и измерение
17.1
План измерений: список событий, их параметры, ответственный за каждое.
обяз.
17.2
Отслеживание целевых действий: отправка формы, звонок, переход в мессенджер, скачивание, покупка.
обяз.
17.3
Аналитика подчинена согласию: без разрешения либо не работает, либо работает в обезличенном режиме.
обяз.
17.4
Персональные данные не попадают в адреса страниц, названия событий и их параметры.
обяз.
17.5
Сбор реальных метрик скорости от пользователей, а не только лабораторных.
обяз.
17.6
Настроены воронки и отчёт по источникам трафика до целевого действия.
обяз.
17.7
Серверная отправка событий — устойчивость к блокировщикам и потере данных.
реком.
17.8
Карты кликов и записи сессий с маскированием полей ввода.
реком.
17.9
Инструмент сплит-тестирования без сдвига вёрстки при подмене вариантов.
опц.
18
Языки, регионы и форматы
18.1
Все строки интерфейса вынесены в файлы переводов; в разметке нет зашитого текста.
обяз.
18.2
Языковые версии на отдельных адресах, переключатель сохраняет текущую страницу.
обяз.
18.3
Даты, числа, валюты и единицы форматируются по локали средствами платформы.
обяз.
18.4
Вёрстка выдерживает удлинение текста на 40% при переводе.
обяз.
18.5
Правильные формы множественного числа для каждого языка.
обяз.
18.6
Поддержка письма справа налево логическими свойствами отступов.
реком.
18.7
Определение языка по браузеру с явным предложением, а не принудительным переключением.
реком.
19
Контент и микрокопия
19.1
Тексты пишутся со стороны читателя: названия отражают то, что человек узнаёт, а не устройство системы.
обяз.
19.2
Кнопка называет результат действия; подтверждение повторяет те же слова.
обяз.
19.3
Тексты ошибок: что случилось и что сделать. Без извинений и технических кодов.
обяз.
19.4
Заполнены все альтернативные тексты, описывающие смысл, а не имя файла.
обяз.
19.5
Никаких заглушек в продакшене — ни одного абзаца «текст будет позже».
обяз.
19.6
Корректура: орфография, единая терминология, единый стиль оформления чисел и дат.
обяз.
19.7
Словарь терминов и краткое руководство по тону для будущих авторов.
реком.
20
Интеграции
20.1
Заявки из форм попадают в CRM и на почту одновременно; потеря заявки при сбое одного канала исключена.
обяз.
20.2
Почтовые отправления с домена настроены по стандартам подлинности отправителя.
обяз.
20.3
Платежи: только сертифицированный шлюз, реквизиты карт на сайт не попадают; обработка уведомлений об оплате идемпотентна.
обяз.
20.4
Карты, чаты и виджеты подключаются после согласия и по действию пользователя.
обяз.
20.5
Для каждой интеграции описано поведение при недоступности внешнего сервиса.
обяз.
20.6
Подписка на рассылку с подтверждением адреса и работающей отпиской в один клик.
реком.
20.7
Вход через внешних поставщиков учётных записей.
опц.
21
Стек, среды и инфраструктура
21.1
Выбор технологии обоснован задачей: статическая генерация для контентного сайта, серверный рендеринг там, где нужна динамика.
обяз.
21.2
Три среды: разработка, предпродакшен, продакшен; предпродакшен закрыт от индексации и посторонних.
обяз.
21.3
Весь код в системе контроля версий, правила ветвления и слияния описаны.
обяз.
21.4
Автоматическая сборка и выкладка: проверки, сборка, деплой, откат одной командой.
обяз.
21.5
Домен и DNS под контролем заказчика; доступы переданы актом.
обяз.
21.6
Сертификат с автоматическим продлением, оповещение за 30 дней до истечения.
обяз.
21.7
Раздача статики через сеть доставки контента с правильными заголовками кеширования.
обяз.
21.8
Резервное копирование базы и файлов по расписанию; восстановление проверено на практике.
обяз.
21.9
Инфраструктура описана кодом, а не настроена руками в панели.
реком.
21.10
Предпросмотр каждой ветки на отдельном адресе.
реком.
22
Тестирование
22.1
Сквозные тесты на все целевые сценарии: заявка, покупка, вход, поиск.
обяз.
22.2
Автоматическая проверка доступности на каждом типе страниц в конвейере.
обяз.
22.3
Проверка скорости в конвейере с порогами из раздела 11; превышение блокирует выкладку.
обяз.
22.4
Ручная проверка на реальных устройствах: минимум один Android, один iPhone, десктоп каждой ОС.
обяз.
22.5
Проверка всех форм с некорректными данными, повторной отправкой и обрывом сети.
обяз.
22.6
Проверка битых ссылок и корректности редиректов перед выкладкой.
обяз.
22.7
Визуальное сравнение снимков ключевых страниц на шести ширинах и в двух темах.
реком.
22.8
Модульные тесты на расчёты, преобразования данных и валидацию.
реком.
22.9
Нагрузочное тестирование под ожидаемый пик.
опц.
23
Мониторинг и эксплуатация
23.1
Контроль доступности сайта с внешней точки, оповещение ответственному в течение пяти минут.
обяз.
23.2
Сбор ошибок клиента и сервера с версией сборки и контекстом.
обяз.
23.3
Наблюдение за реальными метриками скорости с разбивкой по типам страниц и устройств.
обяз.
23.4
Контроль срока действия сертификата и домена с заблаговременным оповещением.
обяз.
23.5
Логи хранятся установленный срок, без персональных данных в открытом виде.
обяз.
23.6
Описан порядок действий при инциденте: кто реагирует, как откатывают, кого уведомляют.
обяз.
23.7
Регламент обновления зависимостей и платформы с периодичностью.
Работа считается принятой при одновременном выполнении всех пунктов ниже.
Невыполнение любого — основание не подписывать акт.
Все требования с приоритетом «обяз.» выполнены и проверены поимённо по кодам разделов 1–23.
Метрики скорости на продакшене в зелёной зоне таблицы раздела 11 — на мобильном и на десктопе.
Автоматическая проверка доступности проходит без нарушений уровня AA; ручная проверка экранным диктором пройдена.
Все формы протестированы вживую: заявка дошла в CRM и на почту, письмо не попало в спам.
Юридические документы опубликованы, согласие на cookie работает в обе стороны, отказ действительно отключает трекеры.
Битых ссылок нет, редиректы со старых адресов настроены, карта сайта отдаётся и принята панелями вебмастеров.
Заголовки безопасности выставлены и проверены внешним сканером.
Резервное копирование настроено, восстановление продемонстрировано заказчику.
Переданы доступы к домену, DNS, хостингу, репозиторию, аналитике и почте; передан исходный код, инструкция по развёртыванию, руководство редактора, описание дизайн-системы.
Согласованы срок гарантии, порядок обращений и время реакции на критичные инциденты.
Об источниках и границах. Пороговые значения скорости
соответствуют общепринятым рекомендациям по метрикам загрузки. Критерии доступности — версия WCAG 2.2,
включая добавленные в ней пункты о перекрытии фокуса, перетаскивании, единообразной справке, повторном
вводе и аутентификации. Требования разделов 14 и 16 зависят от юрисдикции и быстро меняются —
формулировки проверяются юристом заказчика перед запуском.