304 not modified настройка

Заголовок Last-Modified ускоряет индексацию новых страниц в разы

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

Но, зачем была бы эта статья, если не рассказать про пользу, которую настройка заголовка Last-Modified несет для SEO оптимизации сайта, а если точнее для ускорения индексации сайта. Нетрудно догадаться, что 10 страниц сайта будут проиндексированы быстрее, чем 1000. Тот же принцип, который позволяет оптимизировать загрузку страниц работает и для индексации. Поисковой системе не нужно индексировать 1000 страниц, чтобы найти 10 новых страниц. Благодаря last modified, мы оставляем для робота только новые страницы (или обновленные). Робот приходит на сайт и берет сперва то, что нужно, а потом все остальное.

Да, как и sitemap xml, заголовки last-modified являются рекомендаций , а не руководством к действию и поисковые роботы все равно будут индексировать даже старые страниц, но уже в другом порядке. Кроме того, если в результатах поиска рядом со страницами сайта будет показываться дата, это значительно повысит CTR сайта в поиске, что хорошо скажется на поведенческом факторе сайта.

Настройка заголовка Last-Modified

Крупные поисковые системы рекомендуют вебмастерам использовать обработку заголовков для ускорения индексации или сокращения нагрузки. Вот, что по этому поводу пишут поисковики в своих руководствах.

Вот примеры того, как настроить отправку заголовка last-modified и правильную обработку If-Modified-Since.

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

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

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

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

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

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

Или сделать свою проверку на корректную обработку заголовка Last-Modified:

Читайте также:  проблема установки скачанных обновлений windows

Настройка заголовка Last-Modified и обработка заголовка If-Modified-Since будет крайне полезна любому более или менне крупному сайту. Скорость обработки страниц сайта может стать значительным фактором улучшения ранжирования сайта в поиске. Сравнительно несложная настройка не создаст проблем, тем более, что для популярных CMS вроде joomla, wordpress, modx и т.д. существуют готовые решения.

Добавить комментарий (8) Отменить ответ

Насколько я понимаю, это очень общие советы? При добавлении такого заголовка нужно проанализировать весь сайт , как он настроен дял подачи нового материала. Если я не права, то следует более детально давать инструкции. Насторойка заголовка last -modified производиться где: в php, .htaccess и других ресурсах одновременно или только где-то в одном документе? Если в .htaccess, то в какой конкретно модуль вставлять эти строки? Все слишком запутано.

Полностью солидарен с Вами, и еще один факт для WordPress ни один пример не работает.

Для WP существует масса решений, неужели не нашли?

Вы правильно подметили, и похоже конверт монстру по барабану ваши замечания,

Беспочвенные обвинения, так не приятны(

Да, это общие советы. Универсального правильного кода быть не может.
Если у вас распространенная cms, начните поиск решения с плагина (на WP, например WP Super Cache хорошо себя показал).
Ну и конечно, не рекомендуем лезть в код без специалистов.

источник

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

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

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

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

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

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

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

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

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

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

Читайте также:  mikrotik rb750 настройка beeline

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

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

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

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

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

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

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

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

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

header ($_SERVER[‘SERVER_PROTOCOL’] . ‘ 304 Not Modified’);

header(‘Last-Modified: ‘ . $LastModified);

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

RewriteRule .* — [E=HTTP_IF_MODIFIED_SINCE:%]

RewriteRule .* — [E=HTTP_IF_NONE_MATCH:%]

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

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

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

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

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

источник

Отдача HTML заголовков 304 Not Modified на PHP

Тут мы обсудим работу с заголовком 304 Not Modified на PHP. Здесь вы не найдете подробного разжевывания работы функций, но представлен простой фрагмент кода, который решит эту задачу.

Этот материал может помочь новичкам разобраться в теме, как добиться правильного отображения текущего состояния сайта в браузерах пользователя. Дабы не вдаваться в подробности кеширования файлов сайта на стороне браузеров, прокси серверов, и не лезть в настройки веб сервера (ну мало ли просто не хочется), особенно если есть навыки работы в PHP, предлагаю ознакомиться с моим постом!

Читайте также:  заводские настройки апс 2500

Хочу с вами поделиться своей идеей, а точнее, просто способом, которым я реализовал отдачу заголовков LastModified и Not Modified, в случае, когда сайт собран из блоков + файлы таблиц стилей, прочих подключаемых файлов. (Изменив один из блоков, закешированный сайт продолжает отображаться в старом варианте — в браузерах пользователей).

Для решения этой проблемы достаточно добавить этот код в самый верх страницы, предварительно проработав его под свои файлы сайта.

Работа такого блока кода достаточно проста пониманию, но на заре своих опытов в программировании, пока я еще не определился с тем, чему хочу посвятить свою дальнейшую деятельность, эта тематика мне доставила достаточно много хлопот, поскольку дорвеи и прочие сайты (как сделать сайт самому) не могли мне тут помочь, и мне пришлось начать разбираться в PHP с самых базовых основ и возможностей.

1. Определим время последнего изменения текущей страницы, и прочих блоков php (включая и файл CSS и какие угодно другие файлы) и присвоим дексрипторы этих таймштампов в переменные.

2. Далее следует стандартный алгоритм выбора большего числа с занесением его в третью переменную. Подробно описывать не буду.

3. И когда известен самый свежий блок, которых у нас в странице много, мы возьмем его время изменения и присвоим это значение нашей странице, не забыв перевести из формата тайм штамп в формат GMT

gmdate(«D, d M Y H:i:s \G\M\T», $LastModified_unix);

4. При первом обращении браузера к серверу, браузер получит всю страницу целиком и время изменения страницы.
5. При последующем обращении, браузер отправит серверу это значение времени, и, если в нашей странице ничего не менялось, получит ответ Not Modified. Страница не будет передана в браузер.

=$aas1) <
$timetime = $tekuchaya_page;
>
else <
$timetime = $aas1;
>

if($aas2>=$timetime) <
$timetime = $aas2;
>
if($aas3>=$timetime) <
$timetime = $aas3;
>
if($aas4>=$timetime) <
$timetime = $aas4;
>
if($aas5>=$timetime) <
$timetime = $aas5;
>
if($aas6>=$timetime) <
$timetime = $aas6;
>

$LastModified_unix = $timetime; // время последнего изменения страницы

$LastModified = 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);
header(‘Content-type: text/html; charset=utf-8’);
?>

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

источник

Оцените статью
Adblock
detector