Техническое задание · редакция 2026

Полный состав сайта: что обязано быть в продакшене

Документ перечисляет все элементы публичного сайта — от разметки страницы до эксплуатации — с проверяемыми критериями. Каждое требование имеет код и попадает в чек-лист приёмки в разделе 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
Сравнение с альтернативами — таблица, честная к конкурентам.
реком.
4.10
Разбор внедрения — задача, решение, измеренный результат.
реком.
4.11
Интерактивная демонстрация или калькулятор — если продукт объясняется действием.
опц.
05

Библиотека компонентов

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

КомпонентОбязательные состояния и поведениеПриоритет
Кнопкаобычная, наведение, нажатие, фокус, отключена, загрузка; варианты основная / вторичная / тихая / опаснаяобяз.
Ссылкаотличима от текста не только цветом; внешние помечены; фокус видимобяз.
Поле вводаметка, подсказка, фокус, ошибка, успех, отключено, только чтение, счётчик длиныобяз.
Выпадающий списокклавиатура, поиск по вводу, множественный выбор, пустой результатобяз.
Флажок и переключательтретье, неопределённое состояние флажка; область нажатия от 24px; связь с меткойобяз.
Модальное окноудержание фокуса, Esc, возврат фокуса, прокрутка внутри, aria-modalобяз.
Всплывающее уведомлениеочередь, автозакрытие от 5 с, кнопка закрыть, role="status"обяз.
Вкладкистрелки клавиатуры, связь панели и заголовка, состояние в адресеобяз.
Аккордеоннативный details, состояние раскрытия, якорная ссылкаобяз.
Карточкався карточка кликабельна, но внутри одна семантическая ссылкаобяз.
Таблица данныхзаголовки столбцов, сортировка, горизонтальная прокрутка, подписьобяз.
Постраничная навигациятекущая страница, переходы, состояние в адресеобяз.
Метки и значки статусасемантика статуса отдельно от акцента брендаобяз.
Подсказка при наведениидоступна с клавиатуры, не исчезает при наведении на неёреком.
Боковая панелькак модальное окно, плюс жест закрытияреком.
Карусельпауза, стрелки, точки, свайп, доступность каждого слайдареком.
Шаговый мастерсохранение прогресса, возврат назад без потери данныхреком.
Загрузка файловперетаскивание, лимит, тип, прогресс, отмена, ошибкареком.
Правило полноты. Компонент принимается, только когда продемонстрированы все перечисленные состояния — в витрине компонентов или на отдельной странице примеров.
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.
обяз.
9.3
Учёт безопасных зон — вырезы, скруглённые углы, панель жестов.
обяз.
9.4
Работа при увеличении текста до 200% без потери содержимого.
обяз.
9.5
Обе ориентации экрана поддерживаются, поворот не ломает раскладку.
обяз.
9.6
Широкие таблицы и диаграммы прокручиваются внутри своего контейнера.
обяз.
10

Доступность — WCAG 2.2, уровень AA

Для сервисов, работающих на аудиторию Евросоюза, доступность с 2025 года — требование закона, а не пожелание. Ниже базовый набор плюс критерии, добавленные в версии 2.2.

10.1
Семантическая разметка: один h1, последовательные уровни заголовков, ориентиры header, nav, main, footer.
обяз.
10.2
Контраст: обычный текст от 4.5:1, крупный от 3:1, границы контролов и смысловые иконки от 3:1.
обяз.
10.3
Полное управление с клавиатуры, логичный порядок обхода, никаких ловушек фокуса вне модальных окон.
обяз.
10.4
Фокус не перекрыт липкой шапкой или плавающими панелями.Критерий 2.4.11, добавлен в версии 2.2.
обяз.
10.5
Альтернатива перетаскиванию: всё, что делается мышью с зажатой кнопкой, доступно одиночным нажатием.Критерий 2.5.7, добавлен в версии 2.2.
обяз.
10.6
Единообразная справка: контакт или помощь на одном месте на всех страницах.Критерий 3.2.6, добавлен в версии 2.2.
обяз.
10.7
Без повторного ввода ранее сообщённых данных в рамках одного процесса.Критерий 3.3.7, добавлен в версии 2.2.
обяз.
10.8
Доступная аутентификация: не требовать запоминания или распознавания образов, разрешить вставку из буфера.Критерий 3.3.8, добавлен в версии 2.2.
обяз.
10.9
Альтернативный текст у смысловых изображений; декоративные скрыты от чтения вслух.
обяз.
10.10
Цвет не единственный носитель смысла — дублируется значком или подписью.
обяз.
10.11
Уважение к сниженной анимации: при системной настройке движение отключается.
обяз.
10.12
Динамические сообщения объявляются вспомогательным технологиям без перевода фокуса.
обяз.
10.13
Язык страницы и иноязычных фрагментов размечен атрибутом.
обяз.
10.14
Ручная проверка экранным диктором на двух платформах.
реком.
10.15
Стремление к уровню AAA по контрасту основного текста — 7:1.
реком.
11

Производительность

Целевые значения — по 75-му процентилю реальных пользователей на мобильной сети, а не по лабораторному прогону на ноутбуке разработчика.

МетрикаХорошоТребует вниманияПлохо
Отрисовка главного элемента (LCP)≤ 2.5 сдо 4 с> 4 с
Отклик на действие (INP)≤ 200 мсдо 500 мс> 500 мс
Сдвиг вёрстки (CLS)≤ 0.1до 0.25> 0.25
Первая отрисовка (FCP)≤ 1.8 сдо 3 с> 3 с
Ответ сервера (TTFB)≤ 0.8 сдо 1.8 с> 1.8 с

Бюджеты

Тип страницыJS после сжатияCSSВес первого экрана
Посадочная≤ 150 КБ≤ 30 КБ≤ 600 КБ
Страница приложения≤ 300 КБ≤ 50 КБ≤ 900 КБ
Микросайт≤ 80 КБ≤ 15 КБ≤ 400 КБ
11.1
Изображениям заданы ширина и высота — при загрузке нет сдвига вёрстки.
обяз.
11.2
Главному изображению первого экрана — высокий приоритет загрузки, остальным — отложенная.
обяз.
11.3
Шрифты: font-display:swap, предзагрузка только критического начертания, подмножество символов.
обяз.
11.4
Ничего лишнего не блокирует отрисовку; тяжёлые библиотеки загружаются по требованию.
обяз.
11.5
Сжатие Brotli, протокол HTTP/3, кеш статики на год с версией в имени файла.
обяз.
11.6
Сторонние скрипты — только асинхронно и после согласия; у каждого есть владелец и обоснование.
обяз.
11.7
Бюджеты проверяются в сборке; превышение роняет конвейер.
обяз.
11.8
Предзагрузка вероятного следующего перехода правилами спекуляции.
реком.
11.9
Ранние подсказки браузеру о ключевых ресурсах.
опц.
12

Изображения, видео и звук

12.1
Формат AVIF с запасным WebP и растровым; исходники не отдаются в разы больше отображаемого размера.
обяз.
12.2
Адаптивные наборы изображений под плотность экрана и ширину контейнера.
обяз.
12.3
Логотип и иконки — SVG, очищенный от лишних данных.
обяз.
12.4
Видео: без автозапуска со звуком, с управлением, постером и субтитрами.
обяз.
12.5
Фоновое видео — только беззвучное, отключается при сниженной анимации, есть статичный запасной кадр.
обяз.
12.6
Внешние плееры подключаются по клику, а не при загрузке страницы.
обяз.
12.7
Подкасты и аудио сопровождаются текстовой расшифровкой.
реком.
12.8
Изображения раздаются через сервис преобразования на лету.
реком.
13

Поисковая оптимизация

13.1
Уникальные заголовок (до 60 знаков) и описание (до 160) на каждой странице.
обяз.
13.2
Канонический адрес на каждой странице; дубли склеены.
обяз.
13.3
robots.txt и XML-карта сайта с датами изменения; карта указана в robots.
обяз.
13.4
Структурированные данные: Organization, WebSite, BreadcrumbList плюс типы по тематике — товар, статья, услуга, вакансия.
обяз.
13.5
Карточки для соцсетей: 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
Регламент обновления зависимостей и платформы с периодичностью.
реком.
23.8
Ежемесячный отчёт: скорость, ошибки, конверсия, доступность.
реком.
24

Приёмка и состав сдачи

Работа считается принятой при одновременном выполнении всех пунктов ниже. Невыполнение любого — основание не подписывать акт.

  • Все требования с приоритетом «обяз.» выполнены и проверены поимённо по кодам разделов 1–23.
  • Метрики скорости на продакшене в зелёной зоне таблицы раздела 11 — на мобильном и на десктопе.
  • Автоматическая проверка доступности проходит без нарушений уровня AA; ручная проверка экранным диктором пройдена.
  • Все формы протестированы вживую: заявка дошла в CRM и на почту, письмо не попало в спам.
  • Юридические документы опубликованы, согласие на cookie работает в обе стороны, отказ действительно отключает трекеры.
  • Битых ссылок нет, редиректы со старых адресов настроены, карта сайта отдаётся и принята панелями вебмастеров.
  • Заголовки безопасности выставлены и проверены внешним сканером.
  • Резервное копирование настроено, восстановление продемонстрировано заказчику.
  • Переданы доступы к домену, DNS, хостингу, репозиторию, аналитике и почте; передан исходный код, инструкция по развёртыванию, руководство редактора, описание дизайн-системы.
  • Согласованы срок гарантии, порядок обращений и время реакции на критичные инциденты.
Об источниках и границах. Пороговые значения скорости соответствуют общепринятым рекомендациям по метрикам загрузки. Критерии доступности — версия WCAG 2.2, включая добавленные в ней пункты о перекрытии фокуса, перетаскивании, единообразной справке, повторном вводе и аутентификации. Требования разделов 14 и 16 зависят от юрисдикции и быстро меняются — формулировки проверяются юристом заказчика перед запуском.