Canonical и Яндекс. Учитывает! Проверено :)
Не так давно, Яндекс стал учитывать атрибут rel="canonical" . Я в этом убедился на своей шкуре. Специальных экспериментов не ставил, просто так получилось. ) Читайте.
В конце мая этого года, на официальном блоге яндекс поиска была опубликована новость – “Поддержка атрибута rel=”canonical” роботом Яндекса”. Яндекс наконец-то стал учитывать атрибут canonical.
Атрибут тега <link> rel="canonical" используется для того, чтобы объяснить поисковому роботу, какая страница сайта является канонической. Если сайт имеет две или более страниц с одинаковым содержанием, но с разными адресами, то тег показывает роботам, какую страницу следует считать канонической. Яндекс.Помощь вебмастеру: rel="canonical"
Непроизвольный эксперимент с атрибутом rel="canonical"
Эксперимент №1 — Кривые темы WordPress
В некоторых темах wordpress сделан вывод тега <link> с атрибутом rel="canonical". Тема этого блога сделана на основе одной из готовых тем, где как раз и был сделан вывод тега <link> с атрибутом canonical.
Я проверял корректность вывода url указанного в этом теге в статьях, но не проверял корректность url в рубриках и на главной странице. Так бы и не заметил ошибки, если бы яндекс не стал учитывать canonical.
После очередного обновления поисковой базы, я увидел, что в выдаче яндекса по запросу, которому соответствует последняя опубликованная на блоге запись, появилась главная страница блога. Заголовок сниппета в выдаче был как у последней статьи.
Почему?!
Я сразу сел писать гневное письмо Платону — как так, что там у вас за баги.
Написал. Перед отправкой письма, на всякий случай, решил посмотреть код страниц блога. Посмотрел. )) В коде главной страницы, я увидел, что в теге с атрибутом rel="canonical" отображается url последней записи на блоге, а на страницах рубрик, отображается url последней записи опубликованной в этой рубрике. То есть, ошибки у меня на сайте. Пока Яндекс не учитывал canonical, я этого не замечал.
Тема WordPress, на основе которой была сделана моя тема блога, была сделана криво. На главной странице и в рубриках, в теге <link> с атрибутом rel="canonical", выводился url последних записей, а не url главной и рубрик.
Код в шаблоне header.php был такой:
<link rel="canonical" href="<?php the_permalink(); ?>" />
Исправил. Теперь всё нормально.
Но и это ещё не всё. )
Эксперимент №2 — Кривые руки
В какой-то момент заметил, что один мой сайт, который имел около 30 страниц в индексе, вылетел из индекса. Сначала осталось 5 страниц. Я подумал АГС. После следующего обновления поисковой базы, осталась только главная страница. Бан, подумал я. )
В принципе, было за что. Контента мало, а полезного — совсем нету. Предположил, что какой-то интересный запрос попал в топ и кто-то пожаловался. Как итог, наложение фильтра. Плюс прогонял сайт по трастовым профилям. Может фильтр за спамные ссылки.
Расстроился и смирился. Забыл на несколько дней. Потом в один прекрасный день подумал, а вдруг это тоже связано с тем, что яндекс стал учитывать атрибут canonical. Вдруг и там накосячил с этим атрибутом.
И точно. На всех страницах сайта выводился url главной страницы. Посмотрел данные по сайту в панели вебмастера. Робот исключил все страницы именно из-за того, что на всех страницах была указана главная страница как каноническая.
В коде документа в тэге link содержится параметр rel="canonical", указывающий на другой (канонический) документ. Вместо данного документа проиндексирован канонический.
Исправил. Вернее, совсем убрал этот тег.
Часть страниц через пару АПов вернулась в индекс. Вернуться и остальные.
Странно, но Google всё показывал как надо. Главная – с заголовком главной, посты – со своими заголовками. Может тоже учитывал, но по своему. )
Вот такой практический пример того, что Яндекс теперь действительно учитывает атрибут canonical. Да ещё как учитывает. ) Лучше не прописывать тег link с canonical’ом, чем прописать криво.
Здравствуйте.Столкнулся с такой же проблемой на сайте.В я ндекс ведмастере 980 старничек исключено.Кода <link rel="canonical" href="» /> в шаблоне header.php вообще нет.Перерыл весь сайт ,нашёл только в плагине All In One SEO Pack такую запись link rel=»canonical» .Подскажите как исправить такую напасть в плагине?? Спасибо за помощь.
Виктор, дак исключены они по какой причине? Может canonical тут совсем не причём. All In One SEO не использую, подсказать ничего не смогу, поставьте другой сео плагин.
Помогите, пожалуйста.
Обнаружила в панели вебмастера не индексируемые 520 стр, со следующим объяснением:
Документ не является каноническим.В коде документа в тэге link содержится параметр rel=»canonical», указывающий на другой (канонический) документ. Вместо данного документа проиндексирован канонический.
В файле «header.php», строки <link rel="canonical" href="» /> нет.
Использую плагин All In One SEO Pack, пробовала откл не помогает.
Что мне делать, подскажите кто знает, пожалуйста.
Урл скиньте на почту. Так, не увидев пациента, сложно предположения строить.)
Пациент url скинул)
Спасибо за быстрый ответ и совет! Написал Платону — надеюсь, разберутся.
Короче говоря, та же ссылка. Помогите, пожалуиста.
Не знаю. Каноникал прописан правильно. В кэше тоже правильный каноникал прописан.
В индексе, как я понял, только февральские записи. То есть выкинуло все старые. Может раньше другой каноникал был.
Удалённые из индекса как канонические url можно посмотреть в панели вебмастера. Выбираете сайт => Исключено роботом => Документ не является каноническим. Там будут все адреса страниц исключённых роботом как канонические.
Напишите в сапорт или подождите пару апов, может вернутся.)
Не дошло полностью.
…то в теге canonical запись типа
Здравстуйте!
У меня проблема со второго екпкримента. Сайт стоит на Вордпрессе, пользуюсь All In One SEO Pack. После того, как установил чекер Canonical Urls, с поиска выпало более 90% страниц. В Вебмастере сообщение:
«В коде документа в тэге link содержится параметр rel=»canonical», указывающий на другой (канонический) документ. Вместо данного документа проиндексирован канонический.»
В исходном коде посмотрел, что если адрес у страницы например http://blyzhchedoboga.com.ua/2012/02/vitayemo-z-pochatkom-velikogo-postu/
то в теге canonical запись типа
и страница исключена из поиска, хотя дубля у нее нет.
Помогите, пожалуиста, решить эту проблему.
Заранее благодарен!
Я ставил кнопки, руководствуясь постом Шакина http://shakin.ru/other/social-buttons.html. Он там использует в коде the_permalink(); поэтому и я воспользовался.
В принципе, я уже разобрался. Нужно прописать условие. Если категория, то используем get_category_link($cat);, если пост, то the_permalink();
Я просто не могу понять, как раньше адреса категорий добавлялись верно. А потом ни с того ни с сего перестали.
Если выводит wp_head();, то всё должно выводится корректно.
По кнопкам соцсетей не знаю. надо смотреть документацию по конкретной кнопке. )
Врядли из функции the_permalink кнопка вконтакта берёт url. Это функция вордпресс.
Завтра вечером посмотрю на своих сайтах. отпишусь. Я кнопки ставил только на посты, поэтому ничего сказать не могу. завтра поставлю на рубрики. если раньше получиться понять причину проблемы и решишь её — отпишитесь. )
Я сейчас посмотрел — у меня rel=»canonical, оказывается, выводится автоматически из wp_head(); для страниц и постов.
Для категорий я добавил кодом get_category_link($cat); Пишу только названия функций, так как код php не опубликуется.
Вообще я это все затеял из-за непонятки с кнопками социальных сетей. Вначале при нажатии на кнопку «поделиться ссылкой» на странице категории, на страничке в социальной сети публиковалась правильная ссылка на эту категорию.
А вчера заметил, что стала публиковаться ссылка не на страницу категории, а на последний пост. Я что-то где-то читал, кажется, для кнопки гугла+1, что он может ориентироваться на rel=»canonical», вот и искал, как вставить его на страницу категории.
После вставки ничего не изменилось. Я посмотрел, оказывается скрипт кнопки «мне нравится» берет ссылку на страницу из функции the_permalink, которая, как я понял, выводит ссылку только на посты.
Тогда не могу понять, каким образом у меня раньше правильно публиковались ссылки на категории. Загадка, блин.
Нашел вроде старую тему. Попробуйте просто в файле «header.php» своей темы удалить строку
<link rel="canonical" href="<?php the_permalink(); ?>" />
Потом посмотрите код, будет ли выводиться тег <link rel=»canonical» после удаления строки. Должен выводиться корректный. Добавлять ничего не нужно.
Андрей, насколько помню, я посмотрел файл «header.php» стандартной темы и сравнил с файлом своей темы. Что-то добавил и убрал
<link rel="canonical" href="<?php the_permalink(); ?>" />
Уже точно не помню. Вышлите на емайл файл «header.php» своей темы, сравню со своей и подскажу, что нужно исправить.
Я вижу, код в моем сообщении не дошел полностью. Он идентичен тому, который вы указали в первом эксперименте.
Посмотрел — у меня в шаблоне тоже код:
<link rel="canonical" href="» />
Каким образом вы исправили его? Выложите, пожалуйста, правильный вариант.
Столкнулся с такой же проблемой, но кроме, как в All Seo Pack так и не встретил в шаблоне этого атрибута, а 26 страниц с сайта были проигнорированны роботом Яндекса…