Доброго времени суток. Я снова продолжаю избавлять свой блог от плагинов.
На этот раз под "горячую руку" попал плагин All in one SEO. Весь функционал плагина я не использовал, а сам плагин, по статистике, создает хорошую нагрузку на сервер. Поэтому это стало причиной разборки плагина и замены его функционала обычным кодом.
Для себя я выделил несколько полезных функций из всего функционала плагина, которые и использую на данном блоге. В этом и будет заключаться суть поста - отключаем плагин и начинаем корректировку. 😉
Замена заголовков
Хотя по стандарту WordPress 2.9 имеют нормальные заголовки, не все правильно, в плане SEO, прописывают текст в теге title
. Я решил сделать заголовок следующим. На главной странице заголовок будет иметь вид "Название блога » Описание блога", которые берутся из базы данных, то есть из стандартных настроек. На странице поста заголовок будет иметь вид "Название поста « Название блога". В принципе, почти как и предлагает нам плагин.
Итак, нам необходимо будет отредактировать файл header.php
из вашей темы. Находим ваш тег title
и заменяем его на один из следующих. Для WordPress версий 2.5 и выше код будет следующим:
<title><?php wp_title('«', true, 'right'); ?><?php bloginfo('name'); ?><? if(is_home()){ ?> » <?php bloginfo(description); } ?></title>
Для более старых версий WordPress тег будет выглядеть так.
<title><?php wp_title(' '); ?> <?php if(wp_title(' ', false)) { echo '«'; } ?> <?php bloginfo('name'); ?> <? if(is_home()){ ?>» <?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 комментариев
Сергей спасибо за такую замену. Я только не понял, description и keywords в посте будут сами добавлять или будут оставаться пустыми?
Статья была полезной.
Только вопрос: последний код с SQL запросами — это необходимо сделать, чтобы прописать МЕТА в старых постах после того, как избавишься от плагина All in one SEO?
Хэннер, да. Грубо говоря, он автоматически переносит все описания и ключевые слова в соответствующие произвольные поля.
Спасибо за темку, все очень подробно расписал (разжевал :)), сам пользуюсь тоже All in one SEO, сайт из-за него на некоторых дешевых хостингах изрядно поттормаживает, теперь буду пробовать твой метод!
Спасибо вам, за хорошую и полезную статью.
В вашей теме на маулнете оставил пост, жду вашего ответа.
Еще раз спасибо 😉
Ovsyannikov, эти поля заполняются вручную. По умолчанию, они, как и любое другое поле, пустые. Автоматическое заполнение их уже более сложный механизм. Если оно нужно, то лучше оставить плагин.
Очень интересное решение. А не пробовали замерить насколько падает нагрузка на сервер после такой замены?
TiamatInc, точно не могу сказать. Примерно, с плагином была нагрузка ~0.6%, сейчас выше ~0.4% не наблюдал ещё. Учитывая, что на блоге стоит WP Super Cache, плагин не каждый раз срабатывал, а только в тот момент, когда создавался кэш страницы.
Twin, спасибо за ответ. Я не сказал бы что у Вас сильно посещаемый блог, неужели даже при такой посещаемости требуются плагины кеширования? Или Вы его поставили заранее. 😉
TiamatInc, у хостеров слишком строгое ограничение по нагрузке на сервер, всего 0,12%. Я, конечно, превышаю его каждый день
Ну вот, чтобы снизить нагрузку поставил. Сейчас собираюсь переезжать на другой хостинг (там 5% нагрузки), но плагин оставлю, на будущее, думаю, пригодится. 
А у кого хоститесь, если не секрет?
TiamatInc, не секрет, host-food.ru
Довольно низкие цены, но, как говорится, везде есть свои минусы. Хотя наверное для MFS-сайтов в самый раз будет.
TiamatInc, я делал небольшой обзор этого хостинга недавно на этом блоге и все свои мысли в нём описал. Минусы, конечно, есть при такой цене.
а вот и обзор на твой блог http://blogozoom.ru/blog-sajtostroitelya-razobrali-po-polochkam
Хост фуд нормальный хостинг, особенно линейка вип тарифов. Агитировать всех не буду,но сам пользуюсь и в общемто доволен, хотя бывает и лежат.
Я понимаю, что вам хочется сказать своё слово в поддержку хостинга, но пожалуйста, делайте это в соответствующем посте.
Здесь я бы хотел услышать комментарии и мнения по данному способу реализации функций вышеописанных плагинов.
Я новичок, и хотел узнать о том, как без головняка осуществить внутреннюю оптимизацию блога. Теперь знаю! Спасибо большое! Успехов!
П. С. Пошел читать остальные посты
Хмм, я конечно не специалист в SEO, но вроде как на мета-теги keywords и description поисковики не обращают внимания, так как туда часто всякий шлак пихают…
Nordvind, по словам самих поисковых систем, оно так и есть. Но значение из description иногда (не во всех случаях) берутся поисковиками для составления сниппета (описания страницы в результатах поиска). А по счет keywords ещё ни у кого нет полной уверенности (да и проверить это никак нельзя), что этот мета-тег полностью не учитывается. Возможно последний влияет как-то на результаты поиска, но очень и очень слабо.
Здравствуйте! Все сделала как написано в статье — деактивировала плагин и вставила коды в header.php. Все заработало, однако при добавлениии title и метатегов с помощью произвольных полей, исчезает текст поста и заголовок. Подскажите, пожалуйста, что я не так делаю?
И еще, хочу спросить. Можно ли вместо SQL запросов, в файле SQL заменить слова description и keywords на _aioseop_description и _aioseop_keywords с помощью notepad ++? Моя версия вордпресс 3.1.1
Я до этого писал коммент на эту статью, но вам, видимо не понравилось содержание. Впрочем, это ваше право. Я хотел спросить. А что если у меня стоял плагин Платинум СЕО. Как быть с запросом SQL?