Все посты
Обновлено 9999+ 2 Знания

Last-Modified: что это за HTTP-заголовок, как настроить, проверить и ускорить индексацию

Заголовок Last-Modified: что это, как влияет на индексацию и кэширование сайта. Настройка, проверка, сравнение с ETag. Актуальные рекомендации Google и Яндекса. Материал обновлен 04.03.26.

Краткое саммари

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

В декабре 2024 года Google обновил документацию по краулингу и теперь рекомендует использовать ETag вместе с Last-Modified. В статье разбираем оба механизма, даем инструкции по настройке и проверке.

Кому стоит прочитать:

  • Веб-мастерам и владельцам сайтов, которые хотят ускорить индексацию страниц;
  • SEO-специалистам, работающим с технической оптимизацией;
  • Разработчикам, которые настраивают HTTP-заголовки и кэширование сайта.

Разбираем HTTP-заголовок Last-Modified — зачем он нужен, как влияет на индексацию и кэширование сайта, и что с ним делать веб-мастеру.

Заголовок Last-Modified — что это такое

Last-Modified — это HTTP-заголовок ответа сервера, в котором указаны дата и время последнего изменения страницы. Формат выглядит так:

Last-Modified: <день недели>, <число> <название месяца> <год> <час>:<минута>:<секунда> GMT

Пример:

Last-Modified: Tue, 04 Mar 2025 09:48:00 GMT

Это необязательный заголовок. Но поисковые роботы используют его при индексации, чтобы понять, стоит ли повторно загружать страницу.

Как работает связка Last-Modified и If-Modified-Since:

  1. При первом запросе документа сервер отдает содержимое страницы и указывает дату последнего изменения в HTTP-заголовке Last-Modified.

  2. При повторном обращении бот или браузер отправляют серверу запрос с заголовком If-Modified-Since — изменилась ли страница после указанной даты? Если да, нужна новая версия.

  3. Сервер сравнивает даты. Дальше два сценария:

  • страница изменилась — сервер возвращает код 200 OK и загружает новое содержимое, робот обрабатывает изменения;

  • страница не изменилась — сервер возвращает код 304 Not Modified без загрузки содержимого. Страница берется из кэша, боты понимают, что переобход не нужен.

Этот механизм работает одинаково во всех версиях протокола HTTP, включая HTTP/2 и HTTP/3 (стандартизирован в июне 2022 года). Заголовки кэширования относятся к уровню HTTP-семантики, а не транспорта, поэтому не зависят от версии протокола.

FAQ по теме

Last-Modified — обязательный заголовок?
Нет. Сервер может не отправлять его, и страница все равно будет индексироваться. Но без Last-Modified поисковые роботы не смогут определить, изменилось ли содержимое, и будут каждый раз загружать страницу заново.

Что такое If-Modified-Since и как он связан с Last-Modified?
If-Modified-Since — это заголовок запроса, который браузер или бот отправляют серверу. Он содержит дату из Last-Modified, полученную при предыдущем визите. Сервер сравнивает эту дату с текущей датой изменения и решает — отдать новый контент (200 OK) или сообщить, что ничего не изменилось (304 Not Modified).

Работает ли Last-Modified с HTTP/3?
Да. Last-Modified и If-Modified-Since работают одинаково в HTTP/1.1, HTTP/2 и HTTP/3, поскольку эти заголовки относятся к HTTP-семантике, а не к транспортному уровню.

Чем полезен заголовок Last-Modified для SEO и индексации

Яндекс рекомендует настроить отправку заголовка Last-Modified и обработку запроса If-Modified-Since. Из Яндекс Справки:

Следите за корректностью HTTP-заголовков. В частности, важно содержание ответа, который сервер отдает на запрос If-Modified-Since. Заголовок Last-Modified должен отдавать корректную дату последнего изменения документа.

Разберем конкретные преимущества.

Оптимизировать краулинговый бюджет и ускорить индексацию

Число страниц, которые поисковый робот может обойти за одно посещение, ограничено. Заголовок Last-Modified помогает оптимизировать краулинговый бюджет сайта.

Поисковые боты благодаря датам изменений контента расставляют приоритеты в обходе: начинают с тех страниц, где что-то изменилось. Это ускоряет индексацию новых и обновленных материалов.

По данным Google (декабрь 2024), всего 0,017% запросов краулера попадают в кэш — это значительно меньше, чем десять лет назад (0,026%). Google призывает владельцев сайтов активнее настраивать HTTP-кэширование, чтобы снизить нагрузку и на серверы, и на поисковые системы.

Показать актуальную дату материала в поисковой выдаче

Если дата указана в корректном формате, страницы могут участвовать в сортировке по дате. Поисковики и пользователи предпочитают свежие материалы — выше вероятность, что информация актуальна. Указывать даты последних изменений советует и представитель Google Джон Мюллер.

Ускорить загрузку страниц и сэкономить трафик

Пользователю не нужно каждый раз загружать страницу целиком, если есть кэш. Страницы, которые не менялись с последнего визита, загрузятся из кэша — экономия трафика и более быстрая загрузка.

Как настроить кэширование сайта

Снизить нагрузку на сервер

Сервер передает пользователю только те страницы, где что-то обновили. Для остальных — ответ 304 Not Modified, и данные берутся из кэша.

Это особенно важно для страниц с высокой посещаемостью. Допустим, пользователь ждет обновление результатов матча или появление новых вакансий и постоянно обновляет страницу. Если таких пользователей много, нагрузка на сервер растет из-за постоянных запросов и отрисовки страницы. С правильно настроенным Last-Modified сервер передаст страницу один раз, а дальше будет отвечать 304 Not Modified, пока содержимое не изменится.

FAQ по теме

Влияет ли Last-Modified на позиции сайта в выдаче?
Сам по себе заголовок не является фактором ранжирования. Но он косвенно влияет на SEO: помогает роботам быстрее находить и индексировать обновленный контент, а дата в выдаче повышает кликабельность свежих материалов.

Сколько краулингового бюджета экономит Last-Modified?
Зависит от размера сайта. Для небольших сайтов (до нескольких сотен страниц) эффект минимален — робот обойдет их целиком. Для крупных проектов с тысячами страниц экономия ощутима: робот пропускает неизмененные страницы и тратит бюджет на действительно обновленный контент.

Last-Modified и ETag: что рекомендует Google

В декабре 2024 года Google обновил документацию по краулингу и добавил рекомендации по использованию ETag — альтернативного механизма валидации кэша.

Что такое ETag

ETag (Entity Tag) — это HTTP-заголовок, который содержит уникальный идентификатор версии ресурса. Обычно это хеш содержимого страницы. Работает аналогично Last-Modified, но вместо даты использует строку-идентификатор:

ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

При повторном запросе бот отправляет этот идентификатор в заголовке If-None-Match. Если содержимое не изменилось, сервер ответит 304 Not Modified.

Почему Google рекомендует ETag

Google теперь рекомендует ETag вместо Last-Modified по нескольким причинам:

  • Точность. ETag привязан к содержимому, а не ко времени. Если два изменения произошли в одну секунду, Last-Modified их не различит, а ETag — различит.

  • Нет проблем с форматом даты. Last-Modified требует строгого формата (день недели, число, месяц, год, время в GMT). Ошибки в формате — частая причина, по которой кэширование не работает. ETag лишен этой проблемы.

  • Соответствие стандартам HTTP. Когда сервер отдает оба заголовка (ETag и Last-Modified), по спецификации HTTP клиент должен использовать ETag. Краулеры Google так и делают.

Что выбрать: ETag или Last-Modified

Лучший вариант — использовать оба заголовка одновременно. ETag обеспечит точную валидацию, а Last-Modified останется запасным механизмом для тех клиентов, которые не поддерживают ETag.

Для большинства сайтов на популярных CMS (WordPress, Битрикс, Drupal) и веб-серверах (Nginx, Apache) ETag генерируется автоматически. Проверьте, включена ли эта функция на вашем хостинге.

Важный нюанс: поддержка кэширования отличается у разных краулеров Google. Основной Googlebot полностью поддерживает и ETag, и Last-Modified. AdsBot чаще отправляет If-Modified-Since. А у Storebot-Google поддержка кэширования ограничена.

FAQ по теме

Можно ли использовать только ETag без Last-Modified?
Да, можно. Google будет корректно обрабатывать оба заголовка. Но для максимальной совместимости рекомендуется отдавать оба — некоторые краулеры и старые клиенты могут не поддерживать ETag.

Нужно ли настраивать ETag вручную?
В большинстве случаев нет. Веб-серверы Nginx и Apache генерируют ETag автоматически для статических файлов. Для динамических страниц может потребоваться дополнительная настройка на уровне CMS или приложения.

Яндекс тоже поддерживает ETag?
Яндекс в документации акцентирует внимание на Last-Modified и If-Modified-Since. Информации о полноценной поддержке ETag в краулере Яндекса в официальной документации нет. Для индексации в Яндексе настройка Last-Modified остается приоритетной.

Как настроить Last-Modified и If-Modified-Since

Перед настройкой убедитесь, что ваш сервер поддерживает заголовок Last-Modified. Большинство современных веб-серверов (Nginx, Apache, LiteSpeed) поддерживают его по умолчанию для статических файлов.

Настройка через плагины CMS

У популярных CMS есть готовые решения:

  • WordPress — плагин WP Last Modified Info (более 30 000 активных установок, рейтинг 4.9). Добавляет дату последнего обновления на страницы, генерирует разметку dateModified для Schema.org, поддерживает Gutenberg и Elementor. Также подойдут Clearfy и WP Super Cache.

  • 1С-Битрикс — модуль управления кэшированием встроен в систему. В настройках главного модуля включите отправку заголовков Last-Modified.

  • Drupal — модуль lastmodified_since.

Часто для отправки Last-Modified достаточно встроенного механизма кэширования CMS — проверьте настройки вашей системы.

Настройка вручную для статических страниц

Если сайт статический, укажите на каждой странице Last-Modified с датой последнего изменения и обновляйте ее вручную после каждой правки:

<meta http-equiv="Last-Modified" content="Tue, 04 Mar 2025 12:45:26 GMT">

Настройка на PHP для динамических страниц

Для динамического сайта можно настроить отправку HTTP-заголовка Last-Modified через PHP. Добавьте в начало скрипта (до вывода HTML) следующий код:

<!--?php

$LastModified_unix = strtotime(date("D, d M Y H:i:s", filectime($_SERVER['SCRIPT_FILENAME'])));
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix);
$IfModifiedSince = false;

if (isset($_ENV['HTTP_IF_MODIFIED_SINCE']))
   $IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));

if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
   $IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));

if ($IfModifiedSince && $IfModifiedSince -->= $LastModified_unix) {
   header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
   exit;
}

header('Last-Modified: ' . $LastModified);

?>

Разберем логику:

  • Первая строка получает время изменения файла и преобразует его в Unix-метку.

  • Функция gmdate формирует дату в нужном формате: день недели, число, месяц, год, часы, минуты, секунды, GMT.

  • Далее скрипт проверяет заголовок If-Modified-Since из запроса. Если дата совпадает или новее — отдаем 304 Not Modified и останавливаем выполнение. Если содержимое изменилось — сервер вернет 200 OK и загрузит страницу целиком.

Типичная ошибка: подмена даты текущим временем

Самая распространенная ошибка — использовать текущее время запроса как дату Last-Modified. В этом случае поисковые роботы будут загружать каждую страницу при каждом визите, краулинговый бюджет будет расходоваться впустую, а индексация замедлится.

Убедитесь, что Last-Modified отдает реальную дату изменения содержимого, а не время генерации ответа.

Как указать дату правильно

Если указать дату обновления некорректно, боты все равно проиндексируют страницу, но она не сможет участвовать в сортировке результатов по дате. Формат строгий, время — по Гринвичу (GMT):

Last-Modified: <день недели>, <число> <название месяца> <год> <час>:<минута>:<секунда> GMT

FAQ по теме

Что будет, если Last-Modified отдает неправильную дату?
Страница будет индексироваться, но не сможет участвовать в сортировке по дате в поисковой выдаче. Кроме того, механизм кэширования через If-Modified-Since перестанет работать корректно — робот будет каждый раз загружать страницу.

Нужно ли настраивать Last-Modified, если у меня небольшой сайт?
Для сайтов до нескольких сотен страниц острой необходимости нет — поисковые роботы обойдут их полностью. Но настройка все равно полезна: пользователи получат более быструю загрузку благодаря кэшированию, а в выдаче будет отображаться актуальная дата.

Работает ли Last-Modified для страниц, закрытых в robots.txt?
Нет. Если страница закрыта от индексации в robots.txt, робот не будет к ней обращаться, и заголовок Last-Modified не будет обработан.

Как проверить Last-Modified онлайн

Проверить наличие и корректность заголовка Last-Modified можно несколькими способами.

Инструмент PR-CY

У PR-CY есть бесплатный инструмент, который показывает, как поисковый робот видит вашу страницу. Если Last-Modified настроен, инструмент его отобразит:

Проверка Last-Modified онлайн — инструмент PR-CY
Проверка страницы в сервисе PR-CY

Яндекс Вебмастер

В панели Яндекс Вебмастера есть инструмент проверки ответа сервера. Введите URL страницы — и увидите все HTTP-заголовки, которые отдает сервер, включая Last-Modified и ETag:

Проверка Last-Modified в Яндекс Вебмастере
Проверка ответа сервера в Яндекс Вебмастере

Инструменты разработчика в браузере

Откройте DevTools (F12 или Ctrl+Shift+I), перейдите на вкладку Network, обновите страницу и выберите основной запрос. В разделе Response Headers найдите строки Last-Modified и ETag. Этот способ подходит для быстрой проверки без сторонних сервисов.

Через командную строку (cURL)

Для массовой или автоматизированной проверки удобно использовать команду cURL:

curl -I https://example.com/page/

Команда вернет заголовки ответа сервера, среди которых будут Last-Modified и ETag (если они настроены). Код ответа 200 OK означает, что страница загружена, 304 Not Modified — что содержимое не изменилось с последнего запроса.

FAQ по теме

Мой сервер не отдает Last-Modified — что делать?
Проверьте настройки веб-сервера (Nginx, Apache). Для статических файлов заголовок обычно включен по умолчанию. Для динамических страниц его нужно настраивать через CMS или PHP-код (примеры выше в разделе о настройке).

Как проверить, что If-Modified-Since работает корректно?
Сделайте два запроса к странице через cURL. Первый — обычный (curl -I URL). Из ответа возьмите значение Last-Modified. Второй — с заголовком If-Modified-Since: curl -I -H "If-Modified-Since: дата_из_первого_ответа" URL. Если сервер вернул 304 Not Modified — механизм работает. Если 200 OK — значит, обработка If-Modified-Since не настроена.


Заголовок Last-Modified остается важным инструментом для оптимизации краулингового бюджета, ускорения индексации и кэширования сайта. С обновлением документации Google в 2024 году стоит дополнить его заголовком ETag — это даст максимальный эффект для взаимодействия с поисковыми краулерами.

Если у вас остались вопросы по настройке Last-Modified и ETag — задавайте в комментариях!

Возьмите под контроль продвижение своего сайта
Исправьте ошибки, которые мешают сайту выйти в топ, и вы увидите рост трафика и дохода.
🔍 Подпишись на @prcynews в телеграм — оставайся в курсе последних SEO новостей и свежих материалов.

Теги поста или какие разделы почитать еще:

Комментарии (2)
wprazor   16.03.2021 14:20
Last-Modified не будет отображаться если страница закеширована в memcached.

Также Гугл и Яндекс прекрасно проиндексировали 50к страниц за неделю.
viktim   19.03.2021 12:31
Данная фича полезен только тем у кого больше 10 000 страниц и данные постоянно обновляется.

Также проще отдать 200 ботам чем написать целую кучу алгоритмов проверки контента чтобы отдать правильный код ответа.

Код в статье вообще костыль в костыле, работает не везде.
К данной записи нельзя добавлять комментарии, т.к. она очень старая.
Как ускорить загрузку сайта: полное руководство по оптимизации скорости
Метатеги сайта: полный гайд по Title, Description, Canonical, Robots и другим тегам
SEO-продвижение сайта на WordPress в 2026 году: пошаговый гайд с настройкой и чек-листом
Обновление контента на сайте: зачем, как и когда
На гребне поискового спроса: как работать со статьями разной степени актуальности + кейсы и примеры
Виджеты для сайта: что это такое, какие бывают и как правильно внедрять