rel="canonical" во всех страницах

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

Выяснилось, что в движке есть строка

{if $sHtmlCanonical}
		<link rel="canonical" href="{$sHtmlCanonical}" />
	{/if}


Данный тег показывается на всех страницах блогов. Даже на этом сайте, посмотрите код страницы livestreet.ru/blog/dev_livestreet/ на 29-й строке она ссылается сама на себя. Если посмотрите по яндексу, то поймете, что эта страница ранжируется ниже остальных, вложенных в него.

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

Такое появилось только с 1.0 версии в результате чего, после апдейта на новую версию — жесткая просадка. Будьте бдительны те, кто переносятся на новую версию.

57 комментариев

avatar
Я уже задавал подобный вопрос, но наоборот, хотел это не отключить, а добиться показа канонического урла :) При чтении кода выяснили, что сейчас каноник проставляется только при пагинации многостраничного вывода.
  • NPC
  • 0
avatar
Это не то. Сейчас, страницы блогов и многие другие страницы ссылаются сами на себя. Робот яндекса заходит и получает сигнал, что данная страница не является канонической, оригинал вот здесь и ссылается на эту же страницу. Возможно, разработчики яндекса не учли это и робот входит в бесконечную рекрусию, плюет и не индексирует сайт.

Сейчас у меня более 7000 страниц просто выпали из индекса из-за этого. Я пока от греха по-дальше убрал этот кусочек кода, но правильно работающий хук не помешает.
avatar
Хм, мда, причём каноник есть только на первой странице списка, на следующих страницах он уже пропадает. По идее, надо бы наоборот.

Но к самим страницам топиков это не относится — поэтому удивляет количество ошибок, которые ты показываешь. 7.4к страниц блогов? Хотя и такое бывает, но стоит перепроверить, может не в них проблема. Ну и само-каноник ошибку не должен вызывать вообще — разве что эта предполагаемая рекурсия, но теория сомнительна (и легко исправима яндексом).
avatar
7,4к разных страниц. Но меня интересует только главные страницы блогов, т.к. их я продвигаю и если они будут в топе, показатель отказа по ним меньше. А в постах — хорошо, что указывается каноникал, иначе было бы 100500 дублей.

ДА, это лишь недоказанная теория, но если считать по человеческой логике, то разработчик не мог не предусмотреть такого. Раз указывается каноникал, значит эта страница — не каноникал.
avatar
В постах его как раз нет. Или ты где-то его заметил?
avatar
Да, почему-то их там нет, но есть 301 и это хорошо. Они действительно только на страницах с пагинацией.
avatar
Ничего плохого в этом не вижу — новая технология как сказано выше. Подробнее тут, например.
avatar
Я вам показал скрин, как это плохо влияет. Может у вас слабый инет и вы картинки отключили?
avatar
В результате таких действий, главные страницы блогов неиндексируются яндексом и их продвижение становится бессмысленным.

Страницы индексируются, но они почему-то есть как в «страницах в поиске», так и в «исключенных страницах» вебмастера. Просадку, кстати, тоже наблюдаю.

Да, и раз уж затронули главные страницы блогов, хотелось бы узнать: никто у себя не наблюдает в выдаче двойных описаний блога? Есть мысли с чем это может быть связано?
avatar
В результате таких действий, главные страницы блогов неиндексируются яндексом и их продвижение становится бессмысленным.
факты есть, что это из-за canonical?
Вот пример поста на ВП — wordpress.org/news/2012/09/wordpress-3-5-beta-1/ смотрим и видим там тоже самое — canonical ссылается сам на себя.
  • ort
  • 0
avatar
Фактов нет. Но читая Гугл, мне кажется, что у нас проблема в том как он проставлен.

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

Если Google будет знать о том, что содержание этих страниц одинаково, то сможет добавить в результаты поиска только одну из них. Наши алгоритмы выбирают ту страницу, которая, по нашему мнению, лучше всего отвечает на запрос пользователя. Тем не менее, теперь пользователи могут указывать поисковым системам каноническую страницу, добавив элемент с атрибутом rel=«canonical» в раздел неканонической версии страницы. Добавление этой ссылки и атрибута позволяет владельцам сайтов определять наборы идентичного содержания и сообщать Google: «Из всех страниц с идентичным содержанием эта является наиболее полезной. Установите для нее наивысший приоритет в результатах поиска.»

Попробую у себя убрать canonical для блогов и понаблюдать за изменениями.
avatar
добавив элемент <link> с атрибутом rel="canonical" в раздел <head> неканонической версии страницы


… парсер теги съел и выделил все…
avatar
мне кажется, что у нас проблема в том как он проставлен
как он проставлен? выше я привел пример из движка Wordpress — он там ставится аналогично
avatar
В google, вроде как, все нормально. Он не должен на каждой странице проставляться.
добавив элемент с атрибутом rel=«canonical» в раздел неканонической версии страницы.
Думаю, нужно только в неканонических страницах ставить rel=«canonical»
avatar
Я наверное не туда смотрю… Там canonical указан в конечной новости, а не в разделе wordpress.org/news/2012/09/, а в LS все как раз наоборот.
avatar
Но при этом у меня страница с ошибками нету. А в списке яндекса «Документ является неканоническим» Страницы такого типа

/index/discussed/page1/?period=30
/index/discussed/page1/?period=7
/index/discussed/page1/?period=all
/index/discussed/page2/?period=7
avatar
коллективные блоги на сайте есть? их тоже рубит
avatar
/personal_blog/
/personal_blog/good/page1/
/personal_blog/newall/page1/
/personal_blog/top/page1/?period=all
/profile/MrBean/created/topics/
/profile/mrBean/created/topics/page1/
/profile/Vvp/created/topics/page1/
/blogs/
/index/
/index/discussed/page1/?period=30
/blog/novosti/top/page1/?period=30
/blog/novosti/top/page1/?period=all
/blog/novosti/top/page3/?period=30
/blog/novosti/top/page4/?period=30
/blog/sobitija_v_mire/newall/
/blog/top/page1/?period=30
/blog/top/page1/?period=7
/blog/top/page1/?period=all
/blog/top/page4/?period=30

Вот теперь не знаю, плохо это или хорошо…
avatar
я не говорю о смысле страницы, говорю о том, что страница указывает сама на себя в canonical
avatar
Исходя из доков гугла надо так: на страницах блога (page2, page3...) ставить
<link href="http://livestreet.ru/blog/dev_livestreet/" rel="canonical">

на главную страницу блога, таким образом указывая, что все они неканонические, а канонической (приоритетной) является главная страница блога.
avatar
блииин, прошу прощения… речь о дублях страниц, а не пагинации и проч…
avatar
Да, фактов нет, результат на лицо. Я в новый движок переехал 3-го сентября, 7-го количество ошибок перевалило за 7к. Пока убрал этот кусок кода, посмотрим как себя поведет.
avatar
результат на лицо
это не результат
7-го количество ошибок перевалило за 7к
каких именно ошибок? Яндекс обычно указывает на конкретные ошибки
avatar
каких именно ошибок? Яндекс обычно указывает на конкретные ошибки
Документ является неканоническим.
avatar
подтверждаю, глянул свои сайты, тоже ошибки про «неканонические страницы» полезли
avatar
А я давно заметил что яндекс косо на мой сайт смотрит.
avatar
Да и мой сайт недавно выкинули из поиска, было проиндексировано более 2000 страниц, сейчас 15. Яндекс в переписке ссылается на присутствие инопланетного разума в их поисковых алгоритмах…
avatar
да на врятли из-за этого, это скорее всего фильтр «АГС»
наверняка неуник, торговля ссылками на молодом домене
avatar
Кто их поймет, молчат как партизаны, ссылаются на Искусственный Интеллект. ОНИ уже пришли и правят нами! ;))))
avatar
а что собственно понимать? обычно молодой домен с неуникальным контентом долго не живет
особенно при торговле ссылками
это несколько лет как уже у Яндекса
решаемо, расфильтрует со временем, если смените чужой контент и удалите продажные ссылки
вот с Пингвином у Гугла сейчас сложнее
avatar
А что есть Пингвин у Гугла...?
avatar
Страницы в индексе, но оооочень далекие позиции в поиске, как результат — трафик 0. И вывести из под этого у подавляющего большинства не получается.
avatar
Небольшое отступление. Есть магазин, связка джумла и виртумарт — url в категории там формируется так site.ru/shop/category/1/тут-сео-дружественный-урл/ при этом страница категории будет доступна:
site.ru/shop/category/1/тут-сео-дружественный-ур
site.ru/shop/category/1/тут-сео-дружественный-у
и тд. до site.ru/shop/category/1/ + всякие com_virtumart чем и пользовались добрые конкуренты. Продвигаемая страница постоянна вылетала из топа, плодились дубли которые я склеивал 301 и т.д

Полгода назад воткнул плагин, он прописывает rel=«canonical» и на site.ru/shop/category/1/тут-сео-дружественный-урл/ и на дублях. С тех пор никаких проблем — гугл 1, яндекс 3. Высокочастотник.

Выводы делайте сами))
и кстати да, переносил сейчас сайт на 1.0.1 и заметил, что в старой версии некоторые многопользовательские блоги проиндексированы яшей без закрывающегося слеша
avatar
Ежу понятно, что дубли вредят. Вопрос корректно ли прописан canonical в 1.0.1 версии.
avatar
так я же и говорю, у меня прописан он как на канонической странице так и не канонической — ошибок в webmasters Я и G нет
avatar
А можно ли как нибудь для плагина прописать что бы этот код не выводился
{if $sHtmlCanonical}
                <link rel="canonical" href="{$sHtmlCanonical}" />
        {/if}

пробовал сделать так
$this->Viewer_Assign('sHtmlCanonical', false);
но всё равно код выводится…
Или возможно в шаблоне прописать какой то запрещающий тег вывода этого кода..?
avatar
Можно в плагине полностью этот файл шаблона перегрузить, в файле YourPluginName.class.php:
protected $aDelegates=array(
   'template' => array(
      'header.tpl'
   ),
);

…и подставить свой файл вместо этого. Ну или попробовать очистить sHtmlCanonical, да. Проставляется он в ядре, так что надо перехватывать позже.
avatar
Да, про aDelegates я думал, но не хочется что бы из-за одного плагина страдал весь сайт..:)
Проставляется он в ядре, так что надо перехватывать позже.
Да, он подставляется в Viewer.class.php Позже это вы имеете в виду где..? Разве погрузка Action плагина не после загрузки всего ядра происходит..?
avatar
Да надо поразбираться, сейчас к сожалению не могу уделить этому время, для себя я такие вопросы экспериментальным путём (через FirePHP) решал, поиски места, с которого реально перехватить ту или иную переменную :) Ремесленничество, конечно, но надо ж с чего-то начинать.
avatar
Да, это точно..:)
Я не разу про FirePHP не слышал, нужно будет потискать как нибудь..:)
Ниже описал решение проблемы…
avatar
Возможно кому то пригодиться.
Решил проблему прописав в шаблоне .tpl где не нужно выводить rel=«canonical»
{assign var="sHtmlCanonical" value=false}
avatar
А подробнее можно? Что куда прописать, чтобы решить проблему озвученную автором топа? А то я скоро сайт запускаю, не хочется, чтобы его не индексировали
avatar
{assign var="sHtmlCanonical" value=false}
этот код нужно прописать в шаблоне где не нужен вывод
<link rel="canonical" href="{$sHtmlCanonical}" />
и тогда поисковый robot заходящий на эту страницу не добавит её в чёрный список..:)
Либо можно сделать проще удалить совсем в header.tpl код
{if $sHtmlCanonical}
                <link rel="canonical" href="{$sHtmlCanonical}" />
        {/if}
, но тогда будет другая опасность, что некоторые страницы под разными доменами допустим с www и без него будут дублироваться что увеличивает шансы на уменьшение рейтинга сайта у поисковых систем.
avatar
не добавит её в чёрный список
было написано не правильно, эта страница добавляется в список не индексируемых и эта страница не появляется в поисковой системе.
avatar
тоже столкнулся с подобной проблемой, в частности в вебмастере показывает «Документ является неканоническим» на /blog/ и /personal_blog/. Всех топиков оттуда нет в выдаче яндекса.
Подскажи пожалуйста где именно для них нужно прописать этот код н{assign var=«sHtmlCanonical» value=false}?
avatar
Что бы убрать
<_link rel=«canonical» href="{$sHtmlCanonical}" />
в /blog/, вы должны в самом верху шаблона \templates\skin\vash_skin\actions\ActionBlog\index.tpl прописать
{assign var=«sHtmlCanonical» value=false}

То есть было
{include file='header.tpl' menu='blog'}
{include file='topic_list.tpl'}
{include file='footer.tpl'}
станет
{assign var="sHtmlCanonical" value=false}
{include file='header.tpl' menu='blog'}
{include file='topic_list.tpl'}
{include file='footer.tpl'}


ну и по аналогии сделайте /personal_blog/ путь к шаблону \templates\skin\vash_skin\actions\ActionPersonalBlog\index.tpl
avatar
а .htaccess на что?
avatar
Расскажите на что он, и как можно это сделать при помощи .htaccess..?
avatar
я имел ввиду, переадресация с www.site.ru на site.ru
avatar
В некоторых случаях это не помогает, так-как в место site.ru некоторые используют www.site.ru но это пол дела, а в случае субдоменов не используя эту конструкцию
{assign var="sHtmlCanonical" value=false}
в любой под домен попадает
<_link rel=«canonical» href="{$sHtmlCanonical}" />
а это уже блакировка большенства страниц сайта…
avatar
Идея хорошая, потому что дублей ЛС плодит много. Но сыро сделана.
Никто ж еще не проверял, как на это реагирует гугл.
avatar
Самое лучшее, что я смог придумать, это:
<noindex>
        {if $sHtmlCanonical}
                <link rel="canonical" href="{$sHtmlCanonical}" />
        {/if}
</noindex>

Так как google считает это хорошо, а Яндекс — нет, приходится для Яндекса закрывать эту часть кода.
avatar
Яндекс пока всё же важнее, поэтому попробую такое решение, т.к. просто удаление из header.tpl
{if $sHtmlCanonical}
/>
{/if}
привело к ошибкам на сайте.
avatar
и че это такое?
avatar
Вернее вот этот код

«Либо можно сделать проще удалить совсем в header.tpl код
{if $sHtmlCanonical}
/>
{/if}»

Если интересно само сообщение об ошибке могу прислать. Поэтому воспользовался вашим советом и просто заключил в
avatar
заключил в noindex
avatar
Кто-нибудь знает как решить эту проблему?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.