0 Пользователей и 1 Гость просматривают эту тему.
  • 365 Ответов
  • 58580 Просмотров
*

Antosha

  • Завсегдатай
  • 420
  • 52
  • Плохо спорить плохо
Всем привет.

Столкнулся с такой ситуацией, что многие не знают об этих параметрах, а самое главное и них не знают или не хотят реализовывать разработчики Joomla и в частности Joostina.

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

Как ведут себя Поисковики.

Как часто поисковики индексируют ваш сайт? Зависит от многих факторов, но что Яндекс, что Google всегда имеет какой-то лимит загруженных за раз страниц с вашего сайта. У Google это от 10 до 150-200, у Яндекса и того меньше. Я думаю, что лимит устанавливается для каждого сайта свой и берется в каком - то процентном соотношении от общего числа страниц. Теперь допустим, что поисковик за раз индексирует 20 ваших страниц. Допустим вы создали 5 новых страниц и передали поисковику карту сайта, а также внесли изменения в 5 других страниц. Поисковик кончено сходит по новым 5 - ти страницам, а что делать с остальными? Далее он поступает практически рандомно и посетит еще 15 страниц сайта и совершенно не обязательно, что он попадет на страницы с изменениями, так как он об изменениях то ничего не знает. Таким образом переиндексация измененных страниц затягивается случайным образом.

Вся проблемы в заголовке ответа сервера last-modified, который у большинства сайтов он либо вообще отсутствует, либо ставится текущая дата. Если стоит дата текущая, или даже дата в будущем, то поисковик на второй или третий раз не заметив изменений перестанет обращать на этот заголовок внимание. Этот заголовок должен быть добросовестно заполнен.

Допустим в заголовке ответа last-modified у нас стоит добросовестная дата, тогда поисковик сравнив дату своего индекса и поняв, что изменений не было пропустит эту страницу и перейдет к следующей рандомной. На самом деле даже загрузки страницы не произойдет. Боты используют заголовок if-modified-since, а сервер должен ответить 304 на это и заткнуться, ничего не передав. В общим другими словами, если last-modified работает правильно, то в окошко индексирования (20 страниц) можно за раз запихать как можно больше страниц с изменениями, быстрее получить результат продвижения, снизить нагрузку на свой сервер (в ответ только заголовки), облегчит работу боту.

Про это свободно говорит сам Яндекс:

Цитировать
Насколько критично, что мой сервер не выдает last-modified? Я пытался настроить этот параметр, но ничего не вышло.
Даже если сервер не выдает дату последней модификации документа (last-modified), ваш сайт будет проиндексирован. Однако в этом случае следует учитывать следующее:

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

Теперь про if-modified-since.

Сейчас боты добавляют к своем запросу последней строчкой вот такую конструкцию:

GET / HTTP/1.1
Host: www.site.ru
...
...
Cache-Control: max-age=0
if-modified-since: #дата страницы в индексе#

И надеется, что сервер им отдаст правильный ответ. То есть если страница с того момента изменилась - получают ее, если нет, то выдается 304 и все дела.

Если на сервере реализован last-modified, то обработку if-modified-since сделать очень просто.

Яндекс также серьезно обращает на это внимание:

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

Цитировать
Как помочь роботу быстрее индексировать сайт
Чтобы ускорить появление страниц сайта в поиске, воспользуйтесь нашими рекомендациями — во-первых, исключите из индексирования ненужную информацию, во-вторых, сообщайте роботу о новых страницах. Для этого:
.....
настройте сервер на выдачу корректных заголовков ответов (например, если страница не существует, выдавать ошибку 404, а если поступил запрос If-Modified-Since, то выдавать код 304, если страница с указанной в запросе даты не изменялась).

Проблема.

Почему то не Joomla 1.5 ни 1.7 не отправляют и не обрабатывают этих заголовков, а также Joostina, которая меня интересует. В Joostine даже есть файл page.php и соответствующий класс, где эти заголовки обрабатываются, но в моей (1.3) версии не используется никак вообще по - моему.

А эти два заголовка действительно важная вещь. Если у вас на сайте больше 1000 страниц, то боту отыскать страницу с изменениями, достаточно сложно, что затягивает скорость индексации.

Давайте допили Joomla и Joostina и сделаем эти проекты более SEO привлекательными. Ведь делов то не много... нужны хорошие руки.

Заранее, спасибо.

UPD:
Решение для Joomla 2.5
Решение для Joomla 1.5
Плагин для J2.5
« Последнее редактирование: 27.05.2012, 16:48:33 от ELLE »
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

ELLE

  • Support Team
  • 4598
  • 868
поднимался однако вопрос
Динамические файлы Joomla! не отправляют Last-Modified заголовка (да и фиг его вычислишь корректно, максимум ETag можно)

здесь еще, правда для 1.0
у меня же в last-modified всегда текущая дата - конечно это все же лучше чем бы вообще не было, но было бы отлично настроить 304 в случае если документ не обновлялся. Короче подписалась :)
*

beliyadm

  • Профи
  • 8368
  • 1527
  • Севастополь == Россия
Вы про параметр Last-Modified? Так он вроде прекрасно вставляется с момента последнего обновления страницы, например только что обновил текст и заголовок мне отдал с страницы контента
Код: php
Last-Modified Mon, 21 Nov 2011 02:24:30 GMT
Далее иду на страницу типа блога с этим содержимым и вижу
Код: php
Last-Modified	Mon, 21 Nov 2011 02:25:52 GMT
Я в чем-то не прав или не понимаю суть?


P.S. оффтоп по теме - какую роль с точки зрения сео играют теги типа "link rel='prev'" и "link rel='next'"? У ВП они для текущей страницы показывают урлы на рядом лежащие - это вообще какой то смысл имеет?
А ну и да - у ВП, изначально заточенного как блог больше тоже нет меток
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

ELLE

  • Support Team
  • 4598
  • 868
beliyadm, а проверь любую страницу, которую 100 лет не обновлял ;)
*

beliyadm

  • Профи
  • 8368
  • 1527
  • Севастополь == Россия
beliyadm, а проверь любую страницу, которую 100 лет не обновлял
хм, везде вижу дату последней модификации как текущее время, при этом Expires = Mon, 1 Jan 2001 00:00:00 GMT

Что плохого в том, что каждый раз при обращении поисковика на страницу он видит, что она обновлена сегодня?
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

ELLE

  • Support Team
  • 4598
  • 868
1-лишняя нагрузка
2-ограниченная загрузка кол-ва документов ПС за 1 раз

допустим робот решил, что будет загружать не более 50 страниц. а тут мы взяли и выборочно изменили некоторые страницы => как он узнает что ему нужно загружать в этот раз, а что нет => растягивается время переиндексации

P.S. оффтоп
>>>>
« Последнее редактирование: 21.11.2011, 06:50:41 от ELLE »
*

skai

  • Moderator
  • 1230
  • 152
  • skaiseo
Поднимал вопрос уже If-Modified-Since -> 304 - никто помочь не вызвался, сам не смог решить - тему удалил, пользуюсь тем что есть.

Antosha + за поднятие вопроса. Для больших сайтов это очень актуально.

Наполнение вашего сайта - 1т.р. стр. (текст, изображения, мета, перелинковка). Гарантия высокого ранжирования. SEO консультация в подарок.
----------------------------------------------------------------------------------------------
*

Antosha

  • Завсегдатай
  • 420
  • 52
  • Плохо спорить плохо
Если на всех страницах last-motified будет стоять текущая дата, то поисковик свята веря в ваши даты будет качать эти страницы, но поняв, что они на самом деле не меняются и вы его попросту обманываете, перестанет обращать внимание на этот заголовок и все будет по старому. То есть если last-motified = текущая дата равносильно тому, что его вообще нету...

В Joosinte в includes/libraries/cache/handler/page.php есть класс:

Код: php
class JCachePage extends JCache


и соответственно два метода:

Код: php
	function checkNotModified($send304=true) {
$client_etag = isset($_SERVER['HTTP_IF_NONE_MATCH'])? stripslashes($_SERVER['HTTP_IF_NONE_MATCH']) : false;
$client_last_modified = isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])? stripslashes($_SERVER['HTTP_IF_MODIFIED_SINCE']) : false;
if(($client_etag==false)&&($client_last_modified==false))
return false;
$notmodified = false;
$etag = '"'.$this->_hash.'"';
if(($client_last_modified!==false)&&(($pos=strpos($client_last_modified,';'))!==false))
$client_last_modified=substr($client_last_modified,0,$pos);
if($client_etag===$etag)
$notmodified = true;
elseif(($client_last_modified!==false)&&(strtotime($client_last_modified) == $this->_content_modified))
$notmodified = true;
if($notmodified && $send304) {
@ob_clean();
$http1x = isset($_SERVER['SERVER_PROTOCOL'])? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.x';
if(strcmp(PHP_VERSION,'PHP 4.3.0')>=0)
header($http1x.' 304 Not Modified',true,304);
else
header($http1x.' 304 Not Modified');
header('Status: 304 Not Modified');
header('ETag: '.$etag);
exit(0);
}
return $notmodified;
Код: php
	function setHeader($ttl=null) {
header('Last-Modified: '.gmdate("D, d M Y H:i:s", $this->_content_modified).' GMT');
if($this->_hash)
header('ETag: "'.$this->_hash.'"');
if($ttl!==null)
header('Expires: '.gmdate("D, d M Y H:i:s", time()+$ttl).' GMT');
header('Cache-Control: public');
header('Pragma: no-cache');
}


То есть там уже все написано и как-то используется кешь... Надо просто понять как это сделать на Joomla

Заранее, спасибо.
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

Antosha

  • Завсегдатай
  • 420
  • 52
  • Плохо спорить плохо
Цитировать
"link rel='prev'" и "link rel='next'"

про это ничего не знаю.. =))
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

reasons

  • Давно я тут
  • 386
  • 6
  • http://dehost.biz
ну что все затихли? неужели все готовятся к выборам :)
*

ELLE

  • Support Team
  • 4598
  • 868
предлагаю всем желающим объединиться и дружненько пойти в коммерческий раздел =)
*

Antosha

  • Завсегдатай
  • 420
  • 52
  • Плохо спорить плохо
ну хз на счет коммерческого вопроса... это не под конкретный проект делается, это просто сделает Joomla лучше... для всех на всех сайтах..
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

Antosha

  • Завсегдатай
  • 420
  • 52
  • Плохо спорить плохо
чувствую, что сообщество может помочь в таких вопросах типа: "Как поменять цвет ссылки", а если что более серьезное?
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

skai

  • Moderator
  • 1230
  • 152
  • skaiseo
Поднимал вопрос уже If-Modified-Since -> 304 - никто помочь не вызвался, сам не смог решить - тему удалил, пользуюсь тем что есть.
..вот и я про то же..
Наполнение вашего сайта - 1т.р. стр. (текст, изображения, мета, перелинковка). Гарантия высокого ранжирования. SEO консультация в подарок.
----------------------------------------------------------------------------------------------
*

voland

  • Профи
  • 9505
  • 422
  • Эта строка съедает место на вашем мониторе
..вот и я про то же..
Точное ТЗ составляй, сделаю (ну желательно не бесплатно, а то затянеться... )
*

beliyadm

  • Профи
  • 8368
  • 1527
  • Севастополь == Россия
И еще вопрос по теме.
Если главная страница представляет собой блог, где каждый день (ну или не каждый) обновляются материалы и страница имеет титл "Имя сайта - что еще статичное" - это правильно?
Не логичней (на примере пары ресурсов) генерить имя страницы в виде "первая новость блога - название сайта (или наоборот), чтобы робот при заходе на главную видел что титл меняется, значит меняется контент
Я не SEO-шник, но раз так делают популярные ресурсы - значит это кому-то надо, не так ли?
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

ELLE

  • Support Team
  • 4598
  • 868
Не логичней (на примере пары ресурсов) генерить имя страницы в виде "первая новость блога - название сайта (или наоборот), чтобы робот при заходе на главную видел что титл меняется, значит меняется контент
нет, не логичней -> тайтл может смениться, а контент нет.
*

beliyadm

  • Профи
  • 8368
  • 1527
  • Севастополь == Россия
нет, не логичней -> тайтл может смениться, а контент нет.
ну это мы уже сами устанавливаем, если у нас материал обновился - меняем титл.
Соответственно и паук видит и обновленный кусок титла и новый контент на главной
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

ELLE

  • Support Team
  • 4598
  • 868
только при чем здесь last-modified и if-modified-since я не понимаю...
если заголовок работает не корректно - он все равно загрузит страницу, даже если она не обновлялась.
а мы например создали новую категорию материалов или старые переписали (и не вывели допустим на главной) - паук пройдется по старью -> а новые страницы не загрузит/не обновит
« Последнее редактирование: 27.11.2011, 04:28:16 от ELLE »
*

beliyadm

  • Профи
  • 8368
  • 1527
  • Севастополь == Россия
только при чем здесь last-modified и if-modified-since я не понимаю...
Совершенно ни при чем, это оффтоп :)
Просто зацепился и вспомнил два момента, link rel=prev\next и формирование заголовка
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

Antosha

  • Завсегдатай
  • 420
  • 52
  • Плохо спорить плохо
бот не может получить тайтл не загрузив страницу, поэтому проблему не решает...

скорее всего так делают, чтобы быть более привлекательней в выдаче, но зная тормазнутость поисковиков - теряет актуальность...
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

Antosha

  • Завсегдатай
  • 420
  • 52
  • Плохо спорить плохо
ТЗ:

1. На каждый GET запрос сервер должен отдавать страницу с корректной датой last-modified. То есть дата должна указывать на то число и время, когда страница действительно изменялась.

2. Если в запросе GET есть заголовок if-modified-since #дата# необходимо сравнить дату последнего изменения запрашиваемой страницы с датой передаваемой if-modified-since. Если дата в запросе превосходит дату последнего изменения, то страница не передается, а выдается только заголовок c кодом 304, иначе делаем то, что указано в пункте 1.

Вот и все ТЗ. Что тут писать то?
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

skai

  • Moderator
  • 1230
  • 152
  • skaiseo
Точное ТЗ составляй, сделаю (ну желательно не бесплатно, а то затянеться... )
- оплачиваю под 1.5.
Наполнение вашего сайта - 1т.р. стр. (текст, изображения, мета, перелинковка). Гарантия высокого ранжирования. SEO консультация в подарок.
----------------------------------------------------------------------------------------------

Точное ТЗ составляй, сделаю (ну желательно не бесплатно, а то затянеться... )
Цена вопроса под 1.7?
*

Taatshi

  • Support Team
  • 4803
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
- оплачиваю под 1.5.
Цена вопроса под 1.7?

Могу войти в долю) В зависимости от цены - свободных сейчас немного... но есть...
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
*

ChaosHead

  • Профи
  • 4740
  • 398
Логично делать для материалов, а всякие пункты меню не определишь новые они или нет.
А для материалов - это одна строчка кода.
Что-то типа
Код
JResponse::setHeader( 'Last-Modified', $yourDateHere );
А дату можно брать из даты последнего изменения в материале.

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

А, вот! Те же комментарии кто-то напишет, а поисковик не будет индексировать статью заново. Собственно я уже начинаю понимать, почему в Joomla это не сделали.
« Последнее редактирование: 04.12.2011, 16:23:35 от ChaosHead »
*

Виталик

  • Группа развития
  • 1241
  • 128
тоже очень давно собирался с этим разобраться
*

Antosha

  • Завсегдатай
  • 420
  • 52
  • Плохо спорить плохо
2 ChaosHead, чаще всего изменение каких - то модулей не несут никакой нагрузки, поэтому на это обращать внимание не стоит, тем более если какой-то модуль обновляется чаще чем раз в три дня, то Яндекс просто не успеет его проиндексировать. Ведь все делается только для того, чтобы ускорить индексацию, а следовательно скорость продвижения. Если все - таки хочется реагировать на модули, то надо как-то с кешем колдавать - изменится - значит и страница изменилась.

Когда появляется новый пункт меню, то появляется новая страница, которая попадет в карту сайта. По новым страницам из карты сайта Яндекс ходит быстро. Проблем с измененными страницами....

Как-то тут все-таки надо с кешом колдавть... возможно через хешь страницы можно что-то замутить... Просто надо, чтобы не только в Материалах работало, но и в других компонентах тоже...

Под 1.5 Voland, то взялся за разработку? или нет? Ответьте кто-нибудь...
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

voland

  • Профи
  • 9505
  • 422
  • Эта строка съедает место на вашем мониторе
2 ChaosHead, чаще всего изменение каких - то модулей не несут никакой нагрузки, поэтому на это обращать внимание не стоит, тем более если какой-то модуль обновляется чаще чем раз в три дня, то Яндекс просто не успеет его проиндексировать. Ведь все делается только для того, чтобы ускорить индексацию, а следовательно скорость продвижения. Если все - таки хочется реагировать на модули, то надо как-то с кешем колдавать - изменится - значит и страница изменилась.

Когда появляется новый пункт меню, то появляется новая страница, которая попадет в карту сайта. По новым страницам из карты сайта Яндекс ходит быстро. Проблем с измененными страницами....

Как-то тут все-таки надо с кешом колдавть... возможно через хешь страницы можно что-то замутить... Просто надо, чтобы не только в Материалах работало, но и в других компонентах тоже...

Под 1.5 Voland, то взялся за разработку? или нет? Ответьте кто-нибудь...
да взялся, большую часть сделал пока комп не подвис )))
Но вот с другими компонентами сложнее, какие именно например?
*

Виталик

  • Группа развития
  • 1241
  • 128
Но вот с другими компонентами сложнее, какие именно например?
Zoo

А может сделать одно основное расширение и много плагинов для компонентов?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Joomla 3.8.0] Редирект с id на БЕЗ id

Автор ELLE

Ответов: 2
Просмотров: 124
Последний ответ 21.09.2017, 01:34:49
от dmitry_stas
lm_any - плагин Last-Modified для любого контента

Автор yunoshev

Ответов: 426
Просмотров: 26709
Последний ответ 23.08.2017, 19:40:43
от yunoshev
[Решено] rel="canonical" Joomla 3 как удалить

Автор GraD

Ответов: 108
Просмотров: 30789
Последний ответ 07.06.2017, 13:11:52
от yacovets
Расширенные описания страниц в Joomla (микроданные, микроформаты, RDFa, schema.org)

Автор ELLE

Ответов: 148
Просмотров: 86843
Последний ответ 05.06.2017, 22:44:46
от korkka44
Есть ли pinger yandex и/или Google для Joomla

Автор KSS

Ответов: 14
Просмотров: 431
Последний ответ 02.12.2016, 01:13:43
от voland