Внутренняя оптимизация ссылок WordPress


Как оптимизировать внутреннюю структуру ссылок WordPress?

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

WordPress vs SEO

WordPress vs SEO

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

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

И так начну анализ с самых низов. Если посты отображаются на странице в виде анонса, а как правило так и происходит, то сам пост имеет (на самого себя) две внутренние ссылки. Т. е. заголовок статьи, и ссылка читать далее, или читать полностью, тут кому что ближе 😀 а это, как можно догадаться не есть good!

Более того, ссылка читать далее (тег more) вообще ведет даже не на сам пост, а в какие-то дебри вида /урл-страницы.html#more, что некрасиво в первую очередь с эстетической точки зрения, но далеко не это самое страшное. Каждая ссылка читать далее открыта для индексации, т. е. создает абсолютно одинаковые (анкорные) внутренние ссылки на разные страницы. :(

Поэтому с нее то мы и начнем, менять наши настройки по умолчанию. 😉

Как изменить ссылку тега more читать далее в WordPress

Вообще конечно (экспериментировать) изменять скрипты движка WordPress я рекомендую на (localhost) локальном хосте, ну или хотя бы сделать бэкап и сохранить исходники скриптов движка на локальном компьютере. 😀

За вывод ссылки тега more отвечает PHP скрипт post-template.php, который расположен в папке /wp-includes, и поэтому все необходимые изменения необходимо вносить именно в него. Естественно после обновления движка, процедуру нужно будет повторить, собственно и по этому тоже, я и решил всю эту инфу запостить.

И так, открываем скрипт post-template.php в редакторе, под Windows я использую PhpExpertEdition и ищем в нем строку:

if ( ! empty($more_link_text) )
// у меня она оказалась 219
$output .= apply_filters( 'the_content_more_link', ' <a href="' . get_permalink() . "#more-{$post->ID}\"
// находим "#more-{$post->ID}\"
$output .= apply_filters( 'the_content_more_link', ' <a href="' . get_permalink() . "\"
// и оставляем только слеш "\"

Теперь тег more будет выглядеть более корректно и ссылаться на основную страницу статьи. Хотя конечно же все что в урле идет после символа # (решетка) не передается на сервер, а выполняется только в браузере пользователя, следовательно роботами такие ссылки не индексируются!

Ну да ладно, зато теперь радуют глаз более эстетичные ссылочки. 😀 А это значит, что можно переходить к следующему действию по оптимизации WordPress.

Следующим этапом необходимо заключить ссылку: Читать полностью…  в nofollow. Для этого в ту же строку нужно добавить rel=\"nofollow\" :

$output .= apply_filters( 'the_content_more_link', ' <a href="' . get_permalink() . "\" class=\"more-link\" rel=\"nofollow\">$more_link_text</a>"

Однако каждый раз, после очередного обновления будет не удобно лезть в ядро и что-то редактировать, поэтому, как правильно заметил комментатор Татьяна, нужно использовать Api WordPress (т. е. фильтры) которые оказывают влияние на работу сайта через function.php используемой темы.

Вот фильтр, который сделает ссылку вида читать далее (тег more) закрытой от индексации, т. е. добавит атрибут nofollow. При желание ее еще можно заковать в <noindex>читать далее... </noindex> Но на мой взгляд — это уже перебор. Поэтому слегка ограничим индексацию ссылки из тега more атрибутом nofollow.

function nofollow_more($more) {
return '<a href="'. get_permalink(get_the_ID()) . '" rel="nofollow">Читать полностью... </a>';
}
add_filter('the_content_more_link', 'nofollow_more');

Вот так линк more становится более корректным по отношению к внутреннему СЕО.
И теперь осталось только убрать активную ссылку из название статьи при ее открытии.

Убираем ссылку из название статьи при ее открытии

В моей теме ВордПресс за вывод контента отдельной (статьи) страницы отвечает скрипт loop.php поэтому я нашел в нем следующие строки, и немного подкорректировал:

<?php if(is_single()): ?>
<?php if($themify->unlink_title == "yes"): ?>
<h1 class="post-title"><?php the_title(); ?></h1>
<?php else: ?>
<h1 class="post-title"><a href="<?php the_permalink() ?>"<?php the_title(); ?></a></h1>
<?php endif; ?>

Т. е. просто удалил линк <a href="<?php the_permalink(); ?>"   т. к. его присутствие на открытой странице совершенно не является обязательным, и только мешает нормальному поисковому продвижению и раскрутке сайта.

P.S. После очередного обновления движка CMS опять вылезла ошибка вывода фида  RSS потока, уж и не знаю то ли у хостенко прохой эгрегор, то ли у меня карма дырявая. :)

Но не смотря на это, я поздравляю всех женщин с (их профессиональным) праздником 8 марта! 😉 

На этом первый шаг по внутренней оптимизации WordPress, можно считать оконченным. До новых встреч! 😀