Проверка Last-Modified

Узнайте, сообщает ли сервер дату изменения страницы и отвечает ли корректным кодом 304 на условный запрос.

Что такое Last-Modified

Last-Modified — стандартный HTTP-заголовок ответа с датой и временем последнего существенного изменения ресурса. Это валидатор кэша: браузер, CDN или поисковый робот может уточнить, изменилась ли страница, не загружая весь HTML повторно.

Это не дата публикации и не декоративная надпись «обновлено» внутри страницы. Значение формируется сервером и передаётся в формате HTTP-date, обычно по UTC:

HTTP/1.1 200 OK
Last-Modified: Fri, 17 Jul 2026 12:40:00 GMT
ETag: "article-1842-v7"
Клиент получает страницу и запоминает дату.
При следующем обращении отправляет If-Modified-Since.
Сервер возвращает 304 без HTML либо 200 с новой версией.

Как выглядит повторная проверка

GET /page/ HTTP/1.1
If-Modified-Since: Fri, 17 Jul 2026 12:40:00 GMT

HTTP/1.1 304 Not Modified
Last-Modified: Fri, 17 Jul 2026 12:40:00 GMT

Важно: наличие заголовка ещё не означает, что механизм работает. Сервер должен обработать условный запрос и при неизменном документе вернуть 304 без тела ответа — именно это проверяет сервис.

Что говорит Google

В документации по эффективности сканирования Google сообщает, что его роботы в целом поддерживают If-Modified-Since и If-None-Match. Если сервер возвращает 304 без тела, Google повторно использует ранее загруженную версию.

«This will save your server processing time and resources, which may indirectly improve crawl efficiency.»

Перевод: это экономит время и ресурсы сервера, что может косвенно повысить эффективность сканирования. Источник: Google Search Central — HTTP-коды и изменения контента.

Отдельно о Sitemap Google пишет:

«Google uses the <lastmod> value if it's consistently and verifiably accurate.»

То есть дата учитывается, если она стабильно точна и её можно проверить по фактическим изменениям страницы. Google рекомендует отражать последнее существенное обновление: основного контента, структурированных данных или важных ссылок. Простая смена года в копирайте существенным обновлением не считается. Источник: Google Search Central — XML Sitemap.

Преимущества

  • Меньше трафика: при 304 не передаётся тело HTML.
  • Ниже нагрузка: серверу и CDN не нужно заново отдавать неизменившийся документ.
  • Эффективнее обход: особенно полезно крупным сайтам с большим числом URL.
  • Корректная ревалидация кэша: браузеры и промежуточные кэши быстрее проверяют актуальность.
  • Сигнал свежести: точная дата помогает отличить обновлённую версию от прежней.

Чего Last-Modified не делает

  • не повышает позиции сам по себе;
  • не гарантирует повторный обход или индексацию;
  • не заменяет качественный контент, внутренние ссылки и Sitemap;
  • не исправляет запрет в robots.txt или noindex;
  • не сообщает поисковику, что именно изменилось.

Главные подводные камни

ОшибкаПочему это плохоКак сделать правильно
Всегда ставится текущая датаКаждый запрос выглядит как обновление, кэш теряет смысл, робот получает ложный сигнал.Брать время последнего существенного изменения из БД, файла или CMS.
Дата не меняется после правкиСервер может ошибочно вернуть 304, и клиент продолжит использовать старую версию.Обновлять дату при изменении основного текста, данных, разметки или важных ссылок.
Меняется из-за меню, счётчика или копирайтаТысячи страниц выглядят обновлёнными без изменения их основного содержания.Не связывать дату материала со временем сборки общего шаблона.
Дата из будущегоПричиной бывают часовой пояс или неверные часы сервера; кэширование становится непредсказуемым.Синхронизировать часы и отдавать HTTP-date в GMT.
HEAD и GET отвечают по-разномуНекоторые серверы добавляют заголовок только в один тип ответа.Проверить оба метода и конечный URL после редиректов.
CDN меняет или удаляет заголовокПриложение настроено верно, но пользователь и робот видят ответ прокси.Проверять публичный ответ, правила CDN и reverse proxy.
Точности до секунды недостаточноДве правки в одну секунду могут иметь одинаковую дату.Дополнительно применять ETag, особенно для динамических данных.
304 возвращается с HTML-теломЭто нарушает назначение ответа и не даёт экономии трафика.Для 304 не формировать тело документа.

HTTP Last-Modified и <lastmod> в Sitemap — не одно и то же

Last-Modified находится в HTTP-ответе и участвует в условных запросах. <lastmod> записывается в sitemap.xml и подсказывает поисковой системе дату существенного обновления URL. Лучше, чтобы оба значения опирались на один источник данных, но формат может отличаться.

Google прямо указывает, что значения <priority> и <changefreq> игнорируются, а точный <lastmod> может использоваться. Отправка Sitemap остаётся подсказкой, а не гарантией обхода.

Практический чек-лист

  • Дата соответствует последнему значимому изменению конкретной страницы.
  • Значение не обновляется при каждом запросе и не зависит только от общего шаблона.
  • Формат HTTP-заголовка корректен, время передаётся в GMT.
  • Запрос с If-Modified-Since получает 304, если документ не менялся.
  • После реального обновления сервер возвращает 200 OK и новое содержимое.
  • Проверен конечный канонический URL после всех редиректов.
  • CDN, кеширующий прокси и веб-сервер отдают согласованные заголовки.
  • <lastmod> в Sitemap не содержит фиктивную сегодняшнюю дату.
  • Для динамических страниц при необходимости используется ETag.

Итог: корректный Last-Modified полезен прежде всего для кэширования и рационального сканирования. Для небольшого сайта эффект может быть незаметен, а для крупного каталога, СМИ или сайта с сотнями тысяч URL экономия ресурсов становится существенной.