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

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

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

Алгоритм такой: поисковой робот «спрашивает» у сервера – не изменилась ли страница с определенной даты. Если страница изменилась – сервер возвращает страницу как обычно, если изменений не было возвращает только заголовок «304 Not Modified».

Пример для модуля статей или новостей, предполагается что в БД хранится даты создания и изменения статьи в формате UnixTime. Код ставится до вывода контента в браузер.

// Собираем даты создания и изменения статьи.
$dates[] = 1450462745;
$dates[] = 1482085145;

$latest = max($dates);
if (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
	$request = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);
	if (!empty($request) && $request >= $latest ) {
		header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
		exit();
	}
}
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $latest) . ' GMT');
PHP

Теперь на странице где работает код в ответе сервера будет заголовок Last-Modified. Проверить можно в сервисе last-modified.com/ru/ или в код-инспекторе браузера:

Заголовок Last-Modified в консоле браузера

Если не работает

Заголовка нет в ответе сервера, а например Last-Modified-x есть:

header('Last-Modified-x: ' . gmdate('D, d M Y H:i:s') . ' GMT');
PHP

Причина тут в nginx и модуле ngx_http_ssi_module – он удаляет заголовок Last-Modified отправленный из PHP, нужно в конфиге nginx отключить модуль SSI.

location / {
	ssi off;
	...
}
18.12.2016, обновлено 26.03.2021
8554

Комментарии

, чтобы добавить комментарий.

Другие публикации

Вывод даты с русскими месяцами
PHP-функция для вывода даты в привычном формате из метки unix timestamp.
6245
+5
Операции с датами и временем Unixtime в PHP
Unix-время (англ. Unix time, также POSIX-время) — система описания моментов во времени. Определяется как количество...
24425
+12
Описание мета-тегов
В статье представлены все самые встречающеюся мета-теги с примерами и пояснениями их использования.
26755
+4
Мануал по созданию и форматированию excel файлов в PHPExcel
К сожалению разработчики прекратили поддержку и разработку проекта, но PHPExcel все равно остается популярной...
129059
+36
Формирование файла sitemap.xml
Пример создания файла карты сайта (sitemap.xml) на PHP. Интеграция его на сайт и подключение его в robots.txt
24073
+3
Счетчик просмотров страниц с графиком
Для примера возьмем статейный сайт, на нём нужно сделать счетчик просмотров статей, с выводом результатов за день,...
19317
+23