18 марта, 2011

Оптимизация WordPress

Метки: , Ваш комментарий будет 28

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

Оптимизация WordPress

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

Настройте ЧПУ

В первую очередь я настраиваю ЧПУ. По умолчанию постоянные ссылки в WordPress имеют такой вид: «site.ru/?p=idposted». Я же предпочитаю их делать следующим образом: site.ru/category/postname.html. Теперь о том, как сделать такие адреса у себя на сайте.

  1. Вам надо зайти в админку WordPress -> Параметры -> Постоянные ссылки. Там вы увидите подзаголовок «Общие настройки» и под ним пять вариантов трансляции ссылок. Выберите последний, пятый, то есть «Произвольно» и вставьте в него код: /%category%/%postname%.html.
  2. Далее чтобы каждый раз не переписывать URL с русского языка на английский вручную, настройте транслитерацию, установив плагин RusToLat.

Скачать плагин: http://mywordpress.ru/plugins/rustolat

Оптимизация ЧПУ в WordPress

Так получается вполне приемлемые адреса страниц, которые одобряются поисковыми системами. Но можно сделать ещё лучше, убрав из URL категорий слово «category».

Оно абсолютно не нужно, тем более так вы избавитесь от «шаблонности» движка. Например, у вас есть категория «SEO», которая, по умолчанию, доступна по адресу site.ru/category/seo. Зачем нужно слово category, ведь без него адрес смотрелся бы красивее. Вот так: site.ru/seo.

Как это сделать? Есть специальный плагин – Seo Without Category, который находится здесь.

Скачать плагин: http://mywordpress.ru/plugins/seo-without-category.

Оптимизируйте теги title, descriptions, keywords

Самый разумный способ для достижения этой цели является установка плагина All In One SEO Pack или Platinum Seo Pack, я так делаю всегда. Эти плагины очень похожи, но более распространен плагин All In One SEO Pack, на его примере я и буду рассматривать всю настройку.

Итак, вы загрузили этот плагин, активировали его, включили, нажав на пункт «Enabled».

В принципе, после установки и включения данного плагины теги title, descriptions и keywords имеют нормальный seo-вид, вы их можете прописывать сами. Также этот плагин делает ещё ряд полезных вещей.

Вот только стоит сказать про title: в нём сначала идет заголовок страницы, который вы прописываете вручную, а потом название вашего сайта. Его то и можно убрать по той причине, что для поисковиков имеет больший вес заголовок с меньшим количеством символов. С другой стороны – название сайта после заголовка поста придает узнаваемость, то есть это некий бренд. Как поступить – решать вам.

Настройте файл robots.txt

При настройки файла robots.txt моей главной задачей является избавиться от дублирующего контента, которого в WordPress предостаточно. Для этого я пишу такой код в файле robots:

http://iamdenis.ru/wp-content/uploads/2011/03/robots-wordpress.txt

Как видите, я запрещаю к индексации метки (/tag) и оставляю категории. Это я делаю, чтобы одна и та же запись не дублировалась, при указании нескольких меток. А зачем вот эта строчка Disallow: /2011? Она нужна для закрытия архива от ПС архива. В стандартных случаях используют /archive, но после настройки ЧПУ (1 пункт) archive убрался, как и category, поэтому, чтобы запретить от индексации архивы надо писать даты (Disallow: /2011, Disallow: /2012).

Также я использую плагин Robots Meta, который отлично справляется с удалением дублированного контента, прописывая мета-теги и используя редирект.

Настройки этого плагина у меня выглядят так http://iamdenis.ru/img-files/2011/01-06/configuration-robots-meta-wordpress.png.

Скачать плагин: http://wordpress.org/extend/plugins/robots-meta

Встройте «хлебные крошки»

Хлебные крошки – это плагин для WordPress, который помогает, как поисковикам, так и пользователям. Поисковикам: правильно определять структуру вашего сайта. А пользователям: понять, где они находятся и легко перемещаться по другим разделам сайта. После установки плагин будет выглядеть примерно так:

Главная страница –> Рубрика -> Категория -> Заголовок поста.

На все страницы, кроме той на которой вы находитесь, будет стоять ссылка.

Плагин называется Breadcrumb NavXT. Для его установки надо закачать плагин на сервер и активировать. Далее вставить такой код в файлы single.php, page.php, category.php, archive.php.

<div id="breadcrumb_navx">
<?php   if(function_exists('bcn_display'))
{ bcn_display(); }
?>
</div><!-- #breadcrumb_navx -->

Настройте доступность старых записей для ПС

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

Чтобы этого избежать, достаточно установить плагин WP-PageNavi, и вставить код, представленный ниже, в файлы index.php, category.php, archive.php.

<?php wp_pagenavi(); ?>

Оптимизация WordPress и доступность старых записей

Скачать плагин: http://wordpress.org/extend/plugins/wp-pagenavi/

Добавьте похожие записи внизу поста

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

Скачать плагин: http://wordpress.org/extend/plugins/wordpress-23-related-posts-plugin

Используйте Цитаты

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

Оптимизация цитаты в WordPress

Чтобы выводилась цитата, надо заменить код <?php the_content(); ?> на <?php the_excerpt(); ?> в документах index.php, categoty.php, archive.php, page.php или в док. loop.php.

Сделайте карту сайта

Карта сайта помогает поисковику полностью, лучше и быстрее проиндексировать ваш сайт, так что будет очень хорошо, если вы её сделаете. Как? С помощью плагинов Goggle XML Sitemaps и Dagon Design Sitemap Generator. Два этих плагина делают разные карты сайта. Первый создает карту только для поисковых систем в формате xml, второй – карту для посетителей в формате html (но она также хороша и для поисковых машин).

Сделайте карту сайта для WordPress

Скачать плагин Goggle XML Sitemaps: http://wordpress.org/extend/plugins/google-sitemap-generator.
Скачать плагин Dagon Design Sitemap: Generator http://wordpress.org/extend/plugins/sitemap-generator.

Оптимизируйте заголовки

В некоторых шаблонах выводится тег <h2>, тогда как для SEO намного лучше использование тега
<h1>. Посмотрите исходный код одного из постов. Если вы увидите, что его название заключено в теги
<h1></h1>, то всё нормально. Если же нет, то вам надо открыть файл single.php (он находится в папке с шаблоном), найти в нём строчку:

<h2><?php the_title(); ?></h2>

И заменить её на ту же самую, только с тегами h1. Кстати, могут быть не только теги h2, а и любые другие.

Ещё надо сказать, что тег h1 не должен быть ссылкой, без ссылки он имеет больший вес. Тем более, ссылка чаще всего ставиться на сам пост, то есть ссылается сама на себя. Это вообще не понятно зачем. Так что если в названии поста увидите (файл single.php) теги <a></a>, то можете смело их удалять.

Также хочу сказать про заголовок самого сайта, который отображается на всех страницах и, чаще всего, в тегах <h1></h1>
. Когда такое дело происходит на главной странице, где больше нет тегов h1 – это хорошо. А если на странице с постом или на страницы с категориями? Правильно, два главных заголовка путают поисковика, поэтому заголовок с названием сайт лучше заключить в другие теги, не придающие вес, а тег h1 оставить только на главной странице. Как это сделать?

Откройте документ header.php, найдите в нем строчку:

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

И замените её на такой код:

<?php $titleTag = (!is_category() && !is_single()) ? "h1" : "span"; ?>
<<?php echo $titleTag ?>><?php global $home; if(is_home() == "") : ?>
<a href="<?php echo get_settings('home'); ?>" title="<?php bloginfo('name'); ?>">
<?php endif; ?><?php bloginfo('name'); ?><?php global $home; if(is_home() == "") : ?></a>
<?php endif; ?></<?php echo $titleTag ?>>

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

Сделайте основное содержимое выше

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

Уберите лишний код

Довольно часто на страницах WordPress встречается лишний код, который лучше убрать в отдельный файл. Лишний код – это, например, javascripts или css. Их можно занести в отдельные теги, и внутри них писать код, что не желательно. Этот код не будет кэшироваться посетителями сайта и будет плохо понятен поисковым системам. Поэтому лучше поместить подобные коды в отдельные файлы.

Оптимизация производительности

Кэшируйте страницы сайта

Скорость загрузки сайта в некоторой степени влияет, как на ранжирование в поисковых системах, так и на реакцию пользователей. Поэтому если ваш сайт медленно грузится, то исправьте это. Это можно сделать с помощью плагинов кэширования. Самый распространенный из них называется WP Super Cache, а есть ещё Hyper Cache, должен сказать, второй ускоряет WordPress немного лучше.

Скачать плагин.

Замените php-код

Всё, что можно заменить в шаблонах – заменяйте. Например, путь к таблице стилей. Он сквозной и никогда не меняется, поэтому строчку <?php bloginfo(‘stylesheet_url’); ?> можно заменить на url к css-файлу. Зачем нужен лишний запрос к базе данных? Точно также поступайте со всеми другими подобными php-кодами.

Отключите все не используемые плагины

Отлключение плагинов в WordPress

Помните, что каждый плагин изменяет код WordPress или вносит в него свои корректировки. Это может плохо отразиться на работе сайта, особенно когда установлено много плагинов. Поэтому нажмите на кнопку «деактивировать» тем плагинам, которые вам не нужны.

Отключите ревизии

Ревизии – это копии, которые создаются при любом, даже самом не значительном, изменении какого-либо документа (страницы, посты, комментарии). Если вы их не уберете, то база данных со временем будет засоряться и, как следствие, скорость сайта ухудшится. Чтобы отключить создание ревизий, пропишите в файле wp-config.php такую строчку.

define(‘WP_POST_REVISIONS’, 0);

Понравилась статья? Хотите следить за обновлением блога, получая подобные статьи? Тогда вводите в поле ниже свой E-mail!

Я буду Вам очень благодарен за добавление поста в соц. сети!

Ваш комментарий будет 28

  1. Денис, скажите поподробнее: «Также я использую плагин Robots Meta, который отлично справляется с удалением дублированного контента, прописывая мета-теги и используя редирект.»

    После установки, что и как делать с этим плагином, настройки какие-либо требуются?

    И еще я использую WP Super Cache, мне все равно нужно отключать ревизии? И эту строчку define(‘WP_POST_REVISIONS’, 0); прописывать в файле на самом верху?

  2. Хотела я добавить код для отключения ревизий, а файла config.php нет у меня ни на одном блоге. Его нужно самому создавать что ли?

  3. Денис:

    Мари, не «config.php», а «wp-config.php». Это я перепутал, дико извиняюсь.

    • Ага, я нашла.
      А еще я нашла для отключения ревизий вот такой код: define(‘WP_POST_REVISIONS’, false);

      Он немного отличается от вашего. Не принципиально, какой из них ставить в файл?

  4. Тоже не мог найти, спасибо за статью!

  5. У тебя хороший блог.
    Ты хорошо пишешь. Хорошо оформляешь.
    Странно, что ты нигде не светишься)

  6. aut:

    Хороший пост!

  7. Извините, но такой, как я, абсолютному новичку, к каждой записи нужны пояснения, что и как. Я очень боюсь что-то самостоятельно делать в своем аккаунте на хостинге.

    разделитель Кодировка: справка Переносы строк:
    User-agent: *
    Disallow: /administrator/
    Disallow: /cache/
    Disallow: /components/
    Disallow: /images/
    Disallow: /includes/
    Disallow: /installation/
    Disallow: /language/
    Disallow: /libraries/
    Disallow: /media/
    Disallow: /modules/
    Disallow: /plugins/
    Disallow: /templates/
    Disallow: /tmp/
    Disallow: /xmlrpc/
    http://iamdenis.ru/wp-content/uploads/2011/03/robots-wordpress.txt — я добавила эту вещь,так правильно?

    • Денис:

      Конечно, не правильно!

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

      User-agent: *
      Disallow: /cgi-bin
      Disallow: /wp-admin
      Disallow: /wp-includes
      Disallow: /wp-content/plugins
      Disallow: /wp-content/cache
      Disallow: /wp-content/themes
      Disallow: /xmlrpc.php
      Disallow: /wp-login.php
      Disallow: /wp-register.php
      Disallow: /tag
      Disallow: /author
      Disallow: /archive
      Disallow: */trackback
      Disallow: */feed
      Disallow: */comments
      Disallow: /?feed=
      Disallow: /?s=
      Disallow: /*?*
      Disallow: /*?

      Host: money-freedom.ru
      Sitemap: http://money-freedom.ru/sitemap.xml

  8. Денис, добрый день! Впервые на Вашем блоге. Это то, что мне сейчас нужно, как новичку! Спасибо за подробные разъяснения. По теме поста. Впервые узнал о ревизиях. Предположим, что я отключу все последующие ревизии, а как быть с теми, которые уже есть и их, похоже, набралось очень много? Можно ли с ними что-то сделать? и надо ли?
    С уважением.

    • Денис:

      Здравствуйте, Сергей и спасибо Вам! По поводу Вашего вопроса: я думаю, сохраненные ранее ревизии просто удалятся. А вообще, я не знаю точно. На всякий случай можно удалить все ревизии этой SQL командой: «DELETE FROM wp_posts WHERE post_type = ‘revision’;».

    • Удалить все старые сохраненные черновики записей поможет плагин WP-Optimize.
      Установить и активировать, затем в консоли найти этот плагин (не на странице плагинов), кликнуть по нему.Попадете в настройки, поставьте чекбоксы во всех строчках вверху и нажать
      «Process» Все старые записи будут удалены.

      • Денис:

        Ну или так. Хотя легче будет ввести эту строчку «DELETE FROM wp_posts WHERE post_type = ‘revision’;» в БД. Зачем нагружать сайт ещё одним плагином?

  9. Денис, добрый день! Все мы когда-то были новичками. Вот и я тоже! Не смог разобраться куда вставить: efine(‘WP_POST_REVISIONS’, 0). Вставлял в файл wp-config.php, что находится на сервере, но ревизии все равно сохраняются!
    А после попытки удалить ревизии при помощи:«DELETE FROM wp_posts WHERE post_type = ‘revision’;» (вставлял в тот же файл wp-config.php)при перезагрузке блога получил вот такую фигню: Parse error: syntax error, unexpected T_STRING in /home/users1/p/pobeditel/domains/pro-maski.ru/wp-config.php on line 45. Понимаю, что ошибка в 45 строке, но что с этим делать дальше, для меня вопрос.
    Если найдете возможность, подскажите, пож.

    • Денис:

      Про отключение ревизий я уже всё написал. По-моему, проще объяснить нельзя. Если всё сделали правильно, то ревизии сохраняться не будут!

      А строчка «DELETE FROM wp_posts WHERE post_type = ‘revision’;» — это SQL-запрос. Её надо прописать в базу данных, а не в wp-config.

  10. petby:

    А можно поинтересоваться зачем это в файле роботс.ткст:
    Disallow: /*?*
    Disallow: /*?
    Я так понимаю, нижнее правило просто дублирует верхнее, или я не прав?

  11. На данный момент правильно прописанные мета теги это большой плюс в продвижении и не нужно лениться это делать, хотя многие просто игнорируют и считают это необязательным. Статья хорошая, спасибо!

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

  13. Большое спасибо за советы по оптимизации сайта на движке wordpress!

  14. фуфлогон:

    фуфло гонишь

  15. Артем:

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

  16. Для автора:
    У вас не правильно отображается символ ‘ в вашем случае это ’ (Для сравнения: ‘’ )
    Для кусков кода используйте wp-syntax.

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

Оставьте своё мнение