SEO оптимизация блога WordPress без плагинов

Доброго времени суток. Я снова продолжаю избавлять свой блог от плагинов. :) На этот раз под "горячую руку" попал плагин All in one SEO. Весь функционал плагина я не использовал, а сам плагин, по статистике, создает хорошую нагрузку на сервер. Поэтому это стало причиной разборки плагина и замены его функционала обычным кодом.

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

Замена заголовков

Хотя по стандарту WordPress 2.9 имеют нормальные заголовки, не все правильно, в плане SEO, прописывают текст в теге title. Я решил сделать заголовок следующим. На главной странице заголовок будет иметь вид "Название блога » Описание блога", которые берутся из базы данных, то есть из стандартных настроек. На странице поста заголовок будет иметь вид "Название поста « Название блога". В принципе, почти как и предлагает нам плагин. :)

Итак, нам необходимо будет отредактировать файл header.php из вашей темы. Находим ваш тег title и заменяем его на один из следующих. Для WordPress версий 2.5 и выше код будет следующим:

<title><?php wp_title('&laquo;', true, 'right'); ?><?php bloginfo('name'); ?><? if(is_home()){ ?> &raquo; <?php bloginfo(description); } ?></title>

Для более старых версий WordPress тег будет выглядеть так.

<title><?php wp_title(' '); ?> <?php if(wp_title(' ', false)) { echo '&laquo;'; } ?> <?php bloginfo('name'); ?> <? if(is_home()){ ?>&raquo; <?php bloginfo(description); } ?></title>

Добавление мета-тегов

Для реализации этой функции будем использовать произвольные поля description и keywords соответственно. Также вся эта функция будет выполняться при условии, что вы просматриваете главную страницу, отдельный пост или отдельную страницу, поэтому в левых случаях работа кода выполняться не будет. 😉

Обратите внимание, что в переменной $meta_desc и $meta_key необходимо вписать описание и ключевые слова для главной страницы. Ну и вот собственно сам код, который необходимо добавить в блок head во всё тот же файл header.php:

<?php if ( ( (is_home()) && (!is_paged()) ) || (is_single()) || (is_page()) ) {
$meta_desc = is_home() ? "здесь описание" : get_post_meta($post->ID, 'description', true);
if ($meta_desc) { ?>
  <meta name="description" content="<?php echo $meta_desc; ?>" />
<?php }
$meta_key = is_home() ? "здесь ключевые слова" : get_post_meta($post->ID, 'keywords', true);
if ($meta_key) { ?>
  <meta name="keywords" content="<?php echo $meta_key; ?>" />
<?php } } ?>

Как я уже выше сказал, вместо здесь описание и здесь ключевые слова вставляем описание и ключевые слова соответственно для главной страницы блога. Для постов добавляем произвольные поля description и keywords и просто заполняем их соответственно. И всё будет работать.

Закрытие от индексации

Хотя закрыть от индексирования некоторые директории/разделы сайта можно с помощью файла robots.txt, я всё же решил выделить эту функцию из всего функционала плагина. Следующий код закрывает от индексации все страницы, не относящиеся к главной, посту или отдельной странице. Также добавляется код в блок head в файле header.php:

<?php if ( ( (!is_home()) || (is_paged()) ) && (!is_single()) && (!is_page()) ) { ?>
 <meta name="robots" content="noindex,follow" />
<?php } ?>

Простой переход от плагина к произвольным полям

Чтобы не париться и не переписывать вручную все описания и ключевые поля постов, вы можете воспользоваться следующим кодом:

UPDATE `wp_postmeta` SET `meta_key`='description' WHERE `meta_key`='_aioseop_description';
UPDATE `wp_postmeta` SET `meta_key`='keywords' WHERE `meta_key`='_aioseop_keywords';

Это SQL-запрос, который сделает всю нудную работу за вас. :) Например, через PhpMyAdmin отправьте этот запрос и дело сделано. Или можете использовать любую другую программу для работы с базой данных.

Вот и на этом всё. Удачного дня Вам! Если ещё остались функции, которые вам нужны, пишите в комментариях, сделаю всё возможное. 😉

Да, и так как я любитель музыки, оставляю вам хороший и позитивный трек группы Story of the Year под названием Remember a Time с их последнего альбома 2010 года.

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

Блог о Twitter - всё, что вы хотели узнать об этом социальной сети, здесь!

Вам также будет интересно почитать и следующие записи

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

  • Ovsyannikov:

    Сергей спасибо за такую замену. Я только не понял, description и keywords в посте будут сами добавлять или будут оставаться пустыми?

  • Хэннер:

    Статья была полезной.
    Только вопрос: последний код с SQL запросами — это необходимо сделать, чтобы прописать МЕТА в старых постах после того, как избавишься от плагина All in one SEO?

  • Twin:

    Хэннер, да. Грубо говоря, он автоматически переносит все описания и ключевые слова в соответствующие произвольные поля.

  • смски:

    Спасибо за темку, все очень подробно расписал (разжевал :)), сам пользуюсь тоже All in one SEO, сайт из-за него на некоторых дешевых хостингах изрядно поттормаживает, теперь буду пробовать твой метод!

  • SEO_O:

    Спасибо вам, за хорошую и полезную статью.
    В вашей теме на маулнете оставил пост, жду вашего ответа.
    Еще раз спасибо 😉

  • Twin:

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

  • TiamatInc:

    Очень интересное решение. А не пробовали замерить насколько падает нагрузка на сервер после такой замены?

  • Twin:

    TiamatInc, точно не могу сказать. Примерно, с плагином была нагрузка ~0.6%, сейчас выше ~0.4% не наблюдал ещё. Учитывая, что на блоге стоит WP Super Cache, плагин не каждый раз срабатывал, а только в тот момент, когда создавался кэш страницы.

  • TiamatInc:

    Twin, спасибо за ответ. Я не сказал бы что у Вас сильно посещаемый блог, неужели даже при такой посещаемости требуются плагины кеширования? Или Вы его поставили заранее. 😉

  • Twin:

    TiamatInc, у хостеров слишком строгое ограничение по нагрузке на сервер, всего 0,12%. Я, конечно, превышаю его каждый день :) Ну вот, чтобы снизить нагрузку поставил. Сейчас собираюсь переезжать на другой хостинг (там 5% нагрузки), но плагин оставлю, на будущее, думаю, пригодится. :)

  • TiamatInc:

    А у кого хоститесь, если не секрет?

  • Twin:

    TiamatInc, не секрет, host-food.ru

  • TiamatInc:

    Довольно низкие цены, но, как говорится, везде есть свои минусы. Хотя наверное для MFS-сайтов в самый раз будет.

  • Twin:

    TiamatInc, я делал небольшой обзор этого хостинга недавно на этом блоге и все свои мысли в нём описал. Минусы, конечно, есть при такой цене.

  • Вега:

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

  • Twin:

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

  • СКор:

    Я новичок, и хотел узнать о том, как без головняка осуществить внутреннюю оптимизацию блога. Теперь знаю! Спасибо большое! Успехов!

    П. С. Пошел читать остальные посты

  • Nordvind:

    Хмм, я конечно не специалист в SEO, но вроде как на мета-теги keywords и description поисковики не обращают внимания, так как туда часто всякий шлак пихают…

  • Twin:

    Nordvind, по словам самих поисковых систем, оно так и есть. Но значение из description иногда (не во всех случаях) берутся поисковиками для составления сниппета (описания страницы в результатах поиска). А по счет keywords ещё ни у кого нет полной уверенности (да и проверить это никак нельзя), что этот мета-тег полностью не учитывается. Возможно последний влияет как-то на результаты поиска, но очень и очень слабо.

  • Анжелика:

    Здравствуйте! Все сделала как написано в статье — деактивировала плагин и вставила коды в header.php. Все заработало, однако при добавлениии title и метатегов с помощью произвольных полей, исчезает текст поста и заголовок. Подскажите, пожалуйста, что я не так делаю?
    И еще, хочу спросить. Можно ли вместо SQL запросов, в файле SQL заменить слова description и keywords на _aioseop_description и _aioseop_keywords с помощью notepad ++? Моя версия вордпресс 3.1.1

  • Nurlan:

    Я до этого писал коммент на эту статью, но вам, видимо не понравилось содержание. Впрочем, это ваше право. Я хотел спросить. А что если у меня стоял плагин Платинум СЕО. Как быть с запросом SQL?

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