Меню

Как настроить last modified htaccess

Главное о Last-Modified: что это, как настроить и проверить

В статье:

Продолжаем разбирать базу: на очереди смысл заголовка Last-modified и что с ним делать веб-мастеру.

Last-modified — что это

Last-modified — это http-заголовок с датой и временем последнего изменения страницы по мнению сервера. Шаблон такой:

Last-Modified: Wed, 21 Oct 2020 09:48:00 GMT

Это необязательный для заполнения заголовок. Но боты смотрят на заголовок Last-modified, когда индексируют страницу, чтобы понимать, есть ли смысл посещать ее повторно.

Как это работает:

При первом запросе документа сервер сообщает текущее время и дату с точным временем последнего изменения документа в http-заголовке Last-Modified.

При повторном обращении к документу бот или браузер отправят на сервер, где лежит кэшированная страница, запрос If-Modified-Since — не изменилась ли страница после даты, полученной в Last-Modified? Если изменилась, нужна новая версия.

В ответ боты и браузер получают информацию, когда страницу изменили. Дальше возможны два варианта:

если после посещения бота на странице что-то поменяли, сервер возвратит 200 ОК и будет загружать новое содержимое страницы, а робот поймет, что ему нужно обработать изменения;

если с последнего посещения страница не изменилась, сервер возвращает заголовок «304 Not Modified» и не будет загружать сайт. Страница загрузится из кэша, боты поймут, что изменений нет, и переобходить ее не будут.

Чем полезен Last-modified

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

«Следите за корректностью HTTP-заголовков. В частности, важно содержание ответа, который сервер отдает на запрос «if-modified-since». Заголовок Last-Modified должен отдавать корректную дату последнего изменения документа». Яндекс.Справка

Чем это полезно для сайта:

Сократить нагрузку роботам — ускорить индексацию

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

Поисковые боты благодаря датам изменений контента могут расставить приоритеты в обходе: начать с важных страниц, где что-то изменилось. Это повысит индексацию новых материалов.

Отобразить новую дату материала

Если веб-мастер указал дату в корректном формате, страницы сайта будут участвовать в сортировке по датам в выдаче. Поисковики и пользователи любят свежие материалы: выше шанс, что информация будет актуальной. Указывать даты последних изменений на страницах крупных сайтов советует и представитель Google Джон Мюллер.

Ускорить загрузку и сэкономить трафик

Пользователю не нужно каждый раз заново загружать страницу, если есть кэш. Страницы, которые никак не поменялись с последнего обращения, загрузятся из кэша — это позволит сэкономить трафик пользователей и ускорить загрузку страницы.

Снизить нагрузку на сервер

Серверу нужно будет передавать пользователю только те страницы, где что-то обновили. Если изменений не было, в дело пойдут версии из кэша.

Особенно это важно страницам с высокой посещаемостью некоторых тематик. Например, пользователь ждет письмо, обновление результатов матча или появление новых вакансий и постоянно обновляет обновлять страницу. Если таких пользователей много, возрастет нагрузка на сервер из-за постоянных запросов страницы и ее отрисовки. Если правильно настроить Last-Modified, сервер передаст страницу один раз, и пока на ней ничего не изменилось, на запросы будет отвечать «304 Not Modified» — изменений нет, повторно загружать не надо.

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

Перед настройкой Last Modified нужно убедиться, что ваш сервер вообще его поддерживает.

Настройка Last-modified через плагины или вручную

У популярных CMS есть готовые решения, к примеру:

Часто для того же результата достаточно реализованного кэширования на CMS.

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

Если динамическая, то есть постоянно обновляется, можно настроить отправку http-заголовка Last-Modified на php, добавив в head страницы код:

Первая строка преобразует дату в метку в формате Unix Time Stamp, используя время изменения текущей страницы, которое определяет автоматически.

Функция gmdate возвращает текущее время в формате , : : GMT.

Дальше проверяем If-Modified-Since, если изменений нет — отдаем 304 Not Modified и останавливаем работу скрипта, если есть — ответ сервера 200 ОК, отдаем страницу целиком.

Как указать дату правильно

Если указать дату обновления некорректно, боты все равно проиндексируют страницу, но она не сможет участвовать в сортировке результатов по дате.

Читайте также:  Как настроить селекторную связь

Порядок должен быть таким, используется GMT — время по Гринвичу:

Как проверить Last-Modified

У PR-CY есть бесплатный инструмент, позволяющий взглянуть на сайт глазами поискового робота. Если Last-Modified есть, инструмент его покажет:

Проверка страницы в сервисе PR-CY

В панели Яндекс.Вебмастера есть инструмент «Проверка ответа сервера»:

Проверка ответа сервера

Сервер будет отдавать 304 Not Modified в случае, когда страница не изменилась с последнего посещения, и 200 ОК, если на ней что-то меняли.

Вы используете Last-Modified, видите в нем смысл? Расскажите в комментариях!

Источник



Как настроить last-modified?

Вот не было у меня печали, пока не установил себе сегодня плагин Seo Scan. Хороший плагин, который показывает, что может не понравиться google в вашем сайте и сервере. И мой сайт кое в чем не понравился точно — это отсутствие last-modified .

Немного теории, сам только сегодня про это узнал. Last-modified — это http заголовок, который посылает сигнал о том, были ли на такой-то странице изменения или нет, посылая ответ If-Modified-Since с кодом 304. Как то так.

Хотя без всего этого сайт будет индексироваться, как говорит Яндекс, но есть и существенные минусы при отсутствии этого заголовка:

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

Как видите, минусов много, и в первую очередь — это не очень шустрая индексация и переиндексация сайта. То есть, вы внесли в статью ПОЛЕЗНОЕ изменение, а я их сейчас делаю много каждый день, а Яндекс и Google могут увидеть это только через пару месяцев! Нет, такой хоккей нам не нужен, теперь я разобьюсь в лепешку, а исправлю этот недочет!

Как проверить last-modified?

Проверить можно разными способами, в wordpress самое простое — это установить вышеупомянутый плагин Seo Scan, у меня он выдал такое:

Скорость сервера тоже барахлит, но это другая история, потом поковыряюсь и с этим. Можно так же проверить last-modified через сервис с одноименным названием last-modified.com

Как видите, и тут показывает отсутствие ответа If-Modified-Since — Last Modifed не найден! А можно использовать сервис Яндекса Проверка ответа сервера

Тут тоже самое — Код статуса HTTP: «304 Not Modified» — значит не работает система. Хотя через какое-то время явная ошибка пропала, но код ответа 304 так и не появился.

Сразу стало интересно, а у кого-то хоть это работает? Решил проверить это у тех блогеров, которые сами писали мануалы на эту тему:

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

Как настроить last-modified?

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

1. Первый способ — установка плагина

Самый простой способ для тех, у кого WordPress — это установить плагины, для этого предназначенные, например: Add Headers, If Modified Since или If Modified Since Header.

У меня ни один из этих плагинов не дал результата, не знаю почему. Может заработает у вас?

2. Второй способ — PHP код

Сервис last-modified.com , описанный выше, предлагает в файл header.php, в самое начало, поместить такой php код:

Мне это тоже не помогло. Предлагаю так же попробовать разместить его в файле index.php в корне сайта, но мне и это не помогло.

3. Третий способ — запись в .htaccess

Если у вас сервер на Apache, то скорее всего у вас это заработает. Нужно в файл .htaccess в корне сайта вставить код:

У меня не заработало, так как у меня стоит связка Ngnix + Apache и все эти манипуляции с .htaccess чаще всего не срабатывают.
После всех этих мучений подумал: а чего это я один мучаюсь? Напишу как в службу поддержки хостинга, там люди грамотные, может подскажут? Написал, сижу жду.

Читайте также:  Как настроить кэширование браузера

Пришел ответ от техподдержки:

Всё просто. Страницы вашего сайта генерируются php-скриптами которые не выдают браузеру этот заголовок.
Веб-сервер (nginx) для статических файлов (jpg, gif, css, js и т.д.) выдаёт в заголовке last-modified дату последнего изменения файла. Примеры на скриншотах.
Если у вас нет очень большой посещаемости сайта то кэшировать страницы сайта на стороне браузера нет смысла.

В общем, кажется мне не светит настроить last-modified в этой конфигурации нормально. Может мне отказаться от ngnix в пользу apache? Сервер у меня нормальный, а посещаемость на фантастическая. Может попробовать?
Ну а чтобы просто так не сидеть, а напрячь еще и вас, читатели, решил пока опубликовать этот пост, может вы знаете, как включить last-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:

Настройка заголовка 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, поэтому робот вначале проиндексирует обновленные страницы, а затем — все остальные.

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’);

exit;

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 и Яндекс, что значительно ускоряет индексацию и повышает видимость страниц в поиске. Особенно хорошо это заметно на ресурсах с большим количеством страниц.

Источник