
Каждый раз, когда браузер открывает страницу, сервер отвечает ему не только текстом, но и служебной шапкой: код ответа, тип содержимого, правила кеширования, адрес перенаправления. Эту шапку не видно глазами, а половина проблем сайта живёт именно в ней — от бесконечного редиректа до случайного запрета индексации. Введите домен, и проверка пройдёт весь путь от http:// до конечной страницы: покажет каждый шаг цепочки, код ответа и полный список заголовков.
Что такое ответ сервера
Ответ состоит из трёх частей: кода состояния, набора заголовков и тела — собственно HTML. Код — это короткий вывод: 200 значит «вот страница», 301 — «она переехала навсегда», 404 — «такой нет», 500 — «у меня сломалось». Заголовки уточняют: чем отдан контент, сжат ли он, сколько хранить в кеше, куда перенаправлять, какие правила безопасности применять.
Важно, что браузер и поисковый робот читают одну и ту же шапку, но ведут себя по-разному. Человек не заметит лишний редирект и 302 вместо 301 — а робот именно по ним решает, какой адрес считать основным и стоит ли передавать ему накопленный вес.
Коды ответа, которые встречаются на практике
- 200 — всё в порядке, страница отдана.
- 301 — постоянный переезд. Поиск со временем заменяет старый адрес новым.
- 302 и 307 — временный переезд. Старый адрес остаётся в индексе. Если переезд на самом деле навсегда, это ошибка.
- 308 — постоянный, как 301, но с сохранением метода запроса. Встречается реже.
- 304 — «не изменилось с прошлого раза», браузер берёт страницу из своего кеша. Хороший признак, а не проблема.
- 401 и 403 — требуется вход или доступ запрещён. На публичной странице — повод разбираться.
- 404 — страницы нет. Нормально для опечаток, плохо, когда так отвечают живые разделы.
- 410 — удалена навсегда. Сигнал сильнее, чем 404: адрес выкидывают из индекса быстрее.
- 429 — слишком много запросов, сервер просит подождать.
- 500 — ошибка приложения. У сайтов на PHP это чаще всего фатальная ошибка в коде или плагине.
- 502 и 504 — прокси не дождался ответа от бэкенда: упал php-fpm, перегружена база, слишком долгий запрос.
- 503 — временная недоступность, обычно режим обслуживания. Держать её неделями нельзя: поиск начнёт выбрасывать страницы.
Редиректы: одно правило вместо десяти
У любого сайта есть минимум четыре входа на главную: с http и https, с www и без. Работать должен один из них, остальные — одним прыжком вести к нему. Это и есть правило: от любого входа до конечного адреса не больше одного редиректа, и этот редирект — 301.
Как выглядит норма в проверке: http://site.uz → 301 → https://site.uz/ → 200. Как выглядит запущенный случай: http://site.uz → 301 → http://www.site.uz → 301 → https://www.site.uz → 301 → https://site.uz/ → 200. Работает, но каждый лишний шаг — это лишние доли секунды для посетителя и лишний повод для робота сомневаться, какой адрес главный.
Отдельная беда — цепочка, которая замыкается сама на себя: браузер показывает ERR_TOO_MANY_REDIRECTS, и сайт просто не открывается. Классическая причина у сайтов на WordPress — адрес в настройках прописан с www, а сервер правилом гонит все запросы без www. Каждый честно выполняет свою инструкцию, и они перекидывают посетителя друг другу по кругу.
Ещё одна частая ошибка — при переезде или смене структуры завернуть все старые адреса на главную. Для поиска это равносильно «страницы больше нет», а вдобавок обесценивает ссылки, которые на неё вели. Правильно — вести каждый старый адрес на его смысловую замену, и только то, чему замены нет, отдавать как 404 или 410.
Заголовки, на которые стоит смотреть
Content-Type — тип содержимого и кодировка. Для обычной страницы это text/html; charset=UTF-8. Если кодировка не указана, а страница в UTF-8, возможны «кракозябры» в старых браузерах.
Content-Encoding — сжатие. Значения gzip или br означают, что HTML едет к посетителю сжатым, обычно в четыре-пять раз меньше. Если заголовка нет вовсе — сжатие не включено, и это первое, что стоит исправить.
Cache-Control, ETag, Last-Modified — правила кеширования. Они решают, будет ли браузер при повторном заходе скачивать всё заново или возьмёт из памяти.
Location — адрес, куда перенаправляют. Есть только у ответов 3xx.
X-Robots-Tag — самый опасный заголовок для продвижения. Если в нём стоит noindex, страница исчезнет из поиска, и по коду страницы этого не увидеть: в HTML метатега нет, запрет приходит в шапке. Такое случается, когда боевой сайт разворачивают из копии тестового.
Server и X-Powered-By — чем отдана страница: Apache, nginx, версия PHP. Полезно для диагностики и совершенно не обязательно показывать наружу.
Set-Cookie — сервер ставит куки. На страницах, которые должны отдаваться из кеша всем одинаково, лишние куки мешают кешированию.
Vary — по каким признакам ответ различается. Обычно Accept-Encoding, у сайтов с мобильной версией — ещё и User-Agent.
Заголовки безопасности
Их нет по умолчанию почти нигде, а ставятся они одной строкой в конфиге сервера.
- Strict-Transport-Security — браузер запоминает, что на сайт ходят только по https, и больше не пробует http. Убирает первый редирект и защищает от подмены на открытом Wi-Fi.
- X-Content-Type-Options: nosniff — запрещает браузеру угадывать тип файла вопреки указанному.
- X-Frame-Options или директива frame-ancestors — запрет встраивать сайт в чужой фрейм. Защита от кликджекинга.
- Referrer-Policy — сколько сведений об исходной странице уходит на чужие сайты по ссылкам.
- Content-Security-Policy — самый сильный и самый капризный: перечисляет, откуда разрешено грузить скрипты и стили. Внедряют постепенно, иначе легко сломать рабочие функции.
Проверка выведет отдельной строкой, какие из этих заголовков у сайта есть. Пустая строка — не авария, но дешёвая возможность стать надёжнее.
Как посмотреть то же самое вручную
В браузере: F12, вкладка Network, перезагрузить страницу, щёлкнуть по первой строке — справа будут Response Headers и цепочка редиректов. В терминале: curl -I https://example.com покажет только шапку, а curl -IL https://example.com пройдёт всю цепочку до конца. Флаг -L и означает «следовать за редиректами».
Частые вопросы
Проверка показывает 403, а сайт открывается. Защита хостинга или Cloudflare не пропускает запросы без браузерного отпечатка. Для роботов поисковиков обычно делают исключение, но лучше убедиться в этом отдельно.
Цепочка проходит через странные адреса с длинным хвостом параметров. Так выглядит антибот-проверка перед выдачей страницы. Для посетителя она обычно незаметна, для робота — лишний барьер.
Сколько редиректов допустимо? Технически браузеры выдерживают до двадцати, практически — норма один, два уже повод поправить конфиг.
Заголовки отличаются от тех, что я вижу в браузере. Скорее всего, CDN отдаёт разным клиентам разный кеш. Сравните поле Server и наличие заголовков кеша провайдера.
Дальше: скорость ответа сайта и TTFB, проверка SSL-сертификата и все инструменты на одной странице.
Читайте также
Дроп-домены .uz: где искать освобождающиеся имена и как их отбирать
Как устроен выкупной период в зоне .uz, где брать списки освобождающихся имён, по каким метрикам их отбирать и как рассчитать…
Как узнать все поддомены сайта и почему полного списка не существует
Поиск поддоменов по журналам прозрачности сертификатов с проверкой по DNS: почему зону нельзя перечислить целиком, что скрывает wildcard, чем опасны…
Как проверить скорость загрузки сайта: TTFB, время ответа сервера и что ускорять первым
Проверка онлайн: DNS, соединение, TLS, TTFB и размер страницы. Чем это отличается от PageSpeed, почему сервер думает долго и восемь…