Внутренняя перелинковка сайта

Внутренняя перелинковка страниц сайта.

Внутренняя перелинковка сайтаВнутренняя перелинковка сайта необходима для эффективной индексации сайта в поисковых системах, а особенно она важна для PR по Google, что бы увеличить PR важных страниц сайта и не потерять вес главной страницы.

Продолжаем работать над нашем блогом и доводить его до совершенства 🙂

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

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

Чтобы осуществить такую перелинковку сайта Вам необходимо вставить ниже приведенный код в файл single.php, там где вы хотите видеть «Предыдущие записи»:

<?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();
?>

В строке №50 можно изменить количество выводимого материала. По умолчанию стоит цифра 5. Я думаю это оптимальный вариант.

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

Ссылки будут постоянными и не будут меняться с появлением новых постов, что немаловажно для поисковиков.

Удачи Вам и процветания.

Автор - Александр

Меня зовут Александр.
Я Вебмастер и SEO — специалист по созданию и продвижению сайтов на WordPress.
В профессиональном интернет-маркетинге c 2007 года. Основные направления: создание и продвижение web-проектов в российском сегменте интернет. Специализация: создание сайтов и их комплексное продвижение, внутренняя оптимизация, внешняя оптимизация, трафиковое продвижение, контентное продвижение...

Связаться со мной >>
Посмотреть все публикации

Ваше имя (обязательно)

Ваш e-mail (обязательно)

Сообщение (обязательно)

"Поставьте галочку, если вы не робот"

и решите пример ответ буквами

комментариев 12

  • Это уже шлифовка бриллианта. Но сначала его найти надо.

  • Светлана

    Очень понравился блог и эта статья в частности. я сегодня у Вас впервые в гостях. Спасибо большое за статью, за код, надеюсь что он мне поможет в продвижении, а то у меня первый блог на вордпресс и что-то «хромает на обе ноги». Взяла ваш блог на заметку, щас прочирикаю по всем социалкам, чтобы Вас не потерять. Буду учиться у профи. 🙂 Спасибо!!!

  • Только что, на одном сайте(не буду писать чтоб не рекламировать) видел плагин, который админ продает за 22$, а делает он тоже самое, но гораздо хуже и не красиво! А здесь все бесплатно!
    Автору спасибо!

  • Спасибо Александр за статью. Только я не понял как это сделать. Тяжело мне эта наука дается.

  • Как мне кажется, лучше ручной перелинковки ничего нет, но и автоматическая не помешает, а без плагина вообще красота, не будет нагружать и без того громоздкий движок. Её нужно обязательно сделать и обязательно ссылаться на релевантные странички.

  • Алексей

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

  • Спасибо огромное!!! Сделал у себя на сайте- все получилось без проблем. Скажите а как вставить оглавление перед этими 5 статьями типа «Еще 5 статей на эту тему»?

    • Александр

      Михаил, надпись надо вставлять в файл single.php, который отвечает за отдельные посты.

  • Так это понятно, я спосил вот о чем. Предлагаемый код в этой статье я вставил, похожие статьи у меня показываются, все нормально, но надо как то заголовок к ним сделать…

    Как это оформить- может както этот код дописать? Или перед этим кодом еще однин вставить- уже с заголовком? Буду признателен если раскажите как это сделать, я тут затрудняюсь…

    • Александр

      Вы правы, надо перед кодом добавить надпись, в коде ничего менять нельзя! Надпись вы можете оформить с помощью css правил.

Добавить комментарий

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