alexvod |
Отправлено: 10 августа 2011 — 14:36
|
Junior Member
Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2010
Репутация: 7
|
Попытался сделать самостоятельно
Файл topic.php
После
CODE:$fm->_Title .= ($current_page > 1) ? ' ['.$current_page.']':'';
Вставляем ниже
CODE:$fm->_Canonical = "<LINK rel=\"canonical\" href=\"{$fm->exbb['boardurl']}/topic.php?forum={$forum_id}&topic={$topic_id}";
$fm->_Canonical .= ($current_page > 1) ? '&p='.$current_page.'':'';
$fm->_Canonical .= "\"/>";
Файл templates/Ваш_шаблон/all_header.tpl
После
CODE:<link rel="alternate" type="application/rss+xml" title="{$GLOBALS['fm']->exbb['boardname']}" href="./tools.php?action=rss">
Вставляем ниже
CODE:{$GLOBALS['fm']->_Canonical}
У меня вроде как заработало (http://immunoterapia.ru/forum/index.php). Если тема многостраничная, то к адресу добавляется параметр &p=. Думаю, что это позволит решить проблемы с &v=l и &postid
Убедительная просьба к специалистам посмотреть этот код. Я таким образом ничего не поломал? С виду вроде работает, но боязно как-то...(Отредактировано автором: 10 августа 2011 — 14:41) |
|
|
alexvod |
Отправлено: 10 августа 2011 — 14:44
|
Junior Member
Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2010
Репутация: 7
|
vipraskrutka пишет:можно ссылку на это заявления яндекса? А то чтото я пропустил такое знаменательное событие...
Зашел я однажды в вебмастер, а там надпись "Главная страница сайта исключена из индекса: Документ не является каноническим" (Форум на SMF, главной страницей в теге canonical была установлена index.php). Тогда у меня и появилось подозрение, что Яндекс понимает это тег
http://help.yandex.ru/webmaster/?id=1111858
http://help.yandex.ru/webmaster/?id=995304(Отредактировано автором: 10 августа 2011 — 14:49) |
|
|
|
Отправлено: 10 августа 2011 — 19:45
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
Идея хороша, спасибо. Но у вас несколько другой код стоит. Нужно еще как минимум делать исправления помимо topic.php в файлах search.php, index.php и возможно других. Хотя, проще внести в include/fm.class.php заглушку (пустую переменную), и уже ее изменять там, где нужно (на примере вашего topic.php).
Да, Яндекс нормально это все понимает, уже даже в паре движков видел использование этого мета-тега вместо набивания всего в robots.txt.
И еще есть вопрос, как себя будут вести искалки, если эти самые postid и v=l так и оставить запрещенными в robots.txt? Видимо, придется снова проводить эксперименты і выяснять методом тыка. (Отредактировано автором: 10 августа 2011 — 20:25) |
|
|
alexvod |
Отправлено: 11 августа 2011 — 08:23
|
Junior Member
Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2010
Репутация: 7
|
Zeg пишет:Нужно еще как минимум делать исправления помимо topic.php в файлах search.php, index.php
А зачем? Да, в таком варианте на странице index.php тега canonical не будет. Но он там особо и не нужен.
Zeg пишет:как себя будут вести искалки, если эти самые postid и v=l так и оставить запрещенными в robots.txt?
Я оставил. Яндекс и гугл понимают canonical, значит для них это значение иметь не будет (все равно будут индексировать каноническую страницу). |
|
|
|
Отправлено: 11 августа 2011 — 10:43
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
alexvod пишет:А зачем? Да, в таком варианте на странице index.php тега canonical не будет. Но он там особо и не нужен.
Если не поставить "заглушку", то банально получим ошибку об неизвестной переменной в шаблоне. А на том же index.php ее стоит ставить хотя бы для того, чтобы оставить в индексе одну страницу, а не две, т.к. /forum/index.php = /forum/.
К тому же стоит призадуматься, как быть с категориями, т.е. ссылки, вида fotum/index.php?c=N.
По правильному, их нужно тоже приравнять к корню форума, т.к. они имеют тоже содержание (вернее часть от главной страницы). Но, например, как у меня, категории получили PR=3, потому их решил не трогать. |
|
|
alexvod |
Отправлено: 11 августа 2011 — 13:41
|
Junior Member
Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2010
Репутация: 7
|
Zeg пишет:Если не поставить "заглушку", то банально получим ошибку об неизвестной переменной в шаблоне.
У меня вроде никаких ошибок нет (http://immunoterapia.ru/forum/index.php). Что такое "заглушка"?
Zeg пишет:К тому же стоит призадуматься, как быть с категориями, т.е. ссылки, вида fotum/index.php?c=N.
По правильному, их нужно тоже приравнять к корню форума, т.к. они имеют тоже содержание (вернее часть от главной страницы)
Но они не идентичны главной и друг другу. Если их приравнять, то forum/index.php?c=1 и forum/index.php?c=2 будут иметь одинаковый канонический адрес, но ведь это совсем разные страницы |
|
|
alexvod |
Отправлено: 11 августа 2011 — 19:44
|
Junior Member
Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2010
Репутация: 7
|
Zeg пишет:у себя я для них не делал канонической главную (морду).
Я разместил канонический адрес только на topic.php. Таким образом каконический адрес будет выводится только на страницах тем.
Zeg пишет:Если не поставить "заглушку", то банально получим ошибку об неизвестной переменной в шаблоне.
Где нужно объявить эту переменную? |
|
|
|
Отправлено: 11 августа 2011 — 21:17
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
В inlude/fm.class.php строки
CODE: // Заглушка для meta link rel="canonical"
var $_Canonical = "";
после строк
CODE: /*
Массив статистики форума array
*/
var $_Stats = array();
|
|
|
|
Отправлено: 12 ноября 2011 — 01:34
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
Для тех, кто давно думал, что делать с печатной версией форума, но не мог определиться, отдавать ее поисковикам (она более нравится поисковикам, т.к. содержит минимум "мусора" в контенте) или нет. Самый лучший, ИМХО, вариант, для таких страниц лучше указать в качестве канонического адреса адрес обычной страницы форума. Для этого открываем файл printpage.php, находим в нем строку
CODE:$fm->_OnlineLog($fm->LANG['TopicSee'].' <a href="topic.php?forum='.$forum_id.'&topic='.$topic_id.'"><b>'.$topicname.'</b></a> - <a href="forums.php?forum='.$forum_id.'"><b>'.$forumname.'</b></a>',$privateID);
и перед ней вставляем
CODE:// Канонический адрес
$fm->_Canonical = "<link rel=\"canonical\" href=\"{$fm->exbb['boardurl']}/topic.php?forum={$forum_id}&topic={$topic_id}";
$fm->_Canonical .= ($current_page > 1) ? '&p='.$current_page.'':'';
$fm->_Canonical .= "\">";
Далее открываем файл temlates/ВашСкин/printpage.tpl и после строки
CODE:<meta name="Robots" content="index,follow">
вставляем
CODE:{$GLOBALS['fm']->_Canonical} |
|
|
|