← Главная / Блог / Technical
Technical 29.04.2026 · 7 мин чтения

HTTP-заголовки для SEO: X-Robots-Tag, Cache-Control, HSTS и другие

Какие HTTP-заголовки влияют на индексацию: X-Robots-Tag, canonical через Link, Cache-Control, ETag, HSTS, Content-Type. Как проверить и что означает каждый заголовок.

HTTP-заголовки для SEO: X-Robots-Tag, Cache-Control, HSTS и другие

Что такое HTTP-заголовки и зачем они нужны для SEO

HTTP-заголовки — это метаданные, которые сервер отправляет браузеру и поисковым ботам вместе с каждым ответом. В отличие от мета-тегов в HTML, заголовки видны боту ещё до обработки тела страницы и могут полностью изменить её статус в индексе.

Пять заголовков напрямую влияют на индексацию и ранжирование: X-Robots-Tag, Link (canonical), Cache-Control, Strict-Transport-Security и Content-Type.

X-Robots-Tag: управление индексацией через заголовок

X-Robots-Tag — серверный аналог <meta name="robots">. Его преимущество: работает для любых файлов (PDF, изображения, ZIP), а не только для HTML-страниц.

noindex Исключить страницу/файл из индекса. Эквивалент meta noindex.
nofollow Не переходить по ссылкам на странице. PageRank не распределяется.
nosnippet Запретить показ сниппета в выдаче и сохранение в кэше.
none Аналог noindex + nofollow одновременно.
all Разрешить всё (поведение по умолчанию). Указывать не нужно.
unavailable_after: дата Автоматически убрать из индекса после указанной даты.

Примеры конфигурации nginx:

# Закрыть PDF-файлы от индексации
location ~* \.pdf$ {
    add_header X-Robots-Tag "noindex, nofollow";
}

# Закрыть весь /admin/
location /admin/ {
    add_header X-Robots-Tag "none";
}
Конфликт: X-Robots-Tag vs meta robots

Если заголовок и мета-тег дают разные директивы, Google применяет наиболее ограничительную. Но конфликты лучше устранять: они затрудняют аудит и могут менять поведение при обновлении сервера.

Link: canonical через HTTP-заголовок

Canonical можно указать не только в HTML (<link rel="canonical">), но и в HTTP-заголовке Link. Это единственный способ задать canonical для не-HTML ресурсов (PDF, CSV).

Link: <https://example.com/page/>; rel="canonical"

Google поддерживает оба метода. Яндекс — только HTML-тег. Для HTML-страниц предпочтителен HTML-тег: он видён в исходнике без HTTP-клиента.

Cache-Control и ETag: кэширование для скорости и обхода

Правильное кэширование ускоряет загрузку (Core Web Vitals) и снижает нагрузку на crawl budget: если ресурс не изменился, бот получает ответ 304 Not Modified без повторной передачи тела.

Cache-Control
Управляет хранением в кэше. Важные директивы: max-age (время жизни), no-cache (проверять актуальность каждый раз), no-store (не кэшировать вообще), public/private (кэш браузера vs CDN).
ETag
Токен версии ресурса. Браузер отправляет If-None-Match, сервер возвращает 304 если ресурс не изменился. Экономит трафик и ускоряет повторные визиты.
Last-Modified
Дата последнего изменения. Работает с If-Modified-Since. Более простой механизм чем ETag, но менее точный.
Vary
Указывает, от чего зависит ответ (Vary: Accept-Encoding для gzip). Важен для CDN и корректного кэширования мобильных версий.

Рекомендуемые значения:

# HTML-страницы: короткий TTL + revalidation
Cache-Control: public, max-age=3600, must-revalidate

# Статика с версионированием (/app.v2.css)
Cache-Control: public, max-age=31536000, immutable

# Без кэширования (admin, API)
Cache-Control: no-store

Content-Type и Content-Encoding

Неверный Content-Type вызывает ошибки парсинга: если HTML-страница отдаётся с application/octet-stream, браузер предложит скачать файл, а не рендерить его. Google при этом может не проиндексировать контент.

text/html; charset=UTF-8 HTML-страницы. charset=UTF-8 обязателен для кириллицы.
application/xml; charset=UTF-8 Sitemap.xml и XML-фиды.
application/json JSON-ответы API.
text/plain; charset=UTF-8 robots.txt и llms.txt.

Content-Encoding: gzip или br (brotli) — сжатие ответа. Уменьшает объём HTML на 60–80%, ускоряет FCP и LCP. Проверьте, что сжатие включено хотя бы для HTML, CSS, JS.

Заголовки безопасности с SEO-значением

Strict-Transport-Security (HSTS)
Приказывает браузеру всегда открывать сайт по HTTPS. Без него первый запрос по HTTP проходит до редиректа — уязвимость и задержка.
Strict-Transport-Security (HSTS): max-age=31536000; includeSubDomains; preload
Content-Security-Policy (CSP)
Защищает от XSS. Для SEO важно: CSP не должен блокировать загрузку нужных ресурсов (шрифты, JSON-LD script).
Content-Security-Policy (CSP): default-src 'self'; script-src 'self'
X-Content-Type-Options
Запрещает браузеру угадывать тип файла (MIME sniffing). Без него JS может выполниться из PNG-файла.
X-Content-Type-Options: nosniff

Что проверять: краткий чеклист

X-Robots-Tag Отсутствует для HTML-страниц, которые должны индексироваться. Если есть — директивы не конфликтуют с meta robots.
Cache-Control HTML: max-age 1–24 часа + must-revalidate. Статика: max-age=31536000 + immutable.
Content-Type charset=UTF-8 для HTML. Нет application/octet-stream для веб-страниц.
Content-Encoding gzip или br включены для HTML/CSS/JS.
HSTS Присутствует на HTTPS-сайте, max-age ≥ 31536000.
ETag / Last-Modified Хотя бы один из двух для поддержки 304 Not Modified.
Last-Modified Не устарел на несколько лет (признак заброшенного контента).
Проверить HTTP-заголовки — проверьте свой сайт Бесплатно · Без регистрации · Отчёт за несколько секунд
Проверить HTTP-заголовки →