Как ускорить индексацию новых страниц в разы. Last-Modified и If-Modified-Since
Заветная мечта многих оптимизаторов — быстрая индексация страниц сайтов поисковыми роботами. Для этого создаются карты сайтов, файлы sitemap. xml, делается внутренняя перелинковка страниц
Как работает Last-Modified
HTTP заголовок Last-Modified (последние изменения) отсылает клиенту время последнего изменения страницы на сайте. Клиент (браузер или робот поисковой системы) отсылает серверу заголовок «If-Modified-Since» и если дата и время последнего изменения страницы совпадает, сервер возвращает заголовок «304 Not Modified» и не загружает страницу. А если время последнего изменения отличается (или last modified header не настроен) — сервер возвращает заголовок «200 OK» и загружает страницу. Браузер (клиент) получает только ответ 304, вместо полной загрузки страницы, которая не менялась на сайте. Сервер экономит данные, а клиент экономит трафик. Все в плюсе!
В чем польза для SEO?
Всегда работает правило: 100 страниц будут загружаться и индексироваться поисковиками быстрее чем 1000. Мы облегчаем работу роботам и даем им сначала нужные страницы, а потом уже все остальные на его усмотрение.
Как и sitemap xml, заголовки last-modified это рекомендация, а не жесткое правило и поисковые роботы также будут индексировать старые страниц, но уже в порядке, который нужен нам. А если в результатах поиска рядом со страницами сайта будет показываться дата, это повысит CTR страницы в поисковой выдаче, что положительно скажется на поведенческих факторах ранжирования сайта.
Инструкция по настройке заголовка Last-Modified
Крупные поисковые системы рекомендуют вебмастерам использовать обработку заголовков для ускорения индексации или сокращения нагрузки. Вот, что по этому поводу пишут поисковики в своих руководствах.
Руководство по индексированию Яндекса:
Следите за корректностью http-заголовков. В частности, важно, содержание ответа, который сервер отдает на запрос «if-modified-since». Заголовок Last-Modified должен отдавать корректную дату последнего изменения документа. Даже если сервер не выдает дату последней модификации документа (last-modified), ваш сайт будет проиндексирован. Однако в этом случае следует учитывать следующее:
— в результатах поиска не будет показываться дата рядом со страницами вашего сайта;
— при сортировке по дате сайт не будет виден большинству пользователей;
— робот не сможет получить информацию о том, обновилась ли страница сайта с момента последнего индексирования. А так как число страниц, получаемых роботом с сайта за один заход, ограничено, изменившиеся страницы будут переиндексироваться реже.
Рекомендации веб-мастерам от Google:
Убедитесь, что ваш веб-сервер поддерживает HTTP-заголовок «If-Modified-Since». Этот заголовок позволит веб-серверу сообщать Google, изменился ли контент сайта со времени последнего сканирования. Поддержка этой функции сокращает издержки и нагрузку на полосу пропускания.
Пример настройки last-modified и If-Modified-Since
Как настроить Last-Modified для статичных html страниц
<meta http-equiv="Last-Modified" content="Fri, 15 Sep 2017 10:01:01 GMT">
Как настроить Last-Modified в php
<?php $LastModified_unix = 1294844676; $LastModified = gmdate("D, d M Y H:i:s GMT", $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); ?>
Как настроить 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 nginx + php
location ~ .php$ { … if_modified_since off; fastcgi_pass fcgi; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<путь > /web$fastcgi_script_name; … fastcgi_pass_header Last-Modified; include fastcgi_params; }
Как проверить корректность работы Last-Modified
Важно, после настройки не забыть проверить как работает новый инструмент. Проверить Last-Modified можно на любом сайте. Сделать это можно при помощи сервиса last-modified.com
Настройка заголовка Last-Modified и обработка заголовка If-Modified-Since нужна всем без исключения крупным сайтам. Особенно это важно для проектов, у которым контент обновляется ежедневно: СМИ, социальные сети, различные агрегаторы. СМИ важно, чтобы новостные публикации появлялись в поиске максимально быстро. Это даст не только дополнительный трафик, но и улучшит поведенческие факторы — люди и роботы будут больше ценить те сайты, которые поставляют им актуальный контент максимально быстро.
Задавайте вопросы и подписывайтесь на полезную рассылку!