Проверить Last-Modified и If-Modified-Since
Зачем нужен Last-Modified
HTTP заголовок Last-Modified
сообщает клиенту время
последнего изменения страницы (объекта). Если клиент (браузер, поисковый робот) получил заголовок
Last-Modified
, то при следующем обращении к адресу, при условии, что
страница
(объект) есть в локальном кеше, он добавит вопрос If-Modified-Since
(не
изменилась ли страница после даты, полученной в Last-Modified
). В
свою
очередь сервер, получив запрос If-Modified-Since
должен сверить
полученную
временную метку с временем последнего изменения страницы и, если страница не изменялась ответить
304 Not Modified
.
Экономия Трафика
Если страница не изменилась, то сервер прекратит передачу данных после отправки
заголовков с кодом 304 Not Modified
, тело страницы, изображения и
другие
объекты передаваться не будут.
Снижение нагрузки на сервер
Правильная реализация проверки времени последнего изменения страницы может значительно (до 30% и более) сократить нагрузку на сервер. Под правильной реализацией подразумевается проверка времени до начала генерации страницы на динамическом сайте. В таком случае все действия для генерации страницы (запрос контента из базы данных, парсинг шаблонов, получение комментариев и др) выполняться не будут.
Особенно это актуально для сайтов с высокой посещаемостью и долгой продолжительностью
визита пользователя. Пример: пользователь находится на сайте спортивных новостей и постоянно
обновляет
главную страницу в ожидании публикации результата матча. За несколько минут страница может быть
запрошена и
получена десятки раз. Если заголовок Last-Modified
отдается и запрос
If-Modified-Since
обрабатывается правильно, то реально страница будет
передана
один раз, а на все последующие запросы будет выдан ответ 304 Not
Modified
.
Еще пример: новостные агрегаторы, например, «Яндекс.Новости». Пользователи, находящиеся на таком сайте в будний день могут неоднократно обновлять страницы разделов в ожидании свежих новостей.
Ускорение индексации поисковыми системами
Поисковые системы через руководство для вебмастеров рекомендуют отсылать заголовок Last-Modified
и правильно обрабатывать If-Modified-Since
.
Google: Руководство для веб-мастеров
Убедитесь, что ваш веб-сервер поддерживает HTTP-заголовок If-Modified-Since
.
Этот заголовок позволит веб-серверу сообщать Google, изменилось ли содержание сайта со времени
последнего
сканирования. Поддержка данной функции сократит нагрузку на пропускную способность и издержки.
Яндекс: Советы вебмастеру
Следите за корректностью http-заголовков. В частности, важно, содержание ответа, который
сервер отдает на запрос if-modified-since
. Заголовок Last-Modified
должен отдавать корректную дату последнего изменения
документа.
Если сервер не выдает дату последней модификации документа, ваш сайт будет проиндексирован, но:
- в
результатах поиска не будет показываться дата рядом со страницами вашего сайта;
- при сортировке
по дате
сайт не будет виден большинству пользователей;
- робот не сможет получить информацию о том,
обновилась
ли страница сайта с момента последнего индексирования. А так как число страниц, получаемых роботом с
сайта
за один заход, ограничено, изменившиеся страницы будут переиндексироваться реже.