- Главное о Last-Modified: что это, как настроить и проверить
- Чем полезен Last-modified
- Сократить нагрузку роботам — ускорить индексацию
- Отобразить новую дату материала
- Ускорить загрузку и сэкономить трафик
- Снизить нагрузку на сервер
- Как настроить Last-modified
- Настройка Last-modified через плагины или вручную
- Как указать дату правильно
- Как проверить Last-Modified
- Заголовок Last-Modified ускоряет индексацию новых страниц в разы
- Настройка заголовка Last-Modified
- Как настроить meta Last-Modified для статичных html страниц
- Как настроить Last-Modified в php
- Как настроить Last-Modified .htaccess
- Как настроить Last-Modified nginx + php
- Проверить Last-Modified
- Last-Modified
- Syntax
- Directives
- Examples
- Specifications
- Browser compatibility
- See also
- Found a content problem with this page?
- MDN
- Support
- Our communities
- Developers
Главное о Last-Modified: что это, как настроить и проверить
Last-modified — это http-заголовок с датой и временем последнего изменения страницы по мнению сервера. Шаблон такой:
Это необязательный для заполнения заголовок. Но боты смотрят на заголовок Last-modified, когда индексируют страницу, чтобы понимать, есть ли смысл посещать ее повторно.
- При первом запросе документа сервер сообщает текущее время и дату с точным временем последнего изменения документа в http-заголовке Last-Modified.
- При повторном обращении к документу бот или браузер отправят на сервер, где лежит кэшированная страница, запрос If-Modified-Since — не изменилась ли страница после даты, полученной в Last-Modified? Если изменилась, нужна новая версия.
- В ответ боты и браузер получают информацию, когда страницу изменили. Дальше возможны два варианта:
- если после посещения бота на странице что-то поменяли, сервер возвратит 200 ОК и будет загружать новое содержимое страницы, а робот поймет, что ему нужно обработать изменения;
- если с последнего посещения страница не изменилась, сервер возвращает заголовок «304 Not Modified» и не будет загружать сайт. Страница загрузится из кэша, боты поймут, что изменений нет, и переобходить ее не будут.
Чем полезен Last-modified
Яндекс советует настроить отправку заголовка Last-Modified и обработку запроса If-Modified-Since:
«Следите за корректностью HTTP-заголовков. В частности, важно содержание ответа, который сервер отдает на запрос «if-modified-since». Заголовок Last-Modified должен отдавать корректную дату последнего изменения документа». Яндекс.Справка
Чем это полезно для сайта:
Сократить нагрузку роботам — ускорить индексацию
Число страниц, которые поисковый робот может проанализировать за один заход, ограничено. Last-modified позволяет оптимизировать краулинговый бюджет сайта.
Поисковые боты благодаря датам изменений контента могут расставить приоритеты в обходе: начать с важных страниц, где что-то изменилось. Это повысит индексацию новых материалов.
Отобразить новую дату материала
Если веб-мастер указал дату в корректном формате, страницы сайта будут участвовать в сортировке по датам в выдаче. Поисковики и пользователи любят свежие материалы: выше шанс, что информация будет актуальной. Указывать даты последних изменений на страницах крупных сайтов советует и представитель Google Джон Мюллер.
Ускорить загрузку и сэкономить трафик
Пользователю не нужно каждый раз заново загружать страницу, если есть кэш. Страницы, которые никак не поменялись с последнего обращения, загрузятся из кэша — это позволит сэкономить трафик пользователей и ускорить загрузку страницы.
Снизить нагрузку на сервер
Серверу нужно будет передавать пользователю только те страницы, где что-то обновили. Если изменений не было, в дело пойдут версии из кэша.
Особенно это важно страницам с высокой посещаемостью некоторых тематик. Например, пользователь ждет письмо, обновление результатов матча или появление новых вакансий и постоянно обновляет обновлять страницу. Если таких пользователей много, возрастет нагрузка на сервер из-за постоянных запросов страницы и ее отрисовки. Если правильно настроить Last-Modified, сервер передаст страницу один раз, и пока на ней ничего не изменилось, на запросы будет отвечать «304 Not Modified» — изменений нет, повторно загружать не надо.
Как настроить Last-modified
Перед настройкой Last Modified нужно убедиться, что ваш сервер вообще его поддерживает.
Настройка Last-modified через плагины или вручную
У популярных CMS есть готовые решения, к примеру:
Часто для того же результата достаточно реализованного кэширования на CMS.
Если сайт статический, достаточно на каждой странице указать Last-Modified с датой последнего изменения. А после обновлений менять дату вручную.
Если динамическая, то есть постоянно обновляется, можно настроить отправку http-заголовка Last-Modified на php, добавив в head страницы код:
= $LastModified_unix) < header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified'); exit; >header('Last-Modified: '. $LastModified); ?>
Первая строка преобразует дату в метку в формате Unix Time Stamp, используя время изменения текущей страницы, которое определяет автоматически.
Дальше проверяем If-Modified-Since, если изменений нет — отдаем 304 Not Modified и останавливаем работу скрипта, если есть — ответ сервера 200 ОК, отдаем страницу целиком.
Как указать дату правильно
Если указать дату обновления некорректно, боты все равно проиндексируют страницу, но она не сможет участвовать в сортировке результатов по дате.
Порядок должен быть таким, используется GMT — время по Гринвичу:
Как проверить Last-Modified
У PR-CY есть бесплатный инструмент, позволяющий взглянуть на сайт глазами поискового робота. Если Last-Modified есть, инструмент его покажет:
В панели Яндекс.Вебмастера есть инструмент «Проверка ответа сервера»:
Сервер будет отдавать 304 Not Modified в случае, когда страница не изменилась с последнего посещения, и 200 ОК, если на ней что-то меняли.
Вы используете Last-Modified, видите в нем смысл? Расскажите в комментариях!
Заголовок Last-Modified ускоряет индексацию новых страниц в разы
HTTP заголовок Last-Modified (последние изменения) передает клиенту время последнего изменения документа (веб-страницы). Клиент (браузер или поисковый робот) отправляет серверу заголовок «If-Modified-Since» и если дата последнего изменения страницы совпадает, сервер возвращает заголовок «304 Not Modified» и не загружает страницу. Если время последнего изменения отличается (или last modified header не настроен) — сервер возвращает заголовок «200 OK» и загружает страницу. То есть вместо повторной перезагрузки страницы и обновления кеша, клиент получает всего лишь заголовок 304. Клиент экономит трафик, а сервер отдает меньше данных — обоюдная экономия.
Но, зачем была бы эта статья, если не рассказать про пользу, которую настройка заголовка Last-Modified несет для SEO оптимизации сайта, а если точнее для ускорения индексации сайта. Нетрудно догадаться, что 10 страниц сайта будут проиндексированы быстрее, чем 1000. Тот же принцип, который позволяет оптимизировать загрузку страниц работает и для индексации. Поисковой системе не нужно индексировать 1000 страниц, чтобы найти 10 новых страниц. Благодаря last modified, мы оставляем для робота только новые страницы (или обновленные). Робот приходит на сайт и берет сперва то, что нужно, а потом все остальное.
Да, как и sitemap xml, заголовки last-modified являются рекомендаций , а не руководством к действию и поисковые роботы все равно будут индексировать даже старые страниц, но уже в другом порядке. Кроме того, если в результатах поиска рядом со страницами сайта будет показываться дата, это значительно повысит CTR сайта в поиске, что хорошо скажется на поведенческом факторе сайта.
Настройка заголовка Last-Modified
Крупные поисковые системы рекомендуют вебмастерам использовать обработку заголовков для ускорения индексации или сокращения нагрузки. Вот, что по этому поводу пишут поисковики в своих руководствах.
Следите за корректностью http-заголовков. В частности, важно, содержание ответа, который сервер отдает на запрос «if-modified-since». Заголовок Last-Modified должен отдавать корректную дату последнего изменения документа. Даже если сервер не выдает дату последней модификации документа (last-modified), ваш сайт будет проиндексирован. Однако в этом случае следует учитывать следующее: - в результатах поиска не будет показываться дата рядом со страницами вашего сайта; - при сортировке по дате сайт не будет виден большинству пользователей; - робот не сможет получить информацию о том, обновилась ли страница сайта с момента последнего индексирования. А так как число страниц, получаемых роботом с сайта за один заход, ограничено, изменившиеся страницы будут переиндексироваться реже.
Убедитесь, что ваш веб-сервер поддерживает HTTP-заголовок "If-Modified-Since". Этот заголовок позволит веб-серверу сообщать Google, изменился ли контент сайта со времени последнего сканирования. Поддержка этой функции сокращает издержки и нагрузку на полосу пропускания.
Вот примеры того, как настроить отправку заголовка last-modified и правильную обработку If-Modified-Since.
Как настроить meta Last-Modified для статичных html страниц
Как настроить Last-Modified в php
= $LastModified_unix) < header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified'); exit; >header('Last-Modified: '. $LastModified); ?>
Как настроить Last-Modified .htaccess
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%] RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%]
Как настроить Last-Modified nginx + php
location ~ .php$ < … if_modified_since off; fastcgi_pass fcgi; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME //web$fastcgi_script_name; … fastcgi_pass_header Last-Modified; include fastcgi_params; >
Проверить Last-Modified
Когда передача заголовка клиенту настроена, не повредит проверка last modified на корректность. Проверить Last-Modified на собственном или стороннем сайта можно через онлайн сервисы.
Или сделать свою проверку на корректную обработку заголовка Last-Modified:
Настройка заголовка Last-Modified и обработка заголовка If-Modified-Since будет крайне полезна любому более или менне крупному сайту. Скорость обработки страниц сайта может стать значительным фактором улучшения ранжирования сайта в поиске. Сравнительно несложная настройка не создаст проблем, тем более, что для популярных CMS вроде joomla, wordpress, modx и т.д. существуют готовые решения.
Получите доступ к начальным урокам для
погружения в профессию “Интернет-маркетолог”
Получить доступ
Last-Modified
The Last-Modified response HTTP header contains a date and time when the origin server believes the resource was last modified. It is used as a validator to determine if the resource is the same as the previously stored one. Less accurate than an ETag header, it is a fallback mechanism. Conditional requests containing If-Modified-Since or If-Unmodified-Since headers make use of this field.
Last-Modified is also used by crawlers to adjust crawl frequency, by browsers in heuristic caching, and by content management systems (CMS) to display the time the content was last modified.
Syntax
Directives
One of «Mon», «Tue», «Wed», «Thu», «Fri», «Sat», or «Sun» (case-sensitive).
2 digit day number, e.g. «04» or «23».
One of «Jan», «Feb», «Mar», «Apr», «May», «Jun», «Jul», «Aug», «Sep», «Oct», «Nov», «Dec» (case sensitive).
4 digit year number, e.g. «1990» or «2016».
2 digit hour number, e.g. «09» or «23».
2 digit minute number, e.g. «04» or «59».
2 digit second number, e.g. «04» or «59».
Greenwich Mean Time. HTTP dates are always expressed in GMT, never in local time.
Examples
Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
Specifications
Browser compatibility
BCD tables only load in the browser
See also
Found a content problem with this page?
This page was last modified on Apr 10, 2023 by MDN contributors.
Your blueprint for a better internet.
MDN
Support
Our communities
Developers
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.