Краткое саммари
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:
При первом запросе документа сервер отдает содержимое страницы и указывает дату последнего изменения в HTTP-заголовке Last-Modified.
При повторном обращении бот или браузер отправляют серверу запрос с заголовком If-Modified-Since — изменилась ли страница после указанной даты? Если да, нужна новая версия.
Сервер сравнивает даты. Дальше два сценария:
страница изменилась — сервер возвращает код 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 настроен, инструмент его отобразит:

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

Инструменты разработчика в браузере
Откройте 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 — задавайте в комментариях!