Редактор темы

Seo dle - next и prev мета теги для dle

  • Автор темы Автор темы PunPun
  • Дата начала Дата начала
Автор темы
тут смотреть? -http://zerocoolpro.biz/forum/threads/poslednie-moduli-dle-9-x-10-x.2945/
 
HTML:
if($dle_module == "main" || $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;
}
 
Автор темы
Вот сделал прямо сейчас на Dle 10.6, как было так и соталось
Открой /engine/modules/show.short.php найди :
PHP:
while ( $row = $db->get_row( $sql_result ) ) {
Выше вставь :
PHP:
$counts_all = $count_all;
Почисти кэш.
 
Я ведь не писал что что-то удалять, а только повыше вставить, сразу перед этим кодом.
Заработало 🙂 Вопрос исчерпан.

Вот только очень хотелось спросить, это твоя недоработка была?
 
Последнее редактирование модератором:
Плюс к этому теги не появляются при пагинации страниц в доп полях.
Я конечно не имею претензий к @Gameer, и тем более не упрекаю не дай бог его не в чём, просто описываю факт..

Это планируется доработать или всё же не бывать этому?
Просто у многих год к примеру через доп поля выводится.
 
Это планируется доработать или всё же не бывать этому?
Просто у многих год к примеру через доп поля выводится.
Добавь нужные модули в подключении (самое начало кода):
PHP:
if($dle_module == "main" || $dle_module == "cat" || $dle_module == "lastnews" || $dle_module == "xfsearch")
 
С точки зрения SEO, неправильная работа с пагинацией может вызвать серьезные проблемы с индексацией содержимого вашего сайта.
...
На данный момент у SEO специалистов есть 4 способа для решения данной проблемы.
...
Вариант 1. Удаление постраничной пагинации из индекса с помощью noindex
Вариант 2. «Смотреть всё» и rel=“canonical”
Вариант 3. Rel=“prev”/“next”
Вариант 4. AJAX и Javascript прокрутка
...
Источник первый что в гугле встретился - http://seoprofy.ua/blog/optimizaciya-sajtov/pagination-for-seo

Как видно из вариантов в статье - один из вариантов - это закрытие всех страниц пагинации в ноиндекс через метатег роботс...

Итог: если у вас закрыты страницы пагинации через
Код:
<meta name="robots" content="noindex, follow" />
то и не стоит заморачиваться добавлением тегов "Rel=“prev”/“next”"
😉
 
Источник первый что в гугле встретился - http://seoprofy.ua/blog/optimizaciya-sajtov/pagination-for-seo

Как видно из вариантов в статье - один из вариантов - это закрытие всех страниц пагинации в ноиндекс через метатег роботс...

Итог: если у вас закрыты страницы пагинации через
Код:
<meta name="robots" content="noindex, follow" />
то и не стоит заморачиваться добавлением тегов "Rel=“prev”/“next”"
😉

Приветствую,

Хотелось экспертного мнения... а как же все-таки лучше? использовать мета-тег rel="next" rel="prev" или <meta name="robots" content="noindex, follow" /> ??? что лучше?

И как в случае noindex робот будет индексировать все новости с данной страницы пагинации...
 
1428243085_1414940078_seodles.png
Что такое next и prev мета теги ?
  1. Эти атрибуты rel="next" и rel="prev" , помогут указать связь между несколькими URL.
  2. Благодаря этой разметке Google может определить, что содержание данных страниц связано в логической последовательности, и направить пользователя на начальную страницу.
А так же :
  1. Создать консолидированный индекс страниц, чтобы ссылки не рассеивались между отдельными страницами page-1.html, page-2.html, и так далее
  2. При поиске направить пользователя на наиболее релевантную страницу среди всех остальных, например в начало статьи, разбитой на несколько страниц
Для этого, нам просто нужно открыть /engine/engine.php найти :
PHP:
if ($canonical) {
если нету таковой строчки, значит у вас старая версия по этому ищите эту строчку :
PHP:
if ($config['allow_rss']) $metatags .= <<<HTML

А как сделать,чтобы ссылки имели слэш на конце?
 
У мну вопрос:
URL: https://site.ru/films/komedii/page/4/

Мета навигация выводится так:
<link rel="prev" href="https://site.ru/komedii/page/3">
<link rel="next" href="https://site.ru/komedii/page/5">

301 редирект работает, но все же...
Что допилить, чтобы ссылки выводились по полному пути и со слэшем в конце:

<link rel="prev" href="https://site.ru/films/komedii/page/3/">
<link rel="next" href="https://site.ru/films/komedii/page/5/">

И второй момент:
В коде главной появляется ссыль:
<link rel="next" href="https://site.ru/page/2">

Как это убрать?

Спасибо за внимание.
 
Чтобы выводился полный путь, я сделал так:
Заменил строку:
$cat_cat = !empty($category) ? strip_tags(stripslashes($category)) . '/' : '';
на:
$cat_cat = !empty($category) ? substr(stristr($_SERVER['REQUEST_URI'], $category, true),1) . $category .'/' : '';
 
Супер, спасибо, выводит теперь полный путь, но как добавить "/" в конце?


Уже три раза пробовал, выдает ошибку. 🙁

Получилось так:

<link rel="prev" href="https://site.ru/films/komedii/page/3">
<link rel="next" href="https://site.ru/films/komedii/page/5">

А правильно вывести:

<link rel="prev" href="https://site.ru/films/komedii/page/3/">
<link rel="next" href="https://site.ru/films/komedii/page/5/">
Чтоб редирект не гонять постоянно.
 
Последнее редактирование модератором:
вот код в engine.php

/* prev и next на пагинации */
if($dle_module == "main" || $dle_module == "cat")
{
$cstarts = isset($_REQUEST["cstart"]) ? intval($_REQUEST["cstart"]) : 1;
//$cat_cat = !empty($category) ? strip_tags(stripslashes($category)) . '/' : '';
$cat_cat = !empty($category) ? substr(stristr($_SERVER['REQUEST_URI'], $category, true),1) . $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;
}
/* prev и next на пагинации */
 

Похожие темы Последние темы Популярные темы

Назад
Сверху