#35 · Скорость загрузки

Security-заголовки (HSTS, X-Frame)

Что это, почему влияет на SEO, как проверить и исправить. Параметр #35из 150 в нашем чек-листе аудита.

Что это

Security-заголовки — это HTTP-заголовки ответа сервера, которые браузер получает вместе со страницей и использует для ограничения потенциально опасного поведения. Ключевые из них: Strict-Transport-Security (HSTS) принудительно переводит соединение на HTTPS, X-Frame-Options запрещает встраивание страницы в <iframe> на сторонних сайтах, Content-Security-Policy ограничивает источники загружаемых ресурсов. Заголовки живут не в HTML, а на уровне конфигурации веб-сервера или CDN.

Почему это важно для SEO

Google с 2014 года учитывает HTTPS как фактор ранжирования. HSTS — следующий уровень: он устраняет редиректную цепочку http → https, которая замедляет первый запрос и тратит краулерный бюджет. Без HSTS каждый бот делает лишний HTTP-запрос, получает 301, идёт на HTTPS. При глубоком сайте на 10 000 страниц это тысячи лишних запросов за обход.

Для Яндекса security-заголовки влияют на оценку безопасности сайта в Я.Вебмастере (раздел "Безопасность и нарушения"). Сайты с кликджекинг-уязвимостью (отсутствие X-Frame-Options) могут использоваться для фишинга, что ведёт к пессимизации или метке "Сайт может угрожать безопасности". Это прямой удар по ИКС и CTR в выдаче. Google аналогично помечает скомпрометированные сайты в Search Console в разделе "Проблемы безопасности".

Как проверить вручную

  1. curl из терминала — самый быстрый способ увидеть реальные заголовки:

``bash curl -I https://example.ru ` Ищи строки Strict-Transport-Security, X-Frame-Options, Content-Security-Policy, X-Content-Type-Options`.

  1. Browser DevTools — открой вкладку Network, перезагрузи страницу, кликни на первый запрос (document), вкладка Headers → Response Headers. Видишь список всех заголовков ответа.
  1. Онлайн-сканеры — используй securityheaders.com: вводишь URL, получаешь оценку A–F с детализацией по каждому заголовку. Отдельно проверь через Screaming Frog: Custom → Search → Response Headers, добавь колонку для strict-transport-security и краули весь сайт — так найдёшь страницы без нужных заголовков.
  1. PageSpeed Insights / Lighthouse — в разделе "Best Practices" Lighthouse фиксирует отсутствие критичных заголовков и снижает балл.

Как исправить

Nginx

# В блоке server {}
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Apache (.htaccess)

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"

WordPress

Плагин Headers Security Advanced & HSTS WP или вручную в functions.php:

add_action('send_headers', function() {
    header('Strict-Transport-Security: max-age=31536000; includeSubDomains; preload');
    header('X-Frame-Options: SAMEORIGIN');
    header('X-Content-Type-Options: nosniff');
});

Tilda

Tilda не даёт прямого доступа к заголовкам сервера. Решение — проксировать сайт через Cloudflare и настроить заголовки в разделе Rules → Transform Rules → Modify Response Header.

1C-Bitrix

В .htaccess в корне сайта добавь блок Apache выше. Либо через настройки веб-сервера на уровне хостинга — у большинства провайдеров (Таймвеб, Рег.ру) есть раздел "HTTP-заголовки" в панели управления.

Webflow

Аналогично Tilda — только через Cloudflare или собственный reverse proxy, так как Webflow не предоставляет доступ к конфигурации сервера.

Типичные ошибки

  • HSTS без `includeSubDomains` — если поддомены работают без HTTPS, браузер заблокирует их после первого визита на основной домен. Проверь все поддомены перед включением директивы.
  • `X-Frame-Options: DENY` на сайтах с виджетами — если ты сам встраиваешь калькуляторы или формы через iframe в другие свои страницы, DENY их сломает. Используй SAMEORIGIN.
  • Дублирование заголовков — если заголовок прописан и в .htaccess, и в коде приложения, браузер получит два значения. Nginx/Apache в таком случае могут вести себя непредсказуемо. Проверяй через curl -I.
  • Добавление HSTS до переезда на HTTPS — включать Strict-Transport-Security на HTTP-сайте бессмысленно и опасно: браузер игнорирует заголовок, но если позже HTTP-страница окажется недоступна, пользователи не смогут зайти.
  • Игнорирование `preload` — без подачи домена в hstspreload.org HSTS работает только после первого визита. До него первый HTTP-запрос всё равно уходит. Preload-список браузера решает эту проблему, но требует max-age не менее 31536000.

Влияние на разные типы сайтов

Для интернет-магазинов на Битрикс или кастомных решениях security-заголовки критичны вдвойне: страницы корзины и оплаты без HSTS уязвимы для атак типа SSL-stripping, а отсутствие X-Frame-Options открывает возможность кликджекинга на страницах с кнопкой "Купить". Яндекс и Google при обнаружении вредоносного кода на таких сайтах выдают предупреждение в выдаче — это обнуляет CTR моментально.

Контентные сайты и SaaS страдают иначе: без X-Content-Type-Options: nosniff браузер может интерпретировать загруженный файл не как заявленный тип, что открывает XSS-уязвимости через UGC-контент. Лендинги на Tilda или Webflow технически ограничены в настройке заголовков, поэтому Cloudflare становится обязательным инструментом, а не опциональным.

Проверить этот параметр на вашем сайте

Бесплатно. Без регистрации. Проверим этот и ещё 49 параметров за 60 секунд.

Получить SEO-аудит →