Что такое условные запросы
Заголовок Last-Modified сообщает клиенту (браузеру, кешу, краулеру), когда страница в последний раз менялась на сервере. Получив этот заголовок один раз, клиент может при повторном запросе отправить If-Modified-Since с этой датой — и если страница с тех пор не менялась, сервер вправе ответить коротким 304 Not Modified без передачи тела страницы. Это называется условным запросом: экономится трафик, ускоряется повторный обход, снижается нагрузка на сервер.
Почему это важно для краулеров
Поисковые роботы и AI-краулеры регулярно перепроверяют уже известные им страницы. Если сервер поддерживает Last-Modified/If-Modified-Since, повторный обход неизменившейся страницы обходится минимальным трафиком — краулер получает 304 и переходит дальше. Без этой поддержки каждый обход означает полную загрузку страницы заново, даже если содержимое не менялось ни на байт.
Что показывает инструмент
Инструмент сначала проверяет, присутствует ли заголовок Last-Modified в ответе. Если да — повторяет запрос с If-Modified-Since, используя это же значение, и смотрит на код ответа. Ожидаемый результат — 304 Not Modified. Если вместо этого приходит 200 OK, значит сервер отдаёт заголовок, но не умеет на него реагировать — по сути, заголовок присутствует формально, а экономии трафика не происходит.
Как исправить, если условные запросы не работают
Обычно это настраивается на уровне веб-сервера или CMS: nginx и Apache поддерживают условные запросы для статических файлов «из коробки», но для динамически генерируемых страниц (PHP, CMS) эту логику часто нужно реализовывать явно — сравнивать дату последнего изменения контента с заголовком запроса и вручную отдавать 304. Если Last-Modified вовсе отсутствует, для начала стоит добавить сам заголовок, ориентируясь на дату последнего обновления записи в базе данных.