Ускорение индексации новых страниц. Заголовок Last-Modified

Зачем нужны заголовки Last-Modified и If-Modified-Since?

Сканируя интернет, пауки Google и Яндекса сохраняют в своей базе копию каждого сайта. Эта копия служит неким образцом для сравнения: все ли по-прежнему или произошли изменения. И если не настроены заголовки Last-Modified и If-Modified-Since или настроены неправильно, новые страницы сайта проходят индексацию, а главная в кэше поисковиков долго не обновляется, как не обновляется и лента комментариев.

HTTP заголовок Last-Modified (последние изменения) передает клиенту время последнего изменения документа (веб-страницы). Клиент (браузер или поисковый робот) отправляет серверу заголовок «If-Modified-Since» и если дата последнего изменения страницы совпадает, сервер возвращает заголовок «304 Not Modified» и не загружает страницу. Если время последнего изменения отличается (или last modified header не настроен) — сервер возвращает заголовок «200 OK» и загружает страницу. То есть вместо повторной перезагрузки страницы и обновления кеша, клиент получает всего лишь заголовок 304. Клиент экономит трафик, а сервер отдает меньше данных — обоюдная экономия.

Яндекс о Last-Modified

    Следите за корректностью http-заголовков. В частности, важно, содержание ответа,
    который сервер отдает на запрос «if-modified-since».
    Заголовок Last-Modified должен отдавать корректную дату последнего изменения документа.
    Даже если сервер не выдает дату последней модификации документа (last-modified),
    ваш сайт будет проиндексирован. Однако в этом случае следует учитывать следующее:
    - в результатах поиска не будет показываться дата рядом со страницами вашего сайта;
    - при сортировке по дате сайт не будет виден большинству пользователей;
    - робот не сможет получить информацию о том, обновилась ли страница сайта с момента
    последнего индексирования. А так как число страниц, получаемых роботом с сайта за один заход,
    ограничено, изменившиеся страницы будут переиндексироваться реже.

Google о Last-Modified

    Убедитесь, что ваш веб-сервер поддерживает HTTP-заголовок "If-Modified-Since".
    Этот заголовок позволит веб-серверу сообщать Google, изменился ли контент сайта
    со времени последнего сканирования. Поддержка этой функции сокращает издержки и
    нагрузку на полосу пропускания.

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


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

Как настроить Last-Modified для статичных html страниц

Для этого надо записать между и строку


    

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


$lm_time = 1294844676;
$lm = gmdate("D, d M Y H:i:s", $lm_time)." GMT";
$ifms = false;
if (isset($_ENV['HTTP_IF_MODIFIED_SINCE']))
    $ifms = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
    $ifms = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
if ($ifms && $ifms >= $lm_time) {
    header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
    exit;
}
header('Last-Modified: '. $lm);

Проверить Last-Modified

После настройки передачи заголовка клиенту, не повредит проверка last modified на корректность. Проверить Last-Modified на собственном или стороннем сайта можно через онлайн сервис проверки заголовка Last-Modified.

  1. SEO