Вы можете спасать жизни, где бы вы ни находились. Чтобы узнать, как помочь украинцам в их борьбе за мир и свободу – перейдите по ссылке: Помочь Украине! ×

Last modified и If modified since — назначение заголовков, механика работы

304 Not Modified Статьи

Назначение: заголовки необходимы для того, чтобы дать понять клиенту (поисковому боту) то, что контент на странице не был изменен с момента последнего посещения. По логике данный механизм понижает приоритет страницы на переиндексацию, что влечет более быструю индексацию страниц, контент которых был изменен. Считаю, что заголовки больше нужны для сайтов с большим количеством страниц (сверх 100 000). Также применимо для ИМ, не взирая на то, что у интернет-магазинов есть много динамического контента (его можно исключить, вопрос в возможностях и профессионализме администратора).

Механика работы

  1. Клиент запрашивает страницу, на выходе получает 200 OK + заголовок Last-Modified (в этом заголовке дата последнего изменения контента. На ИМ часто тупо ставят 1 день назад).
  2. Запрашивает повторно страницу (переиндексация через 5 дней, скажем) с входным заголовком If-Modified-Since, в котором стоит значение с датой из Last-Modified. Если после переданной даты не было изменений, то сервер отдаст 304 (мол ничего не изменилось, и можешь не тратить ресурс, чтобы не переиндексировать):
    304 Not Modified
  3. Если изменения были, то 200 OK и новое значение в Last-Modified (дата, когда был изменен контент):200 and new Last-Modified
  4. Для проверки корректности рекомендую использовать сервис "Проверка ответа сервера" в ЯндексВебмастер, т.к. в нем можно выбрать дату для запроса. Использовать сервис https://last-modified.com не рекомендую, т.к. в нем нельзя выбрать дату для запроса.

Суть

  1. Контент на странице может не обновляться годами. Следовательно при каждом последующем посещении боту всегда будут отдавать 304. Тогда, по задумке, бот понизит приоритет пересканирования данной страницы.
  2. Если же контент изменился после первого посещения — тогда боту сразу отдадут 200 код (мол пора переиндексировать страницу) и новую дату Last-Modified.

Если проще, то "Клиент" и "Сервер" обмениваются датами

  • клиент (поисковый бот) при первом обращении получил дату 21.09.2019 и запомнил у себя;
  • при втором обращении клиент отправляет запрос на сервер с датой 21.09.2019;
  • сервер сам решает, были ли изменения с 21.09.2019 или нет. Если были — отдаст 200 и соответственно новую дату в Last-Modified. Если изменений не было — отдаст 304.

Делать костыль, когда в Last-Modified всегда пишут дату "Сутки назад", смысла нет. Максимум, что мы выигрываем — это не даем боту 2 раза в течении суток переиндексировать эту страницу.

В SEO с 2008 года: 5 лет работа веб-мастером, 3 года в SEO-студиях, 1 год в удаленных командах, с 2017 — Freelance.

Оцените автора
SeoAndrii