Онлайн заработок, создание и монетизация сайтов, веб-разработка, SEO и SMO продвижение, фриланс, партнерки, полезные сервисы вебмастерам, блоггинг.

Главная » WordPress » Оптимизация блога - удаление лишнего кода в Wordpress

Оптимизация блога — удаление лишнего кода в WordPress

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

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

При написании вдохновился схожим по тематике постом от Владимира. Можно сказать, эта заметка рассказывает о том же, но с пояснениями и реальными примерами (с моего блога). Кроме того, думаю, не все мои читатели знакомы с рассматриваемой темой, поэтому, как говорится, приступим:

<?php language_attributes();?> — отвечает за вывод данных о языке сайта и стране, где он располагается. Строка находится в header.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»>

В данном случае запись lang=»ru-UA» означает, что текст сайта на русском, а сам находится в Украине.

<?php bloginfo(‘html_type’); ?> и <?php bloginfo(‘charset’); ?> — первая часть кода задает значение параметра, заданного с помощью name или http-equiv, вторая определяет кодировку HTML документа. Находятся в header.php. Чтобы понятнее было посмотрим пример:

Было: <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″ />

<?php bloginfo(‘name’); ?> — выводит имя блога (в настройках админки поле Blog Title), встречается в шаблоне достаточно часто. Кстати, если вы используете плагин All in One SEO Pack, то он автоматически переписывает заголовки title, поэтому можете убирать из этого тэга весь код.

<?php bloginfo(‘version’); ?> — версия системы, находится в header.php. Можно написать значение вашей версии вручную, указать любое другое, дабы запутать злоумышленника, или вовсе удалить строку.

Было: <meta name=»generator» content=»WordPress <?php bloginfo(‘version’); ?>» />
Стало: <meta name=»generator» content=»WordPress 2.5.1″ />

Кстати, скрытие версии системы является одним из способов защиты блога, хотя ее и можно определить косвенно.

<?php bloginfo(‘stylesheet_url’); ?> — указывает файл стилей, находится в header.php.

Было: <style type=»text/css» media=»screen»>@import url( <?php bloginfo(‘stylesheet_url’); ?> );</style>
Стало: <link rel=»stylesheet» href=»http://tods-blog.com.ua/wp-content/themes/minyx-20-lite/style.css» type=»text/css» media=»screen» />

<?php bloginfo(‘rss2_url’); ?> — задает адрес RSS фида, может находиться в файлах header.php, sidebar.php и footer.php. Если вы используете FeedBurner, то пишите адрес именно от сервиса, а не стандартный.

Было: <link rel=»alternate» type=»application/rss+xml» title=»<?php bloginfo(‘name’); ?> RSS Feed» href=»<?php bloginfo(‘rss2_url’); ?>» />
Стало: <link rel=»alternate» type=»application/rss+xml» title=»Tod’s Blog. Моё видение интернета RSS Feed» href=»http://feeds.feedburner.com/TodsBlog» />

<?php bloginfo(‘pingback_url’); ?> — пусть к XML-RPC файлу, который отвечает за оповещение авторов других блогов, что вы на них ссылались. Находится в header.php.

Было: <link rel=»pingback» href=»<?php bloginfo(‘pingback_url’); ?>» />
Стало: <link rel=»pingback» href=»http://tods-blog.com.ua/xmlrpc.php» />

<?php bloginfo(‘stylesheet_directory’); ?> — говорят, встречается в теме постоянно, хотя у себя не видел. Видимо, отвечает за путь к файлу стилей.

<?php bloginfo(‘description’); ?> — задает описание сайта (в настройках админки поле Tagline), встречается в теме постоянно. Можно просто заменить на нужный вам текст.

<?php bloginfo(‘comments_rss2_url’); ?> — адрес фида (RSS потока) для комментариев, чаще всего встречается в sidebar.php и footer.php.

<!— <?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds. —> — находится в footer.php, выводит количество запросов и время их выполнения. В принципе, особой необходимости в этом нет, поэтому можно смело удалять.

Код между строчками <?php /* Widgetized sidebar, if you have the plugin installed. */
if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar() ) : ?>
и <?php endif; ?> в файле sidebar.php используется, когда в вашем блоге отключены виджеты. Если вам это не грозит — закомментируйте его или удалите.

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

P.S. Меня не будет в Интернете ближайшие 4 дня, поэтому на все письма, комментарии в блоге и сообщение по icq отвечу в пятницу (11.07). Один пост будет автоматически опубликован в среду вечером, я расскажу о результатах эксперимента с привлечением трафика из новостных социальных сайтов.
Не пропустите! До скорых встреч.

Спасибо спонсорам:

07.07.08

Категории: WordPress.

Теги: , , , ,

27 Comments
  1. SEO Блогер MNone

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

  2. Станислав Малкин

    Это все экономии на спичках. Экономят на запросах в базу, а удаление этих записей не уменьшает их количество..

  3. vVv

    стоит ли полученая производительность (незначительная) затраченого времени? да и функции эти все там не спроста, в процесе ведения блога многое может изменится, например установите плагин для мультиязычности, будете вести блог на нескольих языках, через несколько лет поменяете название css .. мало ли что, а про то, что было изменено можно забыть, и потом с апдейтом получить много проблем..

    в общем я против этого, хотя все что написано полезно для понимания работы вордпреса и для повышения интереса к ковырянию в нем

  4. wmas

    Привет! Насколько я понимаю bloginfo и т.п. основаны на запросах, которые wordpress делает по умолчанию… там ему просто необходимы эти данные и используешь ты bloginfo или нет безразницы. Думаю более актуальная тема все таки с кэшированием данных. WordPress слишком глубоко засел в свои дебри так что имеет то, что имее :)

  5. the_hamster

    Буквально сегодня читал почти один в один статью, только она покороче будет (блог не помню).

  6. Vladimir

    Tod, я рад, что вдохновил Вас на написание статьи, но справедливости ради отмечу, что в своей статье я говорил о том, что удаление этих всех «спичек» является абсолютно бессмысленным — запросы на них не экономятся (разве что в ветке 2.3 с отключенным кэшем).

    Хардкодинг — занятие неблагодарное и чреватое проблемами в будущем.

  7. Tod

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

  8. Владимир

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

  9. Flash`er

    После прочтения твоей статьи заменил часть кода на вордпрессе, правда не всё (боюсь в базу лезть). Но реальной скорости увеличения открытия страниц не увидел.

  10. Tod

    Flash`er, если ты посмотришь комментарии выше, то заметишь, что все склоняются к такому же выводу:) Я тоже, в принципе. Возможно, уместно было бы заметить название поста с «оптимизация блога» на «зачистка шаблона от ненужных тэгов». Занятие на любителя, конечно. Я удалил и заменил все лишнее (для меня лично).

  11. Михалыч

    Из написанного, заменил только стандартный урл подписки на rss — на фидбарновский. Остальное — особо не мешает

  12. Дмитрий

    Как удалить с title название блога при просмотре самой статьи ?

  13. Tod

    Дмитрий, можно установить плагин All in One SEO Pack, где есть настройки для тайтла.

  14. job

    Добрый!
    Подскажите, если встречалось: тэг [code][/code] , выводит лишний слэш в адресе, вот так : … /wp-content/themes//grteve/favicon.ico пока не удается найти где…
    Установлен WP MU, или теперь MS

    не угадал /

    < ?php bloginfo(’stylesheet_directory’); ?>

  15. Tod

    job, если честно, не понял о чем вообще идет речь. Если есть лишний слеш в коде, его просто нужно убрать в шаблоне и все.

  16. job

    Шаблонов много, и добавляются постоянно. Надо искоренить причину, где при вызове bloginfo стоит лишний слеш. Вопрос где?

  17. job

    Появляется он только при выводе stylesheet_directory, темы стоят правильно themes/имя темы/, без подпапок. При этом — отображаются нормально

  18. job

    опять выпали <?php bloginfo(‘rss_url’); ?> <?php bloginfo(‘atom_url’); ?> <?php bloginfo(‘pingback_url’); ?>

  19. Tod

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

  20. job

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

  21. Артем

    Полезный материал.
    Но так обламывает в коде копошиться, уже вторую статью читаю, и обламывает вдвойне.
    Хотя и надо бы…

  22. Tod

    Артем, сегодня опубликовал еще и третью. По поводу кода согласен, особенно, если у тебя не один проект) Но можно купить готовые решения.

  23. Александр

    Почистил код как описано, но на скорости загрузки страницы это никак не отразилось…

  24. Мак_Сим

    мне вот что интересно, если вот так «оптимизировать» код, после обновления движка, разве все не станет так как было ?

  25. Tod

    Мак_Сим, эти правки сделаны в шаблоне, поэтому при обновлении вордпресс все будет работать более-менее стабильно. Иногда просто в новых версиях убирают какие-то функции, но не часто.

  26. Елена

    Полезная инфа, а я как раз сейчас занимаюсь ускорением блога и обязательно воспользуюсь вашими советами. Спасибо!

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

Ваш e-mail не публикуется. Обязательные поля помечены *
Если вы комментируете впервые, то текст будет отправлен на модерацию.