Не так давно, Яндекс стал учитывать атрибут rel="canonical" . Я в этом убедился на своей шкуре. Специальных экспериментов не ставил, просто так получилось. ) Читайте.

Canonical и Яндекс

В конце мая этого года, на официальном блоге яндекс поиска была опубликована новость – “Поддержка атрибута rel=”canonical” роботом Яндекса”. Яндекс наконец-то стал учитывать атрибут canonical.

Атрибут тега <link> rel="canonical" используется для того, чтобы объяснить поисковому роботу, какая страница сайта является канонической. Если сайт имеет две или более страниц с одинаковым содержанием, но с разными адресами, то тег показывает роботам, какую страницу следует считать канонической. Яндекс.Помощь вебмастеру: rel="canonical"

Непроизвольный эксперимент с атрибутом  rel="canonical"

Эксперимент №1 — Кривые темы WordPress

В некоторых темах wordpress сделан вывод тега <link> с атрибутом rel="canonical". Тема этого блога сделана на основе одной из готовых тем, где как раз и был сделан вывод тега <link> с атрибутом canonical.

Я проверял корректность вывода url указанного в этом теге в статьях, но не проверял корректность url в рубриках и на главной странице. Так бы и не заметил ошибки, если бы яндекс не стал учитывать canonical.

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

canonical yandeks

Почему?!

Я сразу сел писать гневное письмо Платону — как так, что там у вас за баги.
Написал. Перед отправкой письма, на всякий случай, решил посмотреть код страниц блога. Посмотрел. )) В коде главной страницы, я увидел, что в теге с атрибутом 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’ом, чем прописать криво.

Комментарии:
  1. Здравствуйте.Столкнулся с такой же проблемой на сайте.В я ндекс ведмастере 980 старничек исключено.Кода <link rel="canonical" href="» /> в шаблоне header.php вообще нет.Перерыл весь сайт ,нашёл только в плагине All In One SEO Pack такую запись link rel=»canonical» .Подскажите как исправить такую напасть в плагине?? Спасибо за помощь.

    • Виктор, дак исключены они по какой причине? Может canonical тут совсем не причём. All In One SEO не использую, подсказать ничего не смогу, поставьте другой сео плагин.

  2. Помогите, пожалуйста.
    Обнаружила в панели вебмастера не индексируемые 520 стр, со следующим объяснением:
    Документ не является каноническим.В коде документа в тэге link содержится параметр rel=»canonical», указывающий на другой (канонический) документ. Вместо данного документа проиндексирован канонический.
    В файле «header.php», строки <link rel="canonical" href="» /> нет.
    Использую плагин All In One SEO Pack, пробовала откл не помогает.
    Что мне делать, подскажите кто знает, пожалуйста.

    • Урл скиньте на почту. Так, не увидев пациента, сложно предположения строить.)

  3. Спасибо за быстрый ответ и совет! Написал Платону — надеюсь, разберутся.

  4. Короче говоря, та же ссылка. Помогите, пожалуиста.

    • Не знаю. Каноникал прописан правильно. В кэше тоже правильный каноникал прописан.
      В индексе, как я понял, только февральские записи. То есть выкинуло все старые. Может раньше другой каноникал был.

      Удалённые из индекса как канонические url можно посмотреть в панели вебмастера. Выбираете сайт => Исключено роботом => Документ не является каноническим. Там будут все адреса страниц исключённых роботом как канонические.

      Напишите в сапорт или подождите пару апов, может вернутся.)

  5. Не дошло полностью.
    …то в теге canonical запись типа

  6. Здравстуйте!

    У меня проблема со второго екпкримента. Сайт стоит на Вордпрессе, пользуюсь All In One SEO Pack. После того, как установил чекер Canonical Urls, с поиска выпало более 90% страниц. В Вебмастере сообщение:

    «В коде документа в тэге link содержится параметр rel=»canonical», указывающий на другой (канонический) документ. Вместо данного документа проиндексирован канонический.»

    В исходном коде посмотрел, что если адрес у страницы например http://blyzhchedoboga.com.ua/2012/02/vitayemo-z-pochatkom-velikogo-postu/
    то в теге canonical запись типа

    и страница исключена из поиска, хотя дубля у нее нет.
    Помогите, пожалуиста, решить эту проблему.
    Заранее благодарен!

  7. Я ставил кнопки, руководствуясь постом Шакина http://shakin.ru/other/social-buttons.html. Он там использует в коде the_permalink(); поэтому и я воспользовался.
    В принципе, я уже разобрался. Нужно прописать условие. Если категория, то используем get_category_link($cat);, если пост, то the_permalink();

    Я просто не могу понять, как раньше адреса категорий добавлялись верно. А потом ни с того ни с сего перестали.

  8. Если выводит wp_head();, то всё должно выводится корректно.
    По кнопкам соцсетей не знаю. надо смотреть документацию по конкретной кнопке. )

    Врядли из функции the_permalink кнопка вконтакта берёт url. Это функция вордпресс.

    Завтра вечером посмотрю на своих сайтах. отпишусь. Я кнопки ставил только на посты, поэтому ничего сказать не могу. завтра поставлю на рубрики. если раньше получиться понять причину проблемы и решишь её — отпишитесь. )

  9. Я сейчас посмотрел — у меня rel=»canonical, оказывается, выводится автоматически из wp_head(); для страниц и постов.
    Для категорий я добавил кодом get_category_link($cat); Пишу только названия функций, так как код php не опубликуется.

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

    А вчера заметил, что стала публиковаться ссылка не на страницу категории, а на последний пост. Я что-то где-то читал, кажется, для кнопки гугла+1, что он может ориентироваться на rel=»canonical», вот и искал, как вставить его на страницу категории.

    После вставки ничего не изменилось. Я посмотрел, оказывается скрипт кнопки «мне нравится» берет ссылку на страницу из функции the_permalink, которая, как я понял, выводит ссылку только на посты.

    Тогда не могу понять, каким образом у меня раньше правильно публиковались ссылки на категории. Загадка, блин.

  10. Нашел вроде старую тему. Попробуйте просто в файле «header.php» своей темы удалить строку
    <link rel="canonical" href="<?php the_permalink(); ?>" />
    Потом посмотрите код, будет ли выводиться тег <link rel=»canonical» после удаления строки. Должен выводиться корректный. Добавлять ничего не нужно.

  11. Андрей, насколько помню, я посмотрел файл «header.php» стандартной темы и сравнил с файлом своей темы. Что-то добавил и убрал
    <link rel="canonical" href="<?php the_permalink(); ?>" />
    Уже точно не помню. Вышлите на емайл файл «header.php» своей темы, сравню со своей и подскажу, что нужно исправить.

  12. Я вижу, код в моем сообщении не дошел полностью. Он идентичен тому, который вы указали в первом эксперименте.

  13. Посмотрел — у меня в шаблоне тоже код:
    <link rel="canonical" href="» />

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

  14. Столкнулся с такой же проблемой, но кроме, как в All Seo Pack так и не встретил в шаблоне этого атрибута, а 26 страниц с сайта были проигнорированны роботом Яндекса…

Оставьте комментарий