Что значит 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 = "".get_avatar($result->comment_author_email,$avatarSize)." ";
IF ($length AND $length | ";
}
IF ($i<=$col) $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,"") !== false) { ob_start(); eval("?>".$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". Просмотрев исходный код страницы, можно увидеть, что при включенной функции добавления атрибута, не убирается стандартный атрибут, выводимый движком.