Выкидывает из поиска: Неканоническая

Морган

Приватовец
Приватовец
VIP
Регистрация
15 Июн 2017
Сообщения
473
Реакции
154
Баллы
43
Всем привет. Хелп.
Яндекс выкидывает из поиска некоторые разделы. Ошибка на скрине. Как с этим бороться?
1234.jpeg



Плюс еще на некоторые фильмы пишет "ДУБЛЬ".
"Страница дублирует уже представленную в поиске страницу http://сайт.club. Укажите роботу предпочтительный адрес с помощью 301 редиректа или атрибута rel="canonical"."
 

aeneas

Новичок
Регистрация
27 Фев 2017
Сообщения
2.960
Реакции
1.346
Баллы
113
ну так написано же что надо делать )
 

Морган

Приватовец
Приватовец
VIP
Регистрация
15 Июн 2017
Сообщения
473
Реакции
154
Баллы
43
Так раздел почему то ловит каноническую любого первого фильма в списке.
Не каждый, некоторые. Вернее даже на некоторые фильмы как-о реагирует.
Добавил новый фильм в это раздел - ссылка исчезла.
Создал новую подборку, добавил 1 фильм, подборка подхватила каноническую ссылку от фильма. Бред какой-то.

Найти бы причину, а не лечение каждого случая в отдельности.
 
Последнее редактирование:

byroot

Новичок
Регистрация
2 Мар 2017
Сообщения
215
Реакции
103
Баллы
43
дальше сам додумай:
 

Морган

Приватовец
Приватовец
VIP
Регистрация
15 Июн 2017
Сообщения
473
Реакции
154
Баллы
43
Ссылки вижу и так. Но вот причина для меня не так очевидна.
Как-то связано с категориями, в частности вложенностью?
 

byroot

Новичок
Регистрация
2 Мар 2017
Сообщения
215
Реакции
103
Баллы
43
Ссылки вижу и так. Но вот причина для меня не так очевидна.
Как-то связано с категориями, в частности вложенностью?
Криво ставятся канонические ссылки! Перепроверяй код как ставил и ставь 100% верный и рабочий код.
 

Морган

Приватовец
Приватовец
VIP
Регистрация
15 Июн 2017
Сообщения
473
Реакции
154
Баллы
43
Только добрался до компа...

Подскажи, в чем ошибка, если не трудно...
Вот вроде та часть кода, где происходит вывод ссылки, если не ошибаюсь.
engine.php

Код:
if ( isset( $full_link ) && ! empty( $full_link ) ) {
    $metatags .= <<<HTML

<link rel="canonical" href="{$full_link}" />
HTML;
}
if($dle_module == "cat")
{
    $cstarts = isset($_REQUEST["cstart"]) ? intval($_REQUEST["cstart"]) : 1;
    $cat_cat =  !empty($category) ? strip_tags(stripslashes($category)) . '/' : '';
    $all_pages_counts = dle_cache( "news_rel_" . $cat_cat, $cat_cat, false);
    if($all_pages_counts === false)
    {
        $all_pages_counts = intval(ceil( $counts_all / $config['news_number'] ));
        create_cache ( "news_rel_" . $cat_cat, $all_pages_counts, $cat_cat, false );
    }
    if($cstarts < 2 && 1 != $all_pages_counts)
    {
        $next_rel = PHP_EOL . '<link rel="next" href="'. $config['http_home_url'] . $cat_cat . 'page/2' . '">';
        $prev_rel = '';
    }
    else if(1 != $all_pages_counts)
    {
        if($cstarts >= $all_pages_counts)
            $next_rel = '';
        else
            $next_rel = PHP_EOL . '<link rel="next" href="'. $config['http_home_url'] . $cat_cat .  'page/'. ($cstarts + 1) .'">';
       
        if($cstarts == 2)
            $prev_rel = PHP_EOL . '<link rel="prev" href="'. $config['http_home_url'] . $cat_cat . '">';
        else
            $prev_rel = PHP_EOL . '<link rel="prev" href="'. $config['http_home_url'] . $cat_cat .  'page/'. ($cstarts - 1) .'">';
    }
   
    $metatags .= $prev_rel . $next_rel;
}
if ($canonical) {

    $metatags .= <<<HTML

<link rel="canonical" href="{$config['http_home_url']}" />
HTML;

}

if ($config['allow_rss']) $metatags .= <<<HTML

<link rel="alternate" type="application/rss+xml" title="{$rss_title}" href="{$rss_url}" />
HTML;
Или может кто поможет.
Моих знаний пока не хватает для решения этого вопроса.
Сборку готовую ставил.
 

Морган

Приватовец
Приватовец
VIP
Регистрация
15 Июн 2017
Сообщения
473
Реакции
154
Баллы
43
Ап.
Подскажите что поправить. С меня на чипсы.
Вот часть кода engine.php, выдержка из выше, что там не верно?
И может где-то еще добавить код?


Код:
if ( isset( $full_link ) && ! empty( $full_link ) ) {
    $metatags .= <<<HTML

<link rel="canonical" href="{$full_link}" />
HTML;
}

......

if ($canonical) {

    $metatags .= <<<HTML

<link rel="canonical" href="{$config['http_home_url']}" />
HTML;

}
Нашел сеопак от gameer, но там от с пометкой "DLE 9.6 - 10.x" от от 08.01.2016.
 

Rockem

Новичок
Регистрация
1 Апр 2017
Сообщения
29
Реакции
19
Баллы
3
@dak80,
1. engine/modules/show.full.php открыть файл и найти:
Код:
} else {
 
            $full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
            $print_link = $config['http_home_url'] . "engine/print.php?newsid=" . $row['id'];
            $short_link = "";
            $link_page = "";
            $news_name = "";
 
        }
Ниже добавить:
Код:
$full_canonical = $full_link;
2. engine/engine.php открыть файл и найти:
Код:
if ($config['allow_rss']) $metatags .=
Выше добавить:
Код:
if ($full_canonical) {
	$metatags .= "\n<link rel=\"canonical\" href=\"{$full_canonical}\" />";
}
 

Морган

Приватовец
Приватовец
VIP
Регистрация
15 Июн 2017
Сообщения
473
Реакции
154
Баллы
43
@Rockem, это я в сеопаке том видел. А со старым кодом что делать? Что удалить, а что оставить? Вдруг конфликты какие.
Прежде чем добавлять новое, почистить бы старое. Или отредактировать на правильную работу.

Вот эту часть явно добавляли:
Код:
if ( isset( $full_link ) && ! empty( $full_link ) ) {
    $metatags .= <<<HTML

<link rel="canonical" href="{$full_link}" />
HTML;
}
 
Последнее редактирование:

Rockem

Новичок
Регистрация
1 Апр 2017
Сообщения
29
Реакции
19
Баллы
3
В вашем engine.php

Код:
if ( isset( $full_link ) && ! empty( $full_link ) ) {
    $metatags .= <<<HTML

<link rel="canonical" href="{$full_link}" />
HTML;
}

Заменить на:

Код:
if ($full_canonical) {
    $metatags .= "\n<link rel=\"canonical\" href=\"{$full_canonical}\" />";
}
 
Сверху Снизу