Реклама на сайте

SEO оптимизация WordPress

628

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

Так что же такое, этот WordPress?

Думаю, не ошибусь, если скажу, что WordPress – самый популярный блоговый движок. Очень много блогов сделано на нем, в том числе и мой. Создать сайт на WordPress очень просто, этот движок знаменит своей быстрой установкой за несколько минут, которую может произвести любой, знающий хотя бы что такое хостинг, FTP и как создать базу данных. После установки движка вы уже фактически имеете готовый к работе сайт, и можете начинать публиковать свои материалы.

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

Но эта статья будет не о том, как создать  свой блог, а о том, как привлечь посетителей на него из поисковых систем – о SEO оптимизации WordPress. Сделать сайт – это полдела, нужно ещё привлечь к нему внимание людей, иначе весь ваш супер-пупер-интересный контент так и будет лежать на просторах всемирной паутины никому, кроме вас, не нужным. А вы ведь не к этому стремились, правда?

Рассказывать про оптимизацию вордпресса буду на примере этого сайта – mos-holidays.ru. SEO оптимизация для него началась с удаления нечетких дубликатов контента. Это известная болезнь данного движка – страницы меток, архивов, публикаций определенного автора состоят из текстов, взятых со страниц статей – анонсов, в некоторых темах там даже полные статьи выводятся. Кроме того, практически у каждого блога на WordPress на главной странице есть пагинация (постраничная разбивка), где также основной контент – это абзацы из опубликованных статей (встречаются темы, где там также полные статьи), некоторые устанавливают на сайт ещё и календарь, на страницах которого также выводятся анонсы или полные статьи, тем самым, увеличивается кол-во страниц, контент которых состоит из нечетких дубликатов. Есть сайты, нормально живущие с эти  и привлекающие хороший трафик. Но на mos-holidays.ru я постарался, если не полностью избавиться от нечетких дубликатов, то хотя бы максимально снизить их количество.

Убрать дубликаты можно несколькими способами. Можно вместо анонса, который WP берет автоматически из статьи, выводить текст из поля «Цитата». Находим в шаблоне файл, который отвечает за вывод категорий, архивов и пр. (в моем случае это archive.php), и в нем  функцию, которая отвечает за вывод анонса/полной статьи меняем на:

<?php the_excerpt(); ?>

У меня там была такая строчка:

<?php the_content_limit(700, "ДАЛЕЕ..."); ?>

у кого-то может быть просто:

<?php the_content(); ?>.

Дальше нужно будет для каждой статьи писать уникальную аннотацию, вставлять её в поле «Цитата» при создании статьи, и она будет выводиться в качестве анонса.

Цитата

Это первый вариант. В моем случае он не подошел, т.к. на тот момент, когда я пришел к этому, на сайте было выложено уже несколько десятков статей, и меня как-то совсем не прельщало писать к каждой из них анонс. Поэтому я просто удалил вывод анонса со всех страниц, кроме главной. Таким образом, на страницах категорий и архивов у меня выводятся только картинка и ссылка на статью. Через CSS настроил вывод, смотрится более-менее нормально. Меня устроило.

Скрин категории сайта mos-holidays.ru

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

Чтобы этого избежать я убрал с главной страницы пагинацию и убрал из шаблона (файл single.php) ссылки на автора статьи. Эти страницы не нужны ни людям, ни поисковым машинам. Люди могут всё спокойно найти в рубриках, вместо того, чтобы просматривать статьи постранично на главной, а страницы с публикациями автора вообще не понятно для чего нужны. Особенно если у блога один автор (а в большинстве случаев так оно и есть), то там просто идет дублирование всех выложенных статей. И зачем, спрашивается, это надо? В индексе поисковых систем эти страницы также будут без толку находиться, вряд ли они принесут какой-то трафик. Поэтому лучше их убрать и не забыть закрыть от индексации в robots.txt, добавив в него строки:

Disallow: /author/

Disallow: /page/

Некоторые для того, чтобы избежать нечетких дубликатов советуют также закрывать от индексации категории и тэги, предрекая блогу чуть ли не бан в  поисковых системах, есть они будут проиндексированы. Разберемся сначала с тэгами. Я вообще считаю, что они блогу особо ни к чему. Вряд ли люди, приходящие на сайт, часто ими пользуются. Кроме того, тэги, как правило, сквозные, т.е. на них ссылки ведут с каждой страницы сайта, тем самым забирая на себя большой объём статического веса. На форумах встречал реплики типа: «У меня тэги имеют PR = 1, так зачем их закрывать от индексации?». Непонятно чему человек радуется, у него страницы тэгов, которые он, скорее всего, не продвигает ни по каким запросам, имеют высокий статический вес. А ведь максимальный стат. вес должен находиться на продвигаемых страницах! Так зачем, спрашивается, нужны тэги, а тем более сквозные?  Я убрал ссылки на них со всех страниц, оставил только с архивов. Хотел совсем удалить, но для них были сделаны описания, об этом чуть ниже, поэтому решил всё-таки оставить. Если кому интересно, раньше почти все тэги у меня имели PR=2. Сейчас этого уже, конечно, нет.

Как вывести тэги только в одном разделе? Да очень просто, ставится проверка на этот раздел, в моем случае – это архив:

<?php
if (is_archive()) {

?>

Здесь ваш код со всем оформлением, который выводит тэги. Там должна быть фукция wp_tag_cloud

<?php

}

?>

Теперь по поводу категорий. Зачем их закрывать от индексации, если это страницы второго уровня вложенности, которые можно продвигать по средне- или даже высокочастотные запросы? Но для этого нам нужно как-то выложить на них текст. В этом нам поможет функция category_description, которую мы кидаем  в файл, отвечающий за страницы категории. Весь код вывода у меня получился такой:


<?php if ( $paged < 2 ) {
echo category_description( $category );

}?>

Условие «if ( $paged < 2 )» говорит о том, что текст будет выводиться только на первой странице категории, что позволяет избежать его дублирования на остальных страницах этой категории.

Далее ставим 2 плагина: Category Description Editor и HTML in Category Descriptions. Заходим в редактирование категории и видим, что в поле редактирования описания раздела у нас появился WYSIWYG редактор. Добавляем в описание текст, который будет выводиться на странице данной категории. Всё, страничка категории почти оптимизирована.

Добавление WYSIWYG редактора для редактирования категорий WordPress

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

Так, осуществляем SEO оптимизацию нашего WordPress дальше. Чуть выше я сказал, что страничка категории почти оптимизирована. Осталось сделать возможным изменение  у неё тайтла (title) и мета-тегов. В этом нам поможет плагин Headspace2. Этот плагин в отличие от популярного All in One SeoPack дает возможность добавлять тайтлы и метатеги не только статьям, но также категориям и тэгам. У него есть ещё какой-то функционал, но я его ставил, в основном, только для этих функций. Возможно, там что-то ещё интересное есть. Позже наткнулся на плагин Platinum SEO Pack, который обладает похожими с Headspace2 возможностями. Можно использовать его.

Таким образом, мы имеем возможность полностью оптимизировать страницы категорий: выложить на них текст, прописать title и мета-теги, то же самое сделать со страницами статей и, при желании, даже меток.

Немного про формирование title и ЧПУ. Выше я уже писал про title, здесь сделаю просто небольшую ремарку. На некоторых блогах title формируется по типу «Название статьи | Название сайта». Это делает тот же All in One SeoPack , да и Headspace2 такое тоже может. Но это не правильно с точки зрения оптимизации. В тайтле важно каждое слово, ничего лишнего там не должно быть, и поэтому вставлять туда ещё и название сайта, которое, скорее всего, никак не привязано к содержанию текущей статьи нерационально. Убираем такой вывод, оставляем там только текст, который мы прописываем в Headspace2 в поле "Заголовок страницы".

Теперь про ЧПУ. ЧПУ должны быть! В WP можно установить такие форматы ЧПУ, как «день и название», «месяц и название». Многие используют их, тем самым в урлы добавляется дата публикации, которая там ни к чему. Если вы захотите обновить пост, поднять его повыше, новой датой, то придется делать редирект со старого урла на новый. Если говорить о SEO, нет никаких причин, по которым дата могла бы находиться в урле, лишнее место только занимает. Поэтому ставим произвольную структуру формирования урлов. Вставляем в это поле либо «/%postname%/», либо «/%category%/%postname%/». Соответственно получаем урлы типа http://site.ru/название-статьи/ или http://site.ru/категория/название-статьи/. Осталось только настроить транслитерацию. Для этого устанавливаем плагин RusToLat. Ещё один момент. WordPress по-умолчание к урлу категорий добавляет "/category/". Чтобы избавиться от этого ставим плагин WP No Category Base.

Далее оптимизируем главную страницу нашего сайта. По умолчанию здесь публикуются анонсы всех выложенных на блоге статей. Меня это не устраивало, я хотел оптимизировать главную под запросы «куда сходить в москве» и «интересные места москвы». Соответственно нужно выложить на эту страницу текст. Сделать это очень легко: открываем файл index.php и перед строчкой:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

выводим наш текст с необходимым оформлением.

Наверняка это можно сделать каким-то другим более правильным способом, но мне было проще так.

Также на главной я убрал у анонсов ссылки «читать далее» (подробнее и т.п.) и ссылки с картинок, которые вели на полную версию статей. Т.е. получилось, что вес статьям стал передаваться только по одной ссылке – в названии статьи. А название, как правило, содержит основной продвигаемый запрос для данной страницы. Таким образом, мы получаем правильно настроенную передачу анкорного веса – по нужной ключевой фразе.

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

Как удалить  «читать далее» из анонсов. Это зависит от того, как в вашей теме происходит вывод анонсов. Если с помощью тэга <! --more-- >, то достаточо добавить в файл functions.php функцию:

function remove_more_link() { return ''; }

add_filter('the_content_more_link', 'remove_more_link');

Если, как у меня, с помощью функции "the_content_limit", то нужно в файле functions.php найти эту функцию и закомментировать все строчки кода, отвечающие за вывыд этой ссылки. Что-то типа такого:


echo "&nbsp;<a href='";
the_permalink();

echo "'>".$more_link_text."</a>";

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

Также для перелинковки (и не только) можно использовать плагин  Side Content. Он позволяет выводить любой контент: тексты, картинки, ссылки и т.п. в сайдбаре любой отдельно взятой странице. Что и как выводить – решать вам.

Вот ещё несколько полезных плагинов для SEO оптимизации WordPress: Redirection – для создания редиректов, Yoast Breadcrumbs – добавляем хлебные крошки (я сам какую-то функцию использовал, но плагином, скорее всего, проще их сделать), Dagon Design Sitemap Generator и Google XML Sitemaps – создаем html и xml  карты сайта, Robots Meta – добавляем запрет на индексацию разных страниц, Remove Default Canonical Links – иногда бывает нужно удалить стоящие по-умолчанию канонические урлы. У меня, когда Яндекс ввел поддержку rel="canonical" вылетели из индекса все галереи. Выяснилось, причина была в том, что у них прописывался канонический урл основной страницы галереи, т.е. https://mos-holidays.ru/galereya/. С помощью этого плагина я их удалил и всё нормально вернулось в индекс.

У меня довольно старая версия WordPress – 2.9.2. Поэтому в 3-й версии что-то из написанного здесь может не работать. Кроме того, в зависимости от шаблона, действия по оптимизации будут на каждом сайте отличаться.  Но в любом случае общие принципы останутся такими же.

Отзывы

  • Elena 30/08/2013 в 08:38

    Огромное спасибо за статью!
    Все, что уже давно и безуспешно искала, собрано в одном месте. Супер. В закладки!

    Ответить
  • Алла 17/09/2012 в 17:29

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

    Ответить
  • Николай 11/09/2012 в 14:14

    Потрясающая статья! Огромное спасибо за материал — как раз то, что мне нужно! Сейчас сложная ситуация с сайтом, попал под серьёзные ограничения в яндексе, поэтому приёмы описанные здесь очень пригодятся в востановлении позиций. На мой взгляд, эта статья заслуживает первого места в конкурсе.

    Ответить

Оставить свой отзыв