Last modified joomla
Что такое заголовок last modified.
По простому это заголовок:
Поисковый робот при обходе сайта отправляет запрос на сайт. В котором спрашивает обновлялся контент на странице с даты его последнего посещения или не обновлялся. Если приходит ответ что материал обновился робот заходит на страницу и скачивает ее. Если материал не обновлялся робот пропускает страницу и идет на другую.
Заголовок last modified.
Что нам дает этот правильный заголовок. На сайте допустим много новых страниц. У робота лимит времени на каждый сайт. Если заголовки не отдаются правильно, робот истратит свое время. И не попадет на другие страницы вашего сайта. А вам надо, чтоб все страницы были в индексе.
Если на сайте две, три страницы вам можно не заморачиваться этим вопросом. Робот их проиндексирует в любом случае.
Я пользуюсь плагином Last Modified Any Content.
Скачать можно:
http://www.yunoshev.com/
На странице по ссылке (скопировать и вставить в адресную строку) две версии платная и бесплатная. Бесплатная для Joomla 2.5. Платная для Joomla 3. Но бесплатная версия для 2.5 работает на Joomla 3 тоже.
Во всяком случае сейчас. Если бесплатную версию перестанут раздавать, скачать Last Modified .
Проверять рекомендуют все почему то на сайте: http://last-modified.com/ru/. Но думаю это ошибка, там система смотрит на ответ сервера так, как будто простой пользователь запрос отправил. А нам нужен ответ на запрос поискового робота. Что ему ответит сервер.
Если материал не менялся на сайте, робот получает 304 код ответа, после чего он переходит к запросу другой страницы. То есть, контент страницы индексируется в том случае, если страница возвращает код ответа 200. Хочу обратить внимание, при 304 коде ответа заголовок "Last-Modified" отсутствует.
При правильном ответе, если контент изменился. Сервер должен дать код 200.
Вот задал один час, не знаю почему. Но когда ставиш час, всегда ответ с кодом 304. Для робота контент не менялся.
Ответ сервера, нам так не подходит. В случае если контент изменялся:
Код статуса HTTP: "304 Not Modified" ?
Время ответа сервера: 215мс
IP сайта: 181.167.135.133
Заголовки:
Server: nginx
Date: Thu, 22 Jan 2015 17:28:18 GMT
Connection: keep-alive
Expires: Mon, 1 Jan 2001 00:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Set-Cookie: 942106b7fcdd5ab39cd42f7caae7a755
=6c3a76ecb3f520902d5862711ce86433; path=/; HttpOnly
Вот поставил один месяц, ответ сервера:
Код статуса HTTP: "200 OK"
Время ответа сервера: 187мс
IP сайта: 181.167.135.133
Кодировка: UTF-8(unicode-1-1-utf-8, UTF8)
Размер страницы: 52.11Кб
содержимое страницы
Заголовки:
Server: nginx
Date: Thu, 22 Jan 2015 17:45:07 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: 942106b7fcdd5ab39cd42f7caae7a755=
39f40bbe84e459ff92efe2cbe3afeaab; path=/; HttpOnly
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
X-Last-Modified: Sun, 18 Jan 2015 12:28:42 +0300 GMT
Content-Encoding: gzip
Expires: Mon, 1 Jan 2001 00:00:00 GMT
Last-Modified: Thu, 22 Jan 2015 17:45:07 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
У меня отдал сервер заголовок Last-Modified: Thu, 22 Jan 2015 17:45:07 GMT. Используется у меня плагин на Джумлу 2.5 (бесплатная версия).
И даже не потому, что жалко 5 американских рублей. А потому, что из объснений автора плагина. Джумла меняет число заголовка. А чтоб она этого не делала надо патчить ядро.
Не хочу залазить в ядро движка. Зачем залазить в машину которая хорошо едит.
При том что, из объяснений Яндекс, Платона Щукина (переписывался три дня). Я спрашивал (немного дуру включал) чтоб ответ полней услышать.
Спрашивал про то, что заголовок Код статуса HTTP: "200 OK", а дата изменения не совпадает. Last-Modified: Thu, 22 Jan 2015 17:45:07 GMT.
Материал ранее менялся у меня, не 22 января как в ответе.
Цитата я писал (одна из многих):
200 код правильно отдает, но при коде 200 дата изменения контента стоит число когда делается запрос а не когда изменялся контент.
Может я не до конца систему понял. Робот делает запрос, получает код 200. Смотрит дату изменения контента, она стоит сегодняшнее число, а не вчерашнее. А робот был вчера и скачал страницу. Получается робот повторно заходит на страницу, которая не изменилась и тратит время. Это не нормально?
И самый главный ответ :
Робот проиндексирует данную страницу. Корректная дата внесения изменений в "Last-Modified" никаким образом не повлияет на индексирование страницы, её контент все равно будет запрошен роботом. Чтобы этого не происходило и существует 304 код ответа. То есть, если страница возвращает код ответа 200, робот её проиндексирует вне зависимости от значения "Last-Modified".
Ответ Платона:
Не совсем так: робот получает 304 код ответа, после чего он переходит к запросу другой страницы. То есть, контент страницы индексируется в том случае, если страница возвращает код ответа 200. Хочу заметить, при 304 коде ответа заголовок "Last-Modified" отсутствует в принципе.
Что нам и надо код 200 сервер отдал. А какое число стоит в заголовке не имеет значения. Робот страницу индексирует. В принципе заголовок 200 не получит робот если страница не менялась.
Иногда в заголовке ставиться приставки X, она иногда в ваших заголовках Last Modified присутствовать будет. Она в основном используется, чтоб избежать конфликт с основными заголовками Last Modified. В некоторых случаях заголовок X Last Modified будет применяться при обработке If Modified Since.
Поисковый робот пошлет заголовок If Modified Since на ваш сервер и укажет дату когда индексировал страницу.
В случае изменения материала после последнего сканирования поисковым роботом. Робот должен получить ответ с кодом 200. И учтет заголовки Last Modified. Если материалы не изменялись на странице робот должен получить ответ 304 и не получит не один из заголовков Last Modified. В содержимом страницы не должно быть текста материалов. Только меню, разметка и так далее.
Повторюсь, все примеры привожу на проверке в Яндекс вебмастер. Самая правильная проверка.
При проверке можно задать интервал час, сутки, неделя, месяц. И видим ответ на запрос робота.
Что самое важное можно задать время (присутствует галочка на Яндекс проверке) с какого времени проверить.
В видео покажу наглядно.
Проверяйте ответ сервера в Яндекс вебмастер: https://webmaster.yandex.ru/server-response.xml? Надо зарегистрироваться и сайт подтвердить.
На скрине: код 304. Заголовков нет. Поставил дату 1 час. Можно менять даты, не забывайте.
Обведено, содержание страницы. Далее дата изменения материала и дата запроса. Код 200 должен быть. Число изменения материала должно стоять не на момент проверки (не критично).
Вот и разобрались как делать проверку last modified. Вопросы в комментариях.
Видео last modified