Блог свободен от NOFOLLOW!

5 советов по созданию SEO-оптимизированной темы для WordPress

Дата: 24-12-2009 | Автор: Yaroslav.CH | Рубрика: SEO и оптимизация
Метки:

36

Количество SEO оптимизированных тем для WordPress на сегодняшний день достаточно велико и с помощью Google не составит труда найти массу сайтов, предлагающих готовые темы подобного класса. И, если ваша текущая тема не отвечает стандартам SEO оптимизации, но есть желание получить более высокие позиции в поисковых системах — скорее всего вы захотите ее сменить. Но, если вам нравится существующий дизайн, на самом деле нет серьезной необходимости менять имеющуюся тему на какую-либо другую, только ради значка «SEO Optimized».

Откровенно говоря, оптимизировать тему для WordPress достаточно легко и хотя это потребует некоторых усилий, количество серьезных изменений — несущественно. Есть несколько областей сайта, которые нужно перестроить для того, чтобы Google четко понимал — какие элементы вашего контента наиболее важны. Таким образом, содержание сайта будет надлежащим образом ранжировано в соответствии с релевантными вашему сайту ключевыми словами.

Помимо момента оптимизации блога, написать эту статью меня сподвигла необходимость сократить количество используемых плагинов — в частности, используемых для организации уникальных title и description (см. пп. 4 и 5). Я, как и, думаю, многие пользователи WordPress, донедавна лелеял светлую мечту о том, что разработчики услышат стоны «легиона» блоггеров и с выходом WordPress 2.9 все же внесут соответствующие правки в базис системы, которые позволят снизить недакватную нагрузку. Однако, к сожалению, никаких существенных изменений, кроме дополнительных «плюшек» сомнительной полезности, ничего добавлено/изменено не было.

Итак, вот эти шаги.

1. Убедитесь, что заголовок вашего блога обернут тегами <h1>

Для примера:

1
<h1>Proofsite: ваш cайт должен продавать!</h1>

Для того, чтобы условие заработало, в файл header.php нужно добавить следующую строку:

<h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1>

2. Убедитесь, что заголовки ваших записей и страниц обернуты тегами <h1> или <h2>

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

  • на страницах, где записи идут в перечне (index.php, archive.php), обернуть заголовки тегом <h2>.
  • на странице обособленной записи или страницы (single.php, page.php) — обернуть заголовок тегом <h1>
  • подзаголовки на страницах обособленной статей (single.php, page.php) — обернуть заголовком <h2>

3. Убедитесь в том, что тег title вашей ссылки на статью содержит название материала

Если это не так, для реализации этого пункта, а заодно и предыдущего — замените в файлах index.php, single.php существующий код на:

1
<H2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php if ( function_exists('the_title_attribute')) the_title_attribute(); else the_title(); ?>"><?php the_title(); ?></a></H2>

4. Содержание мета-тега title для ваших страниц и записей должно быть уникальными

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

Для этого замените стандартную строку:

1
<title><?php wp_title('&laquo;', true, 'right'); ?> <?php bloginfo('name'); ?></title>

на вот эту:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<title><?php
if (is_front_page()) {
echo bloginfo('name');
} elseif (is_page()) {
echo wp_title(''); echo " | "; bloginfo('name'); // если необходимо выводить стандартный заголовок блога
} elseif (is_single()) {
echo wp_title(''); echo " | "; echo 'Your Site Name'; // если необходимо выводить любую другую фразу 
} elseif (is_404()) {
echo '404 Not Found'; echo " | "; echo 'Your Site Name';
} elseif (is_category()) {
echo 'Category:'; wp_title(''); echo " | "; echo 'Your Site Name';
} elseif (is_search()) {
echo 'Search Results'; echo " | "; echo 'Your Site Name';
} elseif ( is_day() || is_month() || is_year() ) {
echo 'Archives:'; wp_title(''); echo " | "; echo 'Your Site Name';
} else {
echo wp_title(''); echo " | "; echo 'Your Site Name';
}
?></title>

Как работает код:
В том случае, если требуется вывести стандартное название блога, используйте «bloginfo ('name');», если же необходимо указать любой другой текст — «echo 'Your Site Name';»

5. Содержание мета-тега description для ваших страниц и записей должно быть уникальными

Добиться этого можно или с помощью специальных плагинов для WordPress, например All in One SEO Pack или Platinum SEO Pack.

Но мы ведь делаем SEO-оптимизированную тему без использования сторонних приложений, верно? А потому используем мощности WordPress и PHP.

Для того, чтобы создать уникальный мета-тег description для страниц и записей, необходимо добавить следующий PHP код в файл header.php после тега title:

1
2
3
4
5
6
<meta name="description" content="<?php if (have_posts() && is_single() OR is_page()):while(have_posts()):the_post();
$out_excerpt = str_replace(array("\r\n", "\r", "\n"), "", get_the_excerpt());
echo apply_filters('the_excerpt_rss', $out_excerpt);
endwhile;
else: ?><?php bloginfo('description') ?>
<?php endif; ?>" />

Как работает код:

  • для главной страницы блога (index.php) и страницы перечня записей (archive.php) будет выводиться описание блога из раздела «Настройки -> Общее»;
  • для страницы записей (single.php) будет выводится «Цитата» статьи — первый абзац.

Однако иногда возникают ситуации, в которых вас может не устроить автоматическая подстановка содержимого description на основе первого абзаца. В этом случае, достаточно просто заполнить поле «Цитата» вручную.

Update:

Совет №6 от Яна Такушевича: «на странице поста (single.php) можно выводить список тегов. В качестве тэгов добавляем ключевые слова и тем самым повышаем их плотность на странице.
Если отображать текстовое облако тэгов (именно текстовое, а не флэш), то можно собрать дополнительные переходы из ПС по соответствующим НЧ (низкочастотным — прим. мое) ключевым словам».

От себя добавлю, что за вывод облака тегов в WordPress отвечает функция

1
<?php wp_tag_cloud( $args ); ?>

Подробнее о ней можно почитать в WordPress Codex.

Если вы знаете еще какие-либо советы — напишите их в комментариях и они обязательно будут добавлены в эту запись с указанием автора и ссылки на сайт.

В статье использованы материалы блогов SEO Blog And Technology и Agent SEO

Комментарии 36 комментариев

перейти к форме для комментирования

Лично я для каждого поста пишу свой title с помощью те же плагинов как all in one seo pack или platinum seo.

Если касается темы, то помню там постоянно приходится удалять их ссылок title="permalink to ..."

ОтветитьОтветить

Tod, в том случае, если есть необходимость (или желание) для каждого поста вручную прописывать title, то этот вариант легко можно реализовать с помощью произвольных полей. Я для себя серьезной необходимости в этом не вижу, поскольку так или иначе, но заголовок поста в любом случае должен присутствовать в заголовке страницы — это логично.

Как я посмотрел, Вы со своей стороны дописываете некоторые отдельные фразы, поделитесь — с какой целью? Я имею ввиду — почему Вы их добавляете только в title, но не в заголовок самой записи?

На мой взгляд, для создания title и description вручную нет смысла использовать плагины, учитывая прожорливость (в плане памяти) последних версий WordPress.

Насколько помню, в 3-х файлах нужно убрать (для тем стандартной комплектации) в одном-двух местах — в index.php, single.php и archives.php. Собственно, эта строка ничем не мешает — как минимум, я никогда разницы (есть — нет) не ощущал.

ОтветитьОтветить

Я вообще не использую никакие SEO — плагины и делаю тему с нуля.

ОтветитьОтветить

@Regent: я, собственно, после применения для блога всех вышеописанных пунктов и скриптов, тоже отключил все плагины, отвечающие за SEO — в их использовании просто отпал смысл.

В сущности, для того, я и написал этот пост — как шпаргалку для самого себя, которой стоит поделиться с другими :)

ОтветитьОтветить

@© Yaroslav.Ch: да, хорошие мысли надо записывать :)

ОтветитьОтветить

@Regent: да вот для этого же блог (или дневник) и завел, ибо садиться и писать исключительно для себя самого если уж не статьи, то хотя бы наброски ключевых моментов — времени не хватает, да и никак не удавалось организовать себя на такой «ратный подвиг» :)

А так — вроде бы уже и не для себя пишу, а польза (надеюсь, конечно) всесторонняя :)

ОтветитьОтветить

Отличная статья. Могу дополнить её немного.

На странице поста (single.php) можно выводить список тегов. В качестве тэгов добавляем ключевые слова и тем самым повышаем их плотность на странице. Вот в вашем случае вместо «разработчику» можно было добавить тэг «оптимизация wordpress» или что-нибудь в этом духе.

Если отображать текстовое облако тэгов (именно текстовое, а не флэш), то можно собрать дополнительные переходы из ПС по соответствующим НЧ ключевым словам.

P.S. Заметил досадный глюк. В поле ввода текста комментария не работают стрелки на клавиатуре.

ОтветитьОтветить

@Ян: спасибо за совет — добавил его со ссылкой на Ваш блог в текст статьи.

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

Но иллюстративный пример — совершенно верный.

P.S. Спасибо, к сожалению, мне пока что не удалось побороть это неудобство — все еще ищу в чем причина.

ОтветитьОтветить

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

P.S. По поводу глюка можете попробовать отключить плагин предпросмотра. Если причина в нём — задайте вопрос у его автора вот здесь: dimox.name/jquery-comment...ordpress-plugin/

Он всегда старается помочь.

ОтветитьОтветить

@Ян: спасибо, для уведомления о комментариях используется Сomment Notifier. Именно он понравился возможностью полной настройки текста отправляемого сообщения.

P.S. Пробовал, но как показала практика — дело не в нем. Я уже все возможные плагины отключал — пока без результата. Возможно, дело в JS скриптах темы, как раз смотрю их.

ОтветитьОтветить

Очень полезные советы. Из всех плагинов рекомендую Platinum SEO. По сравнению с All in one SEO там больше функционала.

ОтветитьОтветить

Я без плагинов обходился, теперь попробую кое что.

ОтветитьОтветить

@Avtotreid: к сожалению, базовая поставка WordPress не обладает достаточным функционалом, а потому приходится использовать плагины.

ОтветитьОтветить

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

ОтветитьОтветить

Еще хорошо составлять не только уникальный description, но еще и привлекательный. Описание часто появляется в гугле в результатах выдачи :).

ОтветитьОтветить

@ © Yaroslav.Ch:

Очень даже в тему, я сам юзаю «all in one seo pack» в принципе меня всё устраивает, но если брать ваши заметки себе в арсенал (а так я и сделаю )) ), то это на порядок упрощает процесс публикации. Я не берусь спорить так как в СЕО я не гуру, но предложенный вами вариант вполне адекватен, в дальнейшем при разработки темы, я буду их использовать.

Так что спасибо )

ОтветитьОтветить

Сейчас полезу исправлять! А разве плагина all in one seo pack недостаточно?

ОтветитьОтветить

@ Вячеслав: спасибо за комментарий.

All In One Seo Pack решает только часть задач. Например, за пп. 1 и 2 он вообще не отвечает.

ОтветитьОтветить

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

ОтветитьОтветить

У меня замечание (или дополнение) по поводу 1 пункта — заголовок блога оборачиваем в h1 только на главной, на страницах постов в h2, или вообще в span.

ОтветитьОтветить

Вроде ни чего сложного, стоит будет опробовать на будущем блоге. Но уже на вордпресс, а не на Блогспот.

ОтветитьОтветить

Хорошая статья! все таки лучше всегда вручную все делать а не пользоваться плагинами непонятными!

ОтветитьОтветить

Вот меня всегда интересовал следующий вопрос: в плагине All in one Seo Pack есть значения «использовать noindex для рубрик и тегов». Галочку необходимо ставить или нет? Просто если не поставишь галочки, получается что в индекс будут загружены лишние УРЛы. И получается как бы дублированный контент получается. Или я не прав? Просто всегда думаю ставить галочки или нет. Я всегда ставлю. Посоветуйте что-нибудь?

ОтветитьОтветить

@Олег Астанин: в принципе, включение этих флагов считается правильным — они действительно должны помогать избежать дублированного контента. Кроме того, все зависит от того — какого размера у Вас материалы. Точнее говоря, если Вы не используете разделение с помощью more, то тогда включать надо обязательно. Если используете — уже по желанию.

ОтветитьОтветить

Очень познавательная статья.Спасибо Вам.Сколько всего надо знать!!!

ОтветитьОтветить

Это основная беда WordPress — почему-то очень немногие создатели шаблонов задумываются о сео оптимизации

ОтветитьОтветить

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

ОтветитьОтветить

Спасибо за дельные советы! При создании собственной темы обязательно учту это!

ОтветитьОтветить

Я собственно как и «Regent» считаю, что любую cms'ину нужно писать самому или же после установки стандартного шаблона переделать в ней не только указанные 5 пунктов, но и полностью переписать хтмл структуру, убивать ненужный цсс и убрать лишние строки в самом движке. Особенно ссылки на авторов и прочее... Когда начинаешь копаться, то сталкиваешься с большим количеством ненужного кода )) Я у себя пошел по второму пути. Но на момент постижения этой мысли я уже умел блог, так что с нуля писать нету смысла)

ОтветитьОтветить

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

ОтветитьОтветить

@© Yaroslav.Ch: А что плагины и впрям так нагружают сайт?

ОтветитьОтветить

@wordpress: к сожалению — да. Посмотрите на объем используемой памяти — до установки любого плагина и после.

ОтветитьОтветить

У меня вопрос по тегу h1... Вы в статье написали обернуть название сайта в этот тег, это ж получается на странице статьи single.php будет два тега h1:

1. В шапке сайта (причем абсолютно без ключа данной статьи)

2. В названии самой статьи

Насколько я знаю 2 тега h1 не есть хорошо, или я что то не так понял?

Буду признателен если объясните.

ОтветитьОтветить

@Андрей: спасибо за хороший вопрос. Из своей практики могу сказать, что Google или Яндекс умеют корректно отделять название блога от заголовка статьи. Сам момент с «на странице не должны присутствовать два тега h1» абсолютно верный, но речь обычно идет о рамках одной статьи.

Посмотрите на блог Михаила Шакина — признанного SEO-эксперта. Заголовок «Shaki.ru» (название блога) у него на любой странице обернут h1, а слоган «Продвижение сайтов, веб-дизайн и креатив» — обернут h2. При этом все заголовки статей на single.php обернуты тем же h1.

Кстати, к моему стыду, я только сейчас обнаружил, что у меня самого это не сделано. «Сапожник без сапог», честное слово :) Видимо, когда недавно правил тему, изменил и не вернул теги — уже сделал себе отметку исправить.

Спасибо!

ОтветитьОтветить

All in One SEO Pack или Platinum SEO Pack как говорится дело привычки. И тот и другой модуль хорошо справляется с задачей, но мне больше нравится All in One! Чего и всем советую.

ОтветитьОтветить

Раньше All in One SEO Pack был нормальным. А теперь его раздули непонятно зачем. Премиум какой то. Но без него «и не туды и не сюды».

ОтветитьОтветить

А Вы оставили комментарий? Ваше мнение очень важно!

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