Марина поставила плагин, включила жёсткую политику CSP «как в статье из Google» — исчезли стили админки и форма заявки. Сайт открывается, но не работает. Слышишь «настрой HSTS и CSP», но это не кнопки в админке WordPress, а служебные строки в ответе сервера. Боишься сломать оплату или /wp-admin/. За один вечер можно включить базовые заголовки через один плагин, проверить результат на securityheaders.com и увидеть зелёные галочки — без правки .htaccess и белого экрана.
HTTP-заголовки безопасности — короткие инструкции браузеру: «только HTTPS», «не встраивай страницу в чужой iframe», «не угадывай тип файла». В WordPress их не задают в «Настройки → Общие» — нужен плагин или панель хостинга. Порядок: безопасная тройка → HSTS с max-age=300 → CSP только Report-Only → проверка на securityheaders.com. Откат — деактивировать плагин через FTP.
Это не замена бэкапа, но чеклисты безопасности 2026 года всё чаще спрашивают про HSTS и CSP. Ниже — сценарий для владельца сайта услуг на обычном хостинге без SSH. Первый результат сегодня: оценка B на securityheaders.com и рабочая форма заявки.
- Разберитесь, где настраивать заголовки (не в админке WordPress)
- Проверьте, что уже отдаёт ваш сайт
- Убедитесь, что HTTPS стабилен — без этого HSTS бессмысленен
- Включите безопасную тройку через плагин
- Настройте HSTS осторожно — без preload
- Запустите CSP в режиме Report-Only
- Знайте план отката, если админка не открывается
- Как понять, что всё сработало
- Что дальше
- Частые вопросы
- Что такое HSTS в WordPress простыми словами?
- Как настроить CSP без поломки сайта?
- Какие заголовки нужны сайту услуг сначала?
- Как проверить security headers бесплатно?
- Плагин или хостинг — в чём разница?
- Можно ли отключить HSTS?
- Нужен ли preload для малого бизнеса?
Разберитесь, где настраивать заголовки (не в админке WordPress)

Типичная ошибка: искать HSTS в «Настройки → Общие». Там только название сайта. Заголовки уходят в каждом ответе сервера — браузер читает их до отрисовки страницы. На shared-хостинге без SSH проще один плагин, чем nginx или .htaccess.
Представьте охранника на входе: он решает, можно ли открыть сайт только по защищённому HTTPS и можно ли встроить вашу страницу в чужой сайт. Эти правила не лежат в базе данных WordPress — их добавляет сервер или плагин при каждом ответе.
На практике главное правило OWASP: один владелец заголовков. Если хостинг уже шлёт HSTS, а плагин дублирует его, сканер покажет путаницу. Не ставьте два header-плагина одновременно.
Проверьте, что уже отдаёт ваш сайт

Боль «не знаю, сработало ли» закрывается за пять минут. Откройте securityheaders.com в браузере, введите https-адрес. Для малого бизнеса цель на первом проходе — оценка не ниже B при рабочих формах.
Второй способ — Chrome DevTools: F12 → Network → обновите главную → первый документ → Response Headers. Проверьте главную, контакты с формой и /wp-login.php. Запишите, что уже есть: SSL-плагин или CDN иногда добавили часть политик.
Убедитесь, что HTTPS стабилен — без этого HSTS бессмысленен

HSTS (Strict-Transport-Security) браузер принимает только по HTTPS. Если сайт открывается по http без редиректа или есть смешанный контент, сначала закройте это.
- Сайт открывается по https без предупреждений сертификата.
- Редирект с http на https — код 301.
- Нет жёлтых замков из-за картинок по http.
- Сделан бэкап перед правками.
Включите безопасную тройку через плагин
Установите один плагин: Headers Security Advanced & HSTS WP (галочки без кода) или BoundaryGuard Headers (удобнее CSP, tested up to WordPress 7.0.4 в 2026).
- Плагины → Добавить новый → найдите по названию → Установить → Активировать.
- Откройте настройки плагина в меню слева.
- Включите только базовые заголовки ниже — CSP и HSTS пока не трогайте.
- Сохраните и проверьте сайт в приватном окне браузера.
На первом проходе включите:
- X-Content-Type-Options: nosniff — браузер не угадывает тип файла.
- X-Frame-Options: SAMEORIGIN — защита от clickjacking.
- Referrer-Policy: strict-origin-when-cross-origin.
- Permissions-Policy — отключите camera, microphone, geolocation.
Не включайте X-XSS-Protection: OWASP в 2026 помечает его устаревшим, а плагины всё ещё предлагают в «best practices». После сохранения снова проверьте securityheaders.com.
| Критерий | Headers Security Advanced | BoundaryGuard Headers |
|---|---|---|
| Новичку | HSTS и базовые заголовки галочками | Конструктор CSP и лог нарушений |
| CSP Report-Only | Есть, легко ошибиться | Report-Only из коробки |
| Откат | Переименовать папку в wp-content/plugins | Тот же приём через FTP |
Настройте HSTS осторожно — без preload
Surprising fact: многие гайды советуют HSTS с preload и max-age на год. hstspreload.org рекомендует ступени — от 5 минут (max-age=300) до недели и месяца. Preload отменяется месяцами.
- Включайте HSTS только при стабильном HTTPS.
- max-age=300, без includeSubDomains и preload.
- Через сутки без жалоб — 604800 (неделя).
- Месяц — только если понимаете последствия.
Типичная ошибка: preload «ради A+ на сканере». Салону или мастеру с одним доменом это почти не нужно на старте.
Запустите CSP в режиме Report-Only
CSP (Content-Security-Policy) задаёт, откуда грузить скрипты и стили. Темы и плагины WordPress используют inline-скрипты — жёсткий CSP ломает админку и формы. На WordPress.org пользователи восстанавливают сайт через сброс настроек в базе — сценарий Марины.
Безопасный путь по MDN: Content-Security-Policy-Report-Only — не блокирует, только пишет нарушения в консоль. Стартовая политика:
default-src ‘self’ https: data:; script-src ‘self’ https: ‘unsafe-inline’ ‘unsafe-eval’; style-src ‘self’ https: ‘unsafe-inline’; img-src ‘self’ https: data:; frame-ancestors ‘self’
Обойдите главную, контакты, корзину (если есть), /wp-admin/. В DevTools → Console запишите blocked CSP — это список того, что жёсткая политика сломала бы. Добавьте домены Яндекс.Метрики, Google Fonts, виджетов в whitelist плагина. Enforce (боевой CSP) — только после чистой консоли на всех важных страницах и свежего бэкапа. Часто ломается форма заявки: в консоли будет blocked script-src — добавьте домен CRM или конструктора форм.
Знайте план отката, если админка не открывается
Если белый экран или нет стилей в /wp-admin/:
- FTP или файловый менеджер → wp-content/plugins.
- Переименуйте папку плагина заголовков.
- Обновите сайт — админка обычно оживает.
- Используйте Report-Only или отключите CSP enforce.
- При необходимости сбросьте опцию плагина из бэкапа.
Report-Only и бэкап — обязательный первый шаг, не «для продвинутых». В реальном проекте откат занимает минуты, если знаете имя папки плагина.
Как понять, что всё сработало
- securityheaders.com — оценка не ниже B.
- В отчёте: Strict-Transport-Security, X-Content-Type-Options: nosniff, X-Frame-Options или frame-ancestors.
- CSP в Report-Only без критичных блокировок — или мягкая политика с рабочими главной, контактами и /wp-admin/.
- Форма заявки и аналитика работают.
Запишите список включённых заголовков — через полгода не вспомните, зачем max-age=300.
Схема вечера:
HTTPS и бэкап → один плагин → безопасная тройка → проверка → HSTS 300 сек → CSP Report-Only → усиление без ошибок в консоли
Что дальше
Если страшно включать «боевой» CSP или хостинг дублирует заголовки — напишите в Telegram, поможем проверить заголовки на копии сайта. Рядом по теме: 2FA WordPress, reCAPTCHA для форм, перенос WordPress. Настройка под ключ — услуги или контакты (удобнее писать в мессенджер). Ещё гайды — статьи блога.
Материал проверен: Андрей Дикий (создаёт сайты и продвигает их статьями (SEO/GEO)).
Достоверность данных: MDN (HSTS, CSP, Report-Only), OWASP HTTP Headers и HSTS Cheat Sheet, hstspreload.org, securityheaders.com, wordpress.org/plugins (Headers Security Advanced, BoundaryGuard), тема WordPress.org «Site broken after CSP»; частотность — Яндекс Вордстат на 2026-09-15 (MCP недоступен, точные показы не получены).
Частые вопросы
Что такое HSTS в WordPress простыми словами?
Заголовок Strict-Transport-Security: браузер запоминает, что сайт только по HTTPS. Настраивается плагином, не в «Настройки → Общие». Начинайте с max-age=300 без preload.
Как настроить CSP без поломки сайта?
Content-Security-Policy-Report-Only с мягкой политикой, обход главной, форм и /wp-admin/, разбор консоли. Enforce после чистой консоли и бэкапа.
Какие заголовки нужны сайту услуг сначала?
nosniff, X-Frame-Options SAMEORIGIN, Referrer-Policy, затем осторожный HSTS, CSP позже в Report-Only. Этого хватит для B на securityheaders.com.
Как проверить security headers бесплатно?
securityheaders.com, DevTools → Network → Response Headers, или curl -I https://ваш-домен.ru. Сравните главную и страницу с формой.
Плагин или хостинг — в чём разница?
Один смысл — строки в ответ сервера. Плагин удобен без SSH. Панель хостинга — когда есть доступ. Не дублируйте одни заголовки в двух местах.
Можно ли отключить HSTS?
Да: Strict-Transport-Security с max-age=0 по HTTPS. Браузеры обновят память после успешного https-запроса — короткий max-age на старте страхует.
Нужен ли preload для малого бизнеса?
Обычно нет. Preload в списках браузеров откатывается месяцами. hstspreload.org советует ступени, не год и preload «ради A+».
