Отличный способ внутренней перелинковки статей (для WordPress)

Отличный способ внутренней перелинковки статей (для WordPress) Евгений Самборский в своей статье “Как добиться хорошей индексации статей” рассказал про занятный способ внутренней перелинковки статей сайта.

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

Процитирую Женю:

Под текстом каждой статьи на своих и клиентских сайтах я делаю список из 5-ти ранее опубликованных статей из рубрики. Замечу, что многие делают подобные списки, но зачастую в них ссылки на последние статьи. Я же линкую именно предыдущие, грубо говоря если у текущей статьи ID = 10, то в списке предыдущих будут статьи с ID 9,8,7,6,5. Каждая статья получает минимум 4 вечных внутренних ссылки.

Естественно, после прочтения статьи я загорелся желанием реализовать такую полезную штуку на WordPress’е. И, естественно, я ее сделал.

Более того, по подсказке Дэна я пошел еще дальше, чем задумывал первоначально – сделал кольцевую перелинковку. Для наглядности пример – в рубрике есть 10 статей, и в списке мы выводим 5 статей. При заходе в 3-ю статью, список “Предыдущие из рубрики” будет содержать ссылки на статьи 2, 1, 10, 9, 8.

В результате каждая статья рубрики получает на себя одинаковое количество ссылок из той же самой рубрики.

“Давай уже, Димокс, не томи, выкладывай код на стол!” (голос из зала =).

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

<?php
$li = 5; // сколько ссылок показывать в списке
$postID = $post->ID;
$postDate1 = get_the_time('YmdHis','','',false);
$cat = get_the_category(); $cat = $cat[0]; $cat = $cat->cat_ID;
$catQuery = new WP_Query('showposts=-1&cat='.$cat);
$i = 0;
if ($catQuery->have_posts() && $catQuery->post_count > 1) :
?>
<ul>
<?php
  while ($catQuery->have_posts()) : $catQuery->the_post();
    $postDate2 = get_the_time('YmdHis','','',false);
    if ($postDate2 < $postDate1 && $post->ID != $postID) {
      $i++;
      if ($i <= $li) {
?>
  <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php
      }
    }
  endwhile;
?>
<?php
  $posts = $li - $i;
  $cat_count = get_category($cat)->category_count;
?>
<?php
  if (($cat_count - 1) > $i) {
    if ($posts > 0) {
      $temp_query = $wp_query;
      if (($cat_count - 1) < $li) $posts = $cat_count - 1 - $i;
      query_posts('showposts='.$posts.'&cat='.$cat);
      if (have_posts()) : while (have_posts()) : the_post();
?>
  <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php
      endwhile; endif;
      $wp_query = $temp_query;
    }
  }
?>
</ul>
<?php endif; wp_reset_query(); ?>

Код необходимо запихнуть в файл single.php. Если вы не разбираетесь в шаблонах WordPress, то лучше вообще ничего не трогать.

Шаблон ссылки встречается в этом коде 2 раза (обратите на это внимание) и имеет следующий вид:

<li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>

В этом шаблоне можно использовать все те же php-теги, которые используются в стандартном WordPress-цикле.

Код проверялся только на WordPress 2.8.4, поэтому работу в других версия я не гарантирую.

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

P.S. Кстати, по аналогии можно сделать внутреннюю перелинковку статей и для блога в целом, а не только в пределах рубрик.

Update 29.11.09

В комментариях подсказали более правильный вариант кода для вывода списка (спасибо пользователю Kama!), который, по сравнению с моим вариантом, берет из БД только те посты, которые появятся в списке (в моем варианте сначала считываются ВСЕ записи текущей рубрики, и только потом происходит выборка).

<?php
function show_previous_posts_from_category ($the_post_id, $the_category_id = 0, $post_num) {

	$num = 0;
	global $wpdb;

	$sql = "SELECT wposts.*
	FROM $wpdb->posts wposts
	LEFT JOIN $wpdb->term_relationships ON (wposts.ID = $wpdb->term_relationships.object_id)
	LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
	WHERE $wpdb->term_taxonomy.taxonomy = 'category'
	AND $wpdb->term_taxonomy.term_id = '$the_category_id'
	AND wposts.post_status = 'publish'
	AND wposts.post_type = 'post'
	AND wposts.ID < '$the_post_id'
	ORDER BY wposts.ID DESC
	LIMIT $post_num";

	$result = $wpdb->get_results($sql, OBJECT);
	global $post;
?>
<ul>
<?php
	foreach ($result as $post) {
		setup_postdata($post);
?>
	<li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php
		$num++;
		$save_ids[] = $post->ID;
	}
	if ( $num < $post_num || !$result ) {
		$need_more = $post_num-$num;
		$save_ids[] = $the_post_id;
		$save_ids = join (',', $save_ids);
		$more_posts = get_posts("numberposts=$need_more&category=$the_category_id&exclude=$save_ids");
		foreach ($more_posts as $post){
			setup_postdata($post);
?>
	<li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php
		}
	}
?>
</ul>
<?php } ?>

<?php
	$the_cat = get_the_category();
	$the_cat_id = $the_cat[0]->cat_ID;
	show_previous_posts_from_category($post->ID, $the_cat_id, 5);
	wp_reset_query();
?>

Количество ссылок указывается в самой последней строке кода. Шаблон ссылки также находится в двух местах.

* * *

Система обмена cсылками нового поколения LinkToLink.ru – бесплатное продвижение сайтов, дополнительный заработок без комиссий.

Комментарии (158)

  1. 4 марта 2011 г. в 10:41

    Фуу, намучился я с этими вашими кодами, чуть сайт не снес…. )))) Но все-таки поставил как надо, поэтому спасибо вам большое!

  2. alex
    30 марта 2011 г. в 12:32

    всем привет!
    подскажите пожалуйста какой код куда нужно вставлять или что на что заменить?
    спасибо

  3. Dez
    6 апреля 2011 г. в 19:07

    предыдущие посты – это хорошо.
    а как насчёт отображения следующих по списку постов (т.е. тех,которые наоборот новее)?

  4. Нурлан
    22 мая 2011 г. в 15:36

    Поставил, все отлично работает. Если не секрет, подскажите, какой плагин у вас стойт слева экрана с кнопками соцсетей.

    1. http://dimox.name/socializ-floating-panel/

  5. 14 июня 2011 г. в 17:42

    спасибо за код, пригодился!

  6. 19 декабря 2011 г. в 22:06

    Помогите плиз советом, реализовал такой код у себя на сайте и в той статье где оно есть, не отображаются ниже комментарии, после того как код убираю, отображаются. Очень прошу помощи, самому разобраться не получилось :(

    1. 20 декабря 2011 г. в 13:52 / ответ на коммент Евгений

      Попробуйте установить код из этой статьи.

      1. 20 декабря 2011 г. в 21:41 / ответ на коммент Dimox

        Спасибо, попробую!

        1. 3 сентября 2012 г. в 12:43 / ответ на коммент Евгений

          А подскажите кто-нибудь, как можно данный код интегрировать в плагин Wp-Thumbie, чтобы возле ссылок на статьи отображались миниатюры? В самом плагине рекомендованные статьи указываются по похожим словам в тексте и заголовках, что не очень хорошо и больше никаких настроек нет..
          Может кто знает, как реализовать перелинковку с миниатюрами, но по принципу Dimox’a, только последние с круговой перелинковкой?.. Думаю, это многим пригодилось бы.

  7. 5 сентября 2012 г. в 02:36

    Епта! У меня не пашет просто тупо не выводит ничего,

    Не подскажешь в чем может быть дело может в базе данных таблицы не совпадают?

    1. 5 сентября 2012 г. в 09:09 / ответ на коммент Ринат

      В твоем коде нет кода перелинковки.

      1. 5 сентября 2012 г. в 12:55 / ответ на коммент Dimox

        Да нет я его ставил там где уже начинается подключение комментов, просто тупо ничего не выводит может идет перехват переменных?

      2. 5 сентября 2012 г. в 12:58 / ответ на коммент Dimox

        Его вызывать не надо эту функцию?

        1. 5 сентября 2012 г. в 13:01 / ответ на коммент Ринат

          Вот черт теперб работает! Че вечером значит пахать не хочет а с утра как миленький заработал! Спасибо за код!)))

  8. 5 сентября 2012 г. в 13:32

    Вот еще проблема. Я вывожу картинки и частично текст но он выводит по неправильному порядку.
    Т.е картинка принадлежит другому посту а он ее выводит совсем в другом посте.
    Вот код

    <?php
    function show_previous_posts_from_category ($the_post_id, $the_category_id = 0, $post_num) {
    
      $num = 0;
      global $wpdb;
    
      $sql = "SELECT wposts.*
      FROM $wpdb->posts wposts
      LEFT JOIN $wpdb->term_relationships ON (wposts.ID = $wpdb->term_relationships.object_id)
      LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
      WHERE $wpdb->term_taxonomy.taxonomy = 'category'
      AND $wpdb->term_taxonomy.term_id = '$the_category_id'
      AND wposts.post_status = 'publish'
      AND wposts.post_type = 'post'
      AND wposts.ID < '$the_post_id'
      ORDER BY wposts.ID DESC
      LIMIT $post_num";
    
      $result = $wpdb->get_results($sql, OBJECT);
      global $post;
    ?>
    
    <div class="related1">
    
    <ul class="recent">
    <h2>Предыдущие статьи из категории: <?php the_category( ', ' ) ?></h2>
    <?php
      foreach ($result as $post) {
    
        setup_postdata($post);
    ?>
      <li>-<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
    <? the_excerpt();  ?>
    <?php the_post_thumbnail(array(40,40)); ?>
    <?php
        $num++;
        $save_ids[] = $post->ID;
      }
      if ( $num < $post_num || !$result ) {
        $need_more = $post_num-$num;
        $save_ids[] = $the_post_id;
        $save_ids = join (',', $save_ids);
        $more_posts = get_posts("numberposts=$need_more&category=$the_category_id&exclude=$save_ids");
        foreach ($more_posts as $post){
    
          setup_postdata($post);
    ?>
      <li>-<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
    <? the_excerpt(); ?>
    <?php the_post_thumbnail(array(40,40)); ?>
    </li>
    <?php
        }
      }
    ?>
    </ul>
    </div>
    <?php } ?>
    
    <?php
      $the_cat = get_the_category();
      $the_cat_id = $the_cat[0]->cat_ID;
      show_previous_posts_from_category($post->ID, $the_cat_id, 5);
      wp_reset_query();
    ?>
    1. 5 сентября 2012 г. в 13:37 / ответ на коммент Ринат

      Извини за предыдущий коммент сам сделал уже ))

  9. 5 сентября 2012 г. в 14:56

    А подскажите кто-нибудь, как можно вывести в этом коде миниатюру записи? Ну и может реально выводить первое предложение, как в плагине WP-Thumbie, только там перелинковки нет.

    1. 5 сентября 2012 г. в 15:01 / ответ на коммент Denis

      На

      <?php
      function show_previous_posts_from_category ($the_post_id, $the_category_id = 0, $post_num) {
      
        $num = 0;
        global $wpdb;
      
        $sql = "SELECT wposts.*
        FROM $wpdb->posts wposts
        LEFT JOIN $wpdb->term_relationships ON (wposts.ID = $wpdb->term_relationships.object_id)
        LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
        WHERE $wpdb->term_taxonomy.taxonomy = 'category'
        AND $wpdb->term_taxonomy.term_id = '$the_category_id'
        AND wposts.post_status = 'publish'
        AND wposts.post_type = 'post'
        AND wposts.ID < '$the_post_id'
        ORDER BY wposts.ID DESC
        LIMIT $post_num";
      
        $result = $wpdb->get_results($sql, OBJECT);
        global $post;
      ?>
      
      <div class="related1">
      
      <ul class="recent">
      <h2>Предыдущие статьи из категории: <?php the_category( ', ' ) ?></h2>
      <?php
        foreach ($result as $post) {
      
          setup_postdata($post);
      ?>
        <li>
      <?php the_post_thumbnail(array(40,40)); ?>
      <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
      <? the_excerpt();  ?>
      
      <?php
          $num++;
          $save_ids[] = $post->ID;
        }
        if ( $num < $post_num || !$result ) {
          $need_more = $post_num-$num;
          $save_ids[] = $the_post_id;
          $save_ids = join (',', $save_ids);
          $more_posts = get_posts("numberposts=$need_more&category=$the_category_id&exclude=$save_ids");
          foreach ($more_posts as $post){
      
            setup_postdata($post);
      ?>
        <li><?php the_post_thumbnail(array(40,40)); ?>
      <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
      <? the_excerpt(); ?>
      
      </li>
      <?php
          }
        }
      ?>
      </ul>
      </div>
      <?php } ?>
      
      <?php
        $the_cat = get_the_category();
        $the_cat_id = $the_cat[0]->cat_ID;
        show_previous_posts_from_category($post->ID, $the_cat_id, 5);
        wp_reset_query();
      ?>
      
      
      1. 5 сентября 2012 г. в 15:02 / ответ на коммент Ринат

        ТОлько после начала функции добаваь

        <?php function new_excerpt_length($length) {
        return 10; }
        add_filter('excerpt_length', 'new_excerpt_length');
        ?>
        
    2. 5 сентября 2012 г. в 15:06 / ответ на коммент Denis

      Окончательный вариант )))

      <?php
      function show_previous_posts_from_category ($the_post_id, $the_category_id = 0, $post_num) {
      function new_excerpt_length($length) {
      return 10; }
      add_filter('excerpt_length', 'new_excerpt_length');
      
        $num = 0;
        global $wpdb;
      
        $sql = "SELECT wposts.*
        FROM $wpdb->posts wposts
        LEFT JOIN $wpdb->term_relationships ON (wposts.ID = $wpdb->term_relationships.object_id)
        LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
        WHERE $wpdb->term_taxonomy.taxonomy = 'category'
        AND $wpdb->term_taxonomy.term_id = '$the_category_id'
        AND wposts.post_status = 'publish'
        AND wposts.post_type = 'post'
        AND wposts.ID < '$the_post_id'
        ORDER BY wposts.ID DESC
        LIMIT $post_num";
      
        $result = $wpdb->get_results($sql, OBJECT);
        global $post;
      ?>
      
      <div class="latest_article">
      
      <ul class="latest">
      <h2>Предыдущие статьи из категории: <?php the_category( ', ' ) ?></h2>
      <?php
        foreach ($result as $post) {
      
          setup_postdata($post);
      ?>
        <li>
      <?php the_post_thumbnail(array(40,40)); ?>
      <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
      <? the_excerpt();  ?>
      
      <?php
          $num++;
          $save_ids[] = $post->ID;
        }
        if ( $num < $post_num || !$result ) {
          $need_more = $post_num-$num;
          $save_ids[] = $the_post_id;
          $save_ids = join (',', $save_ids);
          $more_posts = get_posts("numberposts=$need_more&category=$the_category_id&exclude=$save_ids");
          foreach ($more_posts as $post){
      
            setup_postdata($post);
      ?>
        <li>
      <?php the_post_thumbnail(array(40,40)); ?>
      <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
      
      <? the_excerpt(); ?>
      
      </li>
      <?php
          }
        }
      ?>
      </ul>
      </div>
      <?php } ?>
      
      <?php
        $the_cat = get_the_category();
        $the_cat_id = $the_cat[0]->cat_ID;
        show_previous_posts_from_category($post->ID, $the_cat_id, 5);
        wp_reset_query();
      ?>
      
      1. 5 сентября 2012 г. в 16:03 / ответ на коммент Ринат

        Спасибо, Ринат! Все получилось)
        Пример реализации кода с миниатюрами _http://smileaf.org/politika/v-molodezhnuyu-versiyu-gorsoveta-projdut-40-chelovek.html

        1. 5 сентября 2012 г. в 16:05 / ответ на коммент Denis

          Всегда пожалуйста ! )

          1. Александр
            21 февраля 2013 г. в 16:40 / ответ на коммент Ринат

            Ринат, большое спасибо. Подскажите пожалуйста как уменьшить количество выводимого текста из предыдущей статьи?

  10. Василий
    11 апреля 2013 г. в 19:59

    Мне кажется вы не правы и буду рад, если вы докажете мне обратное. Я также написал Каме, интересно и его мнение.

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

    Итак, вы говорите о том, что допустим когда зайходим на 3-ю статью будут показаны ссылки на: 2,1,10,9 статьи. Соответственно, на 1-ой статье будут показаны 10,9,8,7 статьи. Для необновляющегося сайта это великолепное кольцо.

    Но! Допустим, прошло пару месяцев и у вас появилось 5 новых статей. Теперь первая статья ссылается на 15,14,13,12 статьи. Получается, что все ссылки поменялись и теперь вес передается им. Поисковики-то еще не успели учесть те ссылки, а тут уже новые… Таким образом, кольцо разывается и формируется новое, для полноценной работы которого нужно несколько месяцев.

    Но у вашего кольца соответственно нет нескольких месяцев – схема не работает. Где я не прав?

    1. 11 апреля 2013 г. в 20:39 / ответ на коммент Василий

      Это актуально только для первых 5 статей (конечно, если выводится 5 предыдущих). Для всех остальных статей список всегда будет постоянным.

      Учитывая, что на сайте, как правило, значительно больше, чем 5 статей, данную проблему считаю не существенной.

      1. Василий
        12 апреля 2013 г. в 14:03 / ответ на коммент Dimox

        Но ведь теряется смысл кольца, при котором вес перетекает по кругу! Понятно, что статья 10 фиксировано ссылается на статью 9,8,7,6, но то же самое делает и модуль “Предыдущие статьи”. А статья 10, а потом 15 не получает веса 1-ой статьи и потому не передает этот вес дальше по кругу.

        И соответственно при 15 статьях 10-ая,9,8,7,6 и т.п. варятся в собственном соку, абсолютно ТОЧНО ТАК ЖЕ как при модуле “Предыдущие статьи”. И потому, мне кажется, смысла в кольце, описанном в данной вашей статье нет!

        Ну или я не прав и данная схема чем-то лучше “Предыдущих статей”?

        P.S. Учитывая, что если поставить 5 статей, то ссылка на одну и ту же статью будет в 5 других, в одном месте и с одинаковым анкором – поисковик тупо может посчитать его за сквозняк и понизить вес, передаваемый по таким ссылкам.

        P.P.S. Учитывая, что все ссылки идут с одинаковым анкором, еще и совпадающим с названием, ну вы понимаете как к такой “ссылочной массе” отнесутся поисковики… :)

  11. Простой
    18 апреля 2013 г. в 05:34

    Такой вопрос:
    А стоит ли в конце поста выводить рандомно записи (их title) на другие посты?

  12. Слава
    13 сентября 2013 г. в 23:18

    Помогите сделать как у вас на сайте блок как на скрине http://savepic.su/3272806.jpg

  13. Евгений
    4 февраля 2014 г. в 21:08

    Что-то не работает на wp 3.8 или я что-то делаю не так?(

    1. 5 февраля 2014 г. в 11:02 / ответ на коммент Евгений

      У меня на 3.8 работает без проблем.

  14. 12 июня 2014 г. в 12:00

    Всем привет, в общем бился 2 дня над текущим кодом… подключал с миниатюрами. Все дело в том, что не смог победить кое-какие стили. То есть если блок перелинковки отображался корректно и красиво, то где-нить в другом месте стили отваливались… Решил с помощью добавления таблицы может и старомодно, но работает _http://ladymsk.com/xulaxup-dlya-poxudeniya.html
    У кого если существует такая проблемка, то вот код:

    
    <table width="600" border="1" align="center" 
         cellpadding="4" cellspacing="0">
        <tr> 
         <td rowspan="2" bgcolor="#FFFFFF" width="100px" style="vertical-align: top"><a href="<?php the_permalink() ?>"><?php the_post_thumbnail('post-thumb'); ?></a> </td>
         <td>
    <h2><a href="<?php the_permalink() ?> rel="bookmark"><?php the_title(); ?></a></h2></td>
        </tr>
        <tr> 
         <td><p><?php echo wp_trim_words( get_the_content(), 14 ); ?></p></td>
        </tr>
       </table>
    
  15. Дмитрий
    19 марта 2015 г. в 22:06

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

    1. Дмитрий
      21 марта 2015 г. в 03:12 / ответ на коммент Дмитрий

      Решил проблему исключением из запроса индексов для таблицы wp_posts
      заменил строку:
      FROM $wpdb->posts wposts
      на
      FROM $wpdb->posts wposts IGNORE INDEX (PRIMARY,type_status_id_date)
      костыль конечно, но помог, снизил время выполнения запроса с 5 секунд до 0.5
      актуально для сайтов с большим количеством постов, у моего в проблемной рубрике уже более 70000 постов, отсюда такая нагрузка.

  16. Андрей
    1 января 2016 г. в 15:20

    Подскажите, как выводить по такому же принципу посты из указанной таксономии, а в случаи если пост не состоит в таксономии, тогда выводились предыдущие посты из категории.

    1. Андрей
      1 января 2016 г. в 16:18 / ответ на коммент Андрей

      Хотя, подскажите, как вывести посты из указанной таксономии, а остальное я попробую сделать сам,

      <?php
        $the_cat = get_the_category();
        $the_cat_id = $the_cat[0]->cat_ID;
        show_previous_posts_from_category($post->ID, $the_cat_id, 5);
        wp_reset_query();
      ?>
  17. 10 февраля 2016 г. в 17:57

    Реализовывал тоже похожую штуку. Вроде работает на ура, пока не пробовал менять ибо и так все устраивает.

  18. Евгений
    23 ноября 2016 г. в 11:46

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

  19. Alexandr
    8 октября 2017 г. в 11:02

    chrome не дает использовать код “ERR_BLOCKED_BY_XSS_AUDITOR”

  20. 11 октября 2019 г. в 19:12

    Здравствуйте, Дмитрий.
    Искренняя благодарность Вам за сайт и учение, в которое Вы нас посвящаете.
    Позвольте задать Вам вопрос, касающийся актуальности внутренней кольцевой перелинковки, о которой идёт речь в настоящей публикации.
    Примерно 3 недели назад на своём авторском ресурсе я интегрировал функцию. Вывожу внутри раздела по 5 предыдущих записей.
    Многое ли изменилось с 2009 года?
    1. В настоящее время, насколько эффективна данная перелинковка?
    2. Не попадёт ли ресурс за это под санкции?
    3. Дмитрий, подскажите, “на пороге” 2020 года, можно ли таким способом поднять посещаемость по низкочастотным запросам в достаточно крупных разделах? Если да, то примерно через какой промежуток времени стоит ожидать положительных результатов?

    Заранее благодарен Вам за ответы.
    С уважением, Эдвин.

    1. Не могу ничего сказать по вопросам. Экспериментов не проводил.

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

Жирный текст

Ссылка

Цитата

Внутристрочный код

CSS-код

HTML-код

JavaScript-код

PHP-код