Ускорение индексации новых страниц. Заголовок 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.