22.03.2016      1772      0
 

Канонические адреса попадут в индекс если улучшить код


Канонические адреса страниц попадут в индекс. Но только если в коде неканонического варианта текста вставляется атрибут rel=”canonical”. Однако, здесь должна быть ссылка на адрес канонический, то есть  на ту статью, которую мы написали. Синонимами слова “канонический”, могут послужить слова: “установленный”, “истинный”, “узаконенный” – что-то в этом духе. Сейчас атрибут вставляется автоматически, средствами Word Press. канонические адреса

Канонические адреса атрибут rel=”canonical”

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

Однако каноническим является только тот вариант, который мы создали. Все остальные варианты не канонические, но лишь производные от истиной статьи. Длительное время указание  канонических адресов страниц  возлагалось на SEO плагины. Однако, это то плохо получалось. Чем мы можем помочь, чтобы в индексе не было ничего кроме канонических адресов страниц? Справиться с этим может только настоящий программист. Который сможет настроить управление атрибутом rel=”canonical”, при помощи кода.

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

информация в Яндекс вебмастере

В конце 2015 года в  Яндекс вебмастере появилась информация о неканонических адресах. Веб мастер стал показывать таблицу ошибок. Перечислял конкретно, для каждой статьи блога. Потому блогеры /не программисты/ забеспокоились и стали искать людей, которые могли бы помочь.

Код для канонических страниц

Рецепт от беды  нашла у человека, который программистом стал самостоятельно. Он бескорыстно делится знаниями с другими.  О канонических адресах и применении rel= ”canonical” у Виталия Кирилова написано понятно. Скопировала, созданный им, длинный код. Вставила его в файлы функций обеих блогов. В дальнейшем переустановила код в плагин функций. Об этом подробнее изложено  здесь.

<--noindex--><rel="nofollow">
/***   rel="canonical" ***/ 
remove_action('wp_head', 'rel_canonical');
function mayak_wp_canonical(){
if ( !is_singular() )
return;
global $wp_the_query;
if ( !$id = $wp_the_query->get_queried_object_id() )
return;
$link = get_permalink( $id );
if ( $page = get_query_var('cpage') )
$link = get_comments_pagenum_link( $page );
echo "<link rel='canonical' href='$link' />\n";
}
add_action('wp_head', 'mayak_wp_canonical',3);
function mayak_canonical(){
if (is_home() ) {
$mayak_chief_link = get_option('home');
$mayak_home_link = mayak_link_paged($mayak_chief_link);
$mayak_home_link = trailingslashit($mayak_home_link);
{
echo "".'<link rel="canonical" href="'.$mayak_home_link.'" />'."\n"; 
}
} else if (is_category()) {
$mayak_cat_link = get_category_link(get_query_var('cat'));
$mayak_category_link = mayak_link_paged($mayak_cat_link);
{
echo "".'<link rel="canonical" href="'.$mayak_category_link.'" />'."\n"; 
}
} else if (function_exists('is_tag') && is_tag()){
$tag = get_term_by('slug',get_query_var('tag'),'post_tag');
if (!empty($tag->term_id)) {
$tag_link = get_tag_link($tag->term_id);
} 
$mayak_tag_link = mayak_link_paged($tag_link);
$mayak_tag_link = trailingslashit($mayak_tag_link);
{
echo "".'<link rel="canonical" href="'.$mayak_tag_link.'" />'."\n"; 
}
} else if (is_author()){
global $cache_userdata;
$userid = get_query_var('author');
$mayak_auth_link = get_author_link(false, $userid, $cache_userdata[$userid]->user_nicename);
$mayak_author_link = mayak_link_paged($mayak_auth_link);
{
echo "".'<link rel="canonical" href="'.$mayak_author_link.'" />'."\n"; 
}
} 
else if (is_date()){
if (get_query_var('m')) {
$m = preg_replace('/[^0-9]/', '', get_query_var('m'));
switch (strlen($m)) {
case 0: 
$mayak_date_link = get_year_link($m);
$mayak_date_link = mayak_link_paged($mayak_date_link);
break;
case 1: 
$mayak_date_link = get_month_link(substr($m, 0, 4), substr($m, 4, 2));
$mayak_date_link = mayak_link_paged($mayak_date_link);
break;
case 2: 
$mayak_date_link = get_day_link(substr($m, 0, 4), substr($m, 4, 2),
substr($m, 6, 2));
$mayak_date_link = mayak_link_paged($mayak_date_link); 
break;
default:
$mayak_date_link = '';
}
}
if (is_day()) {
$mayak_date_link = get_day_link(get_query_var('year'), get_query_var('monthnum'), get_query_var('day'));
$mayak_date_link = mayak_link_paged($mayak_date_link); 
} else if (is_month()) {
$mayak_date_link = get_month_link(get_query_var('year'), get_query_var('monthnum'));
$mayak_date_link = mayak_link_paged($mayak_date_link); 
} else if (is_year()) {
$mayak_date_link = get_year_link(get_query_var('year'));
$mayak_date_link = mayak_link_paged($mayak_date_link);
}
{
echo "".'<link rel="canonical" href="'.$mayak_date_link.'" />'."\n"; 
}
}
}
function mayak_link_paged($link) {
$mayak_page = get_query_var('paged');
$mayak_check = function_exists('user_trailingslashit');
if ($mayak_page && $mayak_page > 1) {
$link = trailingslashit($link) ."page/". "$mayak_page";
if ($mayak_check) {
$link = user_trailingslashit($link, 'paged');
} else {
$link .= '/';
}
}
return $link;
}
add_action('wp_head', 'mayak_canonical');

/***    rel="canonical" ***/
<--/noindex-->

Это код, себе записала  для памяти, но вначале скопировала в notepad++. Чтобы в блокноте сделать правильную кодировку /UTF – 8/.  Теперь атрибутом rel=”canonical” руководит код. Наряду со средствами  Word Press.

 Канонические адреса индексация после вставки кода

Положительные результаты стали появляться только через месяц. Количество сообщений о неканонических адресах в Яндексе уменьшилось вдвое. Но на моей странице о даче в индекс Яндекса попало много  вложений с рисунками.  После введения кода в адресах вложений сформировалось перенаправление на основную статью. Отдельные страницы вложений в индексе стали запрещенными.

Эта статья была написана в 2016 году. С тех пор прошло 4 года. Совсем забыла про наличие  кода, для установки атрибута, в плагине функций. Но в 2020 году у меня в индексах обоих сайтов опять стали появляться неканонические статьи.

При просмотре кода статей увидела, что в каждой статье у меня генерируется 2 атрибута ссылки rel canonical. Получилось это потому, что плагин Yoast SEO по умолчанию вставляет в код этот атрибут. Но если плагин SEO другой, тогда Word Press автоматически вставляет свою такую же ссылку.

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


Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *