Что значит meta canonical url. Что такое rel=»canonical» и почему его нужно использовать

Добрый день, друзья! В начале месяца я запустила конкурс «Комментатор месяца» и установила виджет Топ комментаторов, так как без него конкурс провести трудно.

Сделала я это с помощью плагина. Это простой и удобный способ. Подробнее узнать о нем, а также об условиях моего конкурса вы можете .

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

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

Но благодаря подсказке Юлии, хозяйке блога bubuchinka.ru, мне удалось решить эту проблему. Дело было в том, что я использовала виджеты в сайдбаре и добавить между ними код было нельзя. К счастью решение нашлось, но обо всем по порядку.

Нам нужно будет внести изменения в следующие файлы: functions.php, style.css и sidebar.php. Если вы захотите вставить топ в подвал темы, то вам понадобится файл footer.php.

1. Сначала в файл functions.php перед закрывающим тегом?> вставляем код:

FUNCTION sp_top_commentator(){ global $wpdb; $length = 9; // количество символов $month = true; // периодичность обновления $comment = true; // показатель комментариев $nofollow = true; // индексация комментариев $count = 4; // количество комментаторов $col = 2; // число столбцов $avatarSize = 70; // размер аватара $exceptionEmail = "[email protected]"; // исключение адреса $results = $wpdb->get_results(" SELECT COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url FROM (select * from ".$wpdb->comments." order by comment_ID desc) as pc WHERE comment_author_email != "" AND comment_type = "" AND comment_approved = 1 AND comment_author_email NOT IN (".preg_replace("/([\w\d\.\-_]+@[\w\d\.\-_]+)(,? ?)/",""\\1"\\2",$exceptionEmail).")". ($month ? "AND month(comment_date) = month(now()) AND year(comment_date) = year(now())" : ""). "GROUP BY comment_author_email ORDER BY comments_count DESC LIMIT ".$count); $output = "
"; $i = 0; foreach($results AS $result){ IF ($i>=$col) { $output .= ""; $i = 0; } $i++; $output .= ""; } IF ($i<=$col) $output .= ""; $output .= "
".get_avatar($result->comment_author_email,$avatarSize)."
"; IF ($length AND $lengthcomment_author)) $result->comment_author = trim(mb_substr($result->comment_author, 0, $length))."."; IF ($result->comment_author_url) IF ($nofollow) $output .= "comment_author_url."">".$result->comment_author.""; ELSE $output .= "comment_author_url."">".$result->comment_author.""; ELSE $output .= $result->comment_author; IF ($comment) $output .= "(".$result->comments_count.")"; $output .= "
"; echo $output; }

Поясню некоторые значения:

$length — количество символов в имени комментатора. Не указывайте слишком много символов: после длинного имени следующая аватарка отображается немного криво.

month — частота обновления топа. Если хотите, чтобы топ обновлялся каждый месяц ставьте true, если нет, то false.

$comment — количество отзывов: true — отображается, false — нет.

$nofollow — индексация ссылок. Для запрещения индексации поставьте true.

$count — число комментаторов, отображающихся в топе. Выбираете по вашему усмотрению.

$col — число столбцов

$avatarsize — размер аватара. Выбираете размер, котрый подойдет для вашего блога.

$exceptionEmail — укажите свой e-mail, чтобы топ не учитывал ваши комментарии.

2. Переходим в файл style.css и вставляем в самом конце следующий код:

Top-COMMENT { height:100%; margin-top:-10px; } .top-COMMENT TABLE { min-height: 100%; height:100%; margin: 20px 0px 0px 5px; } .top-COMMENT TABLE td { float: CENTER; padding: 9px; WIDTH: 70px; } .top-COMMENT .avatar-top img { border: 3px solid #7FB2EC; } .top-COMMENT .avatar-COMMENT { font-SIZE: 11px; margin: 0; }

Сохраняем изменения.

3. Если вы не используете виджеты в сайдбаре, то просто вставляете туда код:

Если же вы, как и я, используете виджеты, то мы вставим этот код с помощью виджета. Но для того, чтобы это сделать нужно сначала добавить еще один код в файл functions.php

add_filter("widget_text","sp_widget_execute_php",100); function sp_widget_execute_php($text) { if(strpos($text,"".$text); $text = ob_get_contents(); ob_end_clean(); } return $text; }

Его, как и предыдущий код, я вставила в самом конце перед тегом?>.

Благодаря этому коду текстовый виджет будет исполнять PHP-код. Итак переходим во Внешний вид →Виджеты. перетаскиваем виджет текст в сайдбар и вставляем в него код:

Если боитесь изменять код, то можете установить плагин WP PHP Widget. Он также позволит вам вставлять в виджеты php код.

Выглядит он у меня так:

Надеюсь и у вас получится его установить. Не забывайте участвовать в конкурсе комментаторов!

Здравствуйте, друзья!

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

Так, что внимательно вникаем и, если что-то непонятно, то пишите в комментарии. Темой обсуждения является животрепещащий атрибут rel="canonical", который призван для предотвращения дублированного контента и упрощения индексации поисковым системам.
Пройдемся по каждому вопросу по порядку, чтобы сложилась целостная картина.

Принцип работы атрибута rel="canonical"

Атрибут или тег canonical (как еще называют) используется для того, чтобы дать поисковым системам понять, какой адрес правдивый и является главным для каждой страницы на сайте.

Rel="canonical" - это один из важнейших моментов в оптимизации любого сайта, который позволяет решить проблему дублированного контента. Особая нужда в его использовании появляется при использовании различных дижков для создания сайтов, таких как: WordPress, phpBB и других.

Различные движки помимо основных страниц генерируют еще и другие документы с точно таким же контентом, но выполняющие совершенно другие задачи, например:

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

Если взять сайт на WordPress, то при включенной функции древовидных комментариев доступна кнопка "Ответить" под каждым комментом.

Она делает адрес совершенно другим, а вот контент никуда не изменяется. Происходит явное дублирование контента, что очень плохо.

Одним из самых действенных способов предотвратить появление такой страницы в индексе поисковых систем является добавления на все подобные страницы атрибута rel="canonical", который укажет, что только статья является предпочтительным документом для индексации, а все остальные в индекс брать не нужно.

Как прописывать rel="canonical"

На различных движках (например, WordPress) добавление атрибута rel="canonical" происходит в автоматическом режиме. Также атрибут добавляется с помощью различных SEo плагинов.

Если же хотим добавить canonical в ручном режиме, то в область ресурса стоит добавить следующую строчку.

< link rel = "canonical" href = "адрес страницы" / >

Данный строку нужно обязательно добавить в секцию шапки сайта, то есть между открывающим и закрывающим тегом . Иначе поисковые системы проигнорируют ваше указание в виде этого атрибута. Также стоит добавлять его на каждую страницу, которая не является главной и доступна по другому адресу.

Если взять в пример ситуацию выше с адресами страниц, создаваемые кнопками ответа на комментарии на WordPress, то в исходном коде каждой такой страницы можно видеть атрибут rel="canonical".

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

http://i-am-kulinar.ru/poleznoe-obzory-intervyu/ne-proigral-nikto.html?replytocom=5499#respond

http : //i-am-kulinar.ru/poleznoe-obzory-intervyu/ne-proigral-nikto.html?replytocom=5499#respond

Такая страница благодаря атрибуту канонических адресов в индекс не попадет. Поисковики прекрасно примут во внимание ваше указание.

Рассмотрев основной принцип работы данного атрибута, можно перейти к следующему вопросу материала.

В каких случаях использовать?


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

Основные ошибки


Когда разобрали основные ошибки, которых стоит избегать и которые чаще всего употребляются, стоит упомянуть плагины WordPress и некоторые моменты работы с атрибутом rel="canonical" на том движке.

Сanonical в плагинах WordPress

Начнем с одного из самых популярных решений на рынке - all in one seo pack. Плагин хорош и добавляет данный атрибут в код каждой страницы, удаляя при этом стандартный canonical, создаваемый средствами движка. Для этого стоит включить соответствующую настройку.

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

Первый момент касается неправильной работы атрибута со страницами пагинации. Выше я писал, что каждая страница должна быть каноничной. Плагин же в rel="canonical" вписывает адрес на первую страницу (на главный адрес омена) из всего списка пагинации.


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

Вторым моментом является косяк, который я описывал в соответствующей статье (). Он может помочь нашим конкурентам добавить нежелательные страницы в индекс с помощью инструментов addurl в поисковый индекс. Данный косяк конечно же исправляется и хорошо, что средствами самого же плагина, активировав определенную настройку "No Pagination for Canonical URLs".

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

Вторым плагином на обозрении стоит Platinum seo pack. К страницам пагинации он относится с уважением. Проблема заключается лишь в дублировании rel="canonical". Просмотрев исходный код страницы, можно увидеть, что при включенной функции добавления атрибута, не убирается стандартный атрибут, выводимый движком.




Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: