Краткая памятка по оптимизации WordPress

Хотелось бы сделать небольшую памятку себе по минимальному стартовому тюнингу WordPress — настройкам, удалению лишнего из wp_head и пр. Статья рассчитана на меня, ну или на людей, имеющих представление о HTML, правке файлов.

Не знаю кто как, а я люблю всё оптимизировать. Чтобы и работало быстрее и в продвижении полезно было, да и вообще было «правильно». 🙂 Поэтому после установки WordPress на хостинг, установки выбранной темы оформления, но перед окончательной кастомизацией блога, я обычно делаю несколько вещей для оптимизации.

Итак, начнём. По умолчанию блог на WordPress пихает всякое ненужное в заголовки страниц. Всё это ненужное прячется за строчкой:

 <?php wp_head(); ?>

которую можно увидеть, открыв на редактирование шаблон WordPress.

Исключается этот мусор дописыванием нескольких строк в файл функций темы (functions.php). Открываете на редактирование и перед последним «?>» вставляете такие строки:

remove_action(‘wp_head’, ‘wp_generator’);
remove_action(‘wp_head’, ‘wlwmanifest_link’);
remove_action(‘wp_head’, ‘rsd_link’);
remove_action( ‘wp_head’, ‘feed_links_extra’, 3 );
remove_action( ‘wp_head’, ‘feed_links’, 2 );
remove_action( ‘wp_head’, ‘wp_shortlink_wp_head’);
remove_action( ‘wp_head’, ‘index_rel_link’ );
remove_action( ‘wp_head’, ‘parent_post_rel_link’, 10, 0 );
remove_action( ‘wp_head’, ‘start_post_rel_link’, 10, 0 );
remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0 );

Эти строки делают следующее (по порядку):

  1. wp_generator — удаляет вывод строки о версии WordPress, на которой работает блог. Не нужно это показывать потенциальным злоумышленникам, да и вообще -1 строка ненужного текста. Кстати, по тем же соображениям безопасности рекомендую удалять с сервера файлы readme.html и license.html — они не нужны, но содержат лишние сведения для злоумышленников. Одно не удобно с файлами — каждый раз после автоматического обновления wordpress закачивает их заново.
  2. wlwmanifest_link — вряд ли вы используете программу Windows Live Writer для публикации записей в блоге. Эта функция не нужна.
  3. rsd_link — опять, же если вы публкуете записи в блоге через админку, а не через какие-то сторонние блог-клиенты, то это вам не нужно.
  4. feed_links_extra — удаляет ссылки на RSS ленты для тегов, категорий. Их вообще часто нет физически, а эти ссылки только путают поисковых ботов и занимают лишние строки кода.
  5. feed_links — это ссылка на RSS-ленту новых записей вашего блога. Это важная вещь! Но в таком виде её лучше удалить, а сделать следующее. Добавить свою RSS в feedburner.google.com, а уже полученную от Google RSS прописать в заголовке темы блога (в блоке head):<link type=»application/rss+xml» title=»RSS лента моего бложика» rel=»alternate» href=»http://feeds.feedburner.com/MY_BLOGIK» />Это во-первых, снизит нагрузку на сайт (да, мелочь, но всё-таки). А, во-вторых, позволит вам учитывать всех подписчиков в статистике Google. Ну, а про полезность Feedburner много говорить не буду — она есть: статистика, продвижение. Просто делайте так — я плохого не посоветую! ;)Кстати, Feedburner предлагает отдельный плагин для WordPress, заворачивающий через редирект вашу RSS на него, но не рекомендую нагружать блог ещё одним плагином только ради добавления 1 строчки кода в заголовок. Проще уж руками прописать.
  6. wp_shortlink_wp_head — удаляет короткую ссылку (link rel=’shortlink’) из заголовка страницы. Это не нужно, т.к. короткая ссылка — это используемая по умолчанию адресация WordPress типа statievsky.ru/?p=123. А вы же, надеюсь, изменили формирование URL страниц на нормальное — как у меня? Для этого в настройках надо сделать так. Идём в «Параметры», далее в «Постоянные ссылки». И выбираем там «/%postname%».
    Настройки постоянных ссылок wordpress (ЧПУ)
  7. index_rel_link, parent_post_rel_link, start_post_rel_link, adjacent_posts_rel_link_wp_head — удаляют ссылки на главную страницу блога, на предыдущий и следующий по порядку посты блога, на родительский пост. По идее эти штуки указывают на пред-кеширование для некоторых браузеров. Т.е. пока человек читает страницу, браузер загрузил другие. Но это, считаю, лишним т.к. вряд ли ваш блог будут читать тупо по порядку записей. А поисковикам всё понятно и так. К тому же, sitemap.xml даёт всю информацию.

Ну, и ещё несколько мелочей, которые хочется записать чтобы и самому потом не забыть, да и людям помочь:

  1. В functions.php рекомендую ещё добавить такую строку:

    remove_filter(‘the_content’, ‘wptexturize’);

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

  2. В заголовке темы меняем формирование title WordPress-а, приводя его к такому виду: <title><?php wp_title(‘|’, true, ‘right’); ?><?php bloginfo(‘name’); ?></title>
    Это будет выводить заголовок страницы вида «Заголовок записи | Название блога».
  3. Ставим минимальный набор плагинов — см. мой список плагинов на wordpress с описанием каждого.
  4. В шаблоне рекомендую найти все строки с со вставками php-функций и позаменять их на явно прописанные значения. Например:
    Было: <html xmlns=»http://www.w3.org/1999/xhtml» <?php language_attributes(); ?>>
    Стало: <html xmlns=»http://www.w3.org/1999/xhtml» xml:lang=”ru” lang=»ru-UA»>
    Было: <meta http-equiv=»Content-Type» content=»<?php bloginfo(‘html_type’); ?>; charset=<?php bloginfo(‘charset’); ?>» />
    Стало: <meta http-equiv=»Content-Type» content=»text/html; charset=UTF-8″ />
    В шаблоне могут быть и другие вставки типа вывода числа запросов в базу — их тоже можно поудалять за ненадобностью (предварительно убедившись в ненедобности и сделав резервную копию, конечно).
    Так же в шаблоне темы для пущей оптимизации можно позаменять переменные URLов на прямые URL. Конечно, это мелочи. Основную роль в оптимизации wordpress должно играть кеширование (см. плагины). Но даже эти мелочи для своих блогов я делаю. Для клиентских — тоже, но в меньшем объёме — по ситуации.
    Замена переменных в коде шаблона wordpress
  5. В форме комментариев рекомендую удалить поле «сайт». Это поможет снизить объём СПАМа на блоге.
    Как убрать ссылки из комментариев wordpress
  6. Идём в «Параметры», далее в «Написание». В сервисы обновления нужно (ну или даже необходимо) скопировать какой-нибудь список сайтов-сервисов обновлений. Это необходимо для того, чтобы мир скорее узнал, что Вы сотворили очередной шедевр. Вот мой список pingback сервисов:

    http://ping.blogs.yandex.ru/RPC2
    http://api.feedster.com/ping
    http://api.moreover.com/ping
    http://api.moreover.com/RPC2
    http://bitacoras.net/ping
    http://blo.gs/ping.php
    http://blog.goo.ne.jp/XMLRPC
    http://blogdigger.com/RPC2
    http://blogmatcher.com/u.php
    http://blogoole.com/ping/
    http://blogsearch.google.com/ping/RPC2
    http://blogsearch.google.ru/ping/RPC2
    http://blogshares.com/rpc.php
    http://blogsnow.com/ping
    http://blogstreet.com/xrbin/xmlrpc.cgi
    http://bulkfeeds.net/rpc
    http://feedsubmitter.com
    http://geourl.org/ping
    http://phobos.apple.com/WebObjects/MZFinance.woa/wa/pingPodcast
    http://ipings.com
    http://ipings.comhttp://rpc.pingomatic.com
    http://newsisfree.com/xmlrpctest.php
    http://ping.blo.gs/
    http://ping.bloggers.jp/rpc/
    http://ping.blogmura.jp/rpc/
    http://ping.blogs.yandex.ru/RPC2
    http://ping.feedburner.com
    http://ping.myblog.jp
    http://ping.syndic8.com/xmlrpc.php
    http://ping.weblogalot.com/rpc.php
    http://pingerati.net
    http://pingmyblog.com
    http://pingqueue.com/rpc/
    http://popdex.com/addsite.php
    http://rcs.datashed.net/RPC2/
    http://rpc.blogbuzzmachine.com/RPC2
    http://rpc.blogrolling.com/pinger/
    http://rpc.britblog.com/
    http://rpc.newsgator.com/
    http://rpc.pingomatic.com/
    http://rpc.tailrank.com/feedburner/RPC2
    http://rpc.technorati.com/rpc/ping
    http://rpc.twingly.com
    http://rpc.weblogs.com/RPC2
    http://services.newsgator.com/ngws/xmlrpcping.aspx
    http://trackback.bakeinu.jp/bakeping.php
    http://weblogalot.com/ping
    http://weblogues.com/RPC/
    http://xmlrpc.blogg.de

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

Интересная статья? Расскажи друзьям!