Как и зачем настраивать заголовок Last-Modified?

17 марта
Время чтения: 3 минуты

Зачем настраивать заголовок Last-Modified. Давайте попробуем максимально быстро и просто разобраться с настройкой заголовка Last-Modified.

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

Цель этого заголовка — сообщить клиенту (браузеру или поисковику) информацию о последних изменениях конкретной страницы. Клиент передает серверу заголовок If-Modified-Since. Если изменений на странице не обнаружено, то от сервера возвращается заголовок «304 Not Modified». При этом страница не загружается.

304 not modified

Если же изменения вносились, то это будет учтено, и сервер вернет заголовок «200 OK» (страница загрузится с обновленным содержимым).

Last-Modified header

Корректная настройка Last-Modified дает следующие преимущества:

  • ускоряется загрузка страниц для пользователей;
  • снижается нагрузка на сервер;
  • в результатах поиска отображается дата последнего обновления содержимого страницы;
  • страницы при сортировке в поисковике по дате занимают более высокие позиции;
  • существенно ускоряется индексация страниц.

Почему же роботы быстрее индексируют сайты с настроенным Last-Modified?

Ответ прост: если на сайте было изменено всего 20 страниц, то роботу не нужно индексировать все 500 в поисках нового контента, поскольку Last-Modified укажет страницы с изменениями.

Но это указание является рекомендательным, как и sitemap.xml, поэтому робот вначале проиндексирует обновленные страницы, а затем — все остальные.

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

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

Для начала необходимо проверить, настроен ли у вас этот заголовок. Для этого можно использовать сервисы varvy.com, last-modified.com или tools.seo-auditor.com.ru. Если проверка показала отсутствие заголовка, то следует приступить к его настройке.

Если у вас статический сайт, то для каждой страницы необходимо прописать код, который вы видите на экране:

<meta http-equiv=»Last-Modified» content=»Sat, 11 Feb 2017 11:04:54 GMT»>

После каждого изменения содержимого вручную изменяем дату в коде. И что, каждый раз так, спросите вы меня? Да, если сайт статический.

Если сайт динамический, то используем настройку в PHP. Часто встречается вот такой код:

header(«Last-Modified: » . date(‘r’,strtotime($post->post_modified)))

Его необходимо добавить в header.php. Но он будет работать только для записей и страниц и не будет срабатывать на главной. Также он недействителен для таксономий, архивов и учета новых комментариев.

В связи с этим рекомендуется использовать следующий код:

<?php

$LastModified_unix = 1294844676;

$Last Modified = 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);

?>

Также можно настроить заголовок, прописав две строки в файле .htaccess:

RewriteRule .* — [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]

RewriteRule .* — [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]

Но в этом случае необходимо проверить, не возникнет ли проблем со стороны хостинга.

Чтобы не прописывать коды, можно использовать готовые решения для настройки Last-Modified. Например, для CMS WordPress есть плагины Clearfy и Last Modified Timestamp. Настройку можно выполнить с помощью плагина WP Super Cache. Для этого в расширенных настройках активируйте пункт «Ошибка 304» (поддержка ответа 304 отключена по умолчанию, так как на некоторых хостингах могут возникать проблемы). Для других CMS также существуют свои плагины, ну или в крайнем случае, можно заказать плагин у программиста.

Настройка Last-Modified в Word-Press

Следует понимать, что настройка Last-Modified не всегда полезна (например, когда на каждой странице установлен «сквозной» блок информации с регулярно меняющимся контентом одинакового содержания). В этом случае поисковики могут перестать воспринимать информацию как новую и станут реже посещать ваш сайт.

В остальных случаях, настроив Last-Modified, вы получаете:

  • экономию трафика;
  • ускоряете работу сайта;
  • выполняете рекомендации поисковиков Google и Яндекс, что значительно ускоряет индексацию и повышает видимость страниц в поиске. Особенно хорошо это заметно на ресурсах с большим количеством страниц.
Читайте еще