X

Оптимизация шаблона WordPress для снижения нагрузки на хостинг

Теперь можно покопаться в шаблоне (находится в /wp-content/themes/имя_шаблона/).

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

Для этого скачаем редактор Notepad++, так как нам нужно работать в формате UTF-8 without BOM!
Внимание: Редактируйте файты WordPress’a только редакторами, поддерживающими формат UTF-8 without BOM!!!
Вот полезный код для вставки в шаблон на время оптимизирования(чтобы узнать, сколько запросов к БД идёт со страницы):

<?php echo get_num_queries(); ?>/<?php timer_stop(1);>

Приведу пример из своего шаблона:
Открываем файл header.php.

В цитатах я буду писать красным и зелёным цветом. Красный — начальный вариант, Зелёный — на что нужно заменить!

Основной язык сайта, заменяем:

<html xmlns=”http://www.w3.org/1999/xhtml” <?php language_attributes(); ?>>
<html xmlns=”http://www.w3.org/1999/xhtml” dir=”ltr” lang=”ru-RU”>

Строка выбора кодировки страницы, меняем:

<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? />

Тайтл (Меняем ТОЛЬКО в случае, если вас сателлит или ГС, настроенный под сапу и тд. так так на всех страницах станет одинаковый тайтл):

<title><?php bloginfo(’name’); ?> <?php if ( is_single() ) { ?> &raquo; Blog Archive <?php } ?> <?php wp_title(); ?></title>
<title>Тут впишите свой тайтл</title>

Информация о движке:

<meta name=”generator” content=”WordPress <?php bloginfo(’version’); ?>” />
<meta name=”generator” content=”WordPress 2.8.2? />

Стили (таких строчек может быть много):

<link rel=”stylesheet” href=”<?php bloginfo(’stylesheet_url’); ?>” type=”text/css” media=”screen” />
<link rel=”stylesheet” href=”ВАШ_САЙТ/ШАБЛОН/style.css” type=”text/css” media=”screen” />

RSS:

<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=”RSS Подписка” href=”http://ВАШ_САЙТ/?feed=rss2? />

XML-RPC:

<link rel=”pingback” href=”<?php bloginfo(’pingback_url’); ?>” />
<link rel=”pingback” href=”http://ваш_сайт.ru/xmlrpc.php” />

Меню: Ну тут у каждого своё, лишь совет: если у вас чётко определено верхнее меню, то отредактируйте его, как и перечисленные выше строки.

Если название блога точно определено, то меняем:

<a href=”<?php echo get_option(’home’); ?>/”><?php bloginfo(’name’); ?></a>
<a href=”http://адрес_сайта.ru/”>Название Блога</a>

Если описание блога определено, и не собираетесь менять в ближайшее время, то:

<div class = “description”><?php bloginfo(’description’); ?></div>
<div class = “description”>Описание вашего блога</div>

Вроде всё, с файлом header.php закончили. Ах, да, я делал немного проще: Зашёл к себе на сайт (когда ещё ничего не оптимизировал в шаблоне), посмотрел исходный код этой HTML страницы, скопировал шапку и вставил в файл header.php. Вышло гораздо быстрее

  • удалить строку с информацией о номере установленной версии WordPress. Она не несет никакой полезной нагрузки, и более того, является опасной, т.к. некоторые варианты взлома применимы только к определенным версиям WordPress, а из этой строки как раз очень удобно узнавать текущую версию вашего движка. Выглядит эта строка обычно так:
    1 <meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />
  • заменить URL до вашего файла таблицы стилей CSS, используемого в вашей теме оформления на статический. В коде файла header.php это строка:
    <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
  • заменить URL до иконки favicon.ico на статический. Вы не знаете для чего нужна иконка под названием favicon.ico? Она будет отображаться, например, в поисковой выдаче слева от названия вашего сайта или же в браузерах (в адресной строке или перед названием страницы на вкладках), при открытии страниц вашего блога. У моего блога это иконка желтой лампочки. Если у вас еще нет favicon.ico, то обязательно создайте ее и пропишите путь к ней файле header.php. Она придаст вашему блогу индивидуальность и узнаваемость. В оригинальном файле header.php строка с заданием пути до favicon.ico может выглядеть примерно так:
    1 <link rel="shortcut icon" type="image/ico" href="<?php bloginfo('template_directory'); ?>/favicon.ico" />
  • заменить URL до вашего фида (Rss ленты) на статический. Что такое RSS лента и для чего ее обязательно нужно использовать на блоге вы можете почитать в этой статье — Для чего нужна и как должна выглядеть RSS лента новостей вашего сайта. В коде файла header.php это строка:
    1 <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
  • заменить URL до на статический. В коде файла header.php это строка:
    1 <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />

А откуда взять все эти статические пути, которые мы должны прописать заместо кода PHP? Есть довольно простой способ. Вам нужно всего лишь открыть любую страницу вашего блога в браузере и посмотреть ее исходный код. Для этого, щелкаете правой кнопкой мыши по странице в любом браузере и выбираете из контекстного меню что-то вроде «Исходный код страницы» или «Исходный код», в зависимости от того, в каком именно браузере открыта эта страницы. Теперь ищите там нужные строки и копируете пути к файлу CSS, к фиду и т.п.

Дело в том, что при создании страницы, PHP код интерпретируется в реальные статичные URL. Вот именно их мы скопируем по очереди и вставим в файл header.php вместо участков кода. Вот так выглядел блог кода до преобразования:

1 <meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />
2 <!-- leave this for stats -->
3 <link rel="shortcut icon" type="image/ico" href="<?php bloginfo('template_directory'); ?>/favicon.ico" />
4 <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
5 <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
6 <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
7 <script type="text/javascript" src="<?php bloginfo('stylesheet_directory'); ?>/taber.js"></script>

а так после замены URL на статичные:

1 <link rel="shortcut icon" type="image/ico" href="http://ktonanovenkogo.ru/wp-content/themes/Reafew/favicon.ico" />
2 <link rel="stylesheet" href="http://ktonanovenkogo.ru/wp-content/themes/Reafew/style.css" type="text/css" media="screen" />
3 <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://ktonanovenkogo.ru/feed" />
4 <link rel="pingback" href="http://ktonanovenkogo.ru/xmlrpc.php" />
5 <script type="text/javascript" src="http://ktonanovenkogo.ru/wp-content/themes/Reafew/taber.js"></script>

Еще определенное количество запросов к базе данных в минус. Ну и конечно же, то о чем мы говорили в начале статьи. Найдите в этом файле header.php участки кода отвечающие за вывод названия и описания блога:

1 <?php bloginfo('name'); ?>

и

1 <?php bloginfo('description'); ?>

Их нужно будет заменить, соответственно, на название и описание вашего блога. Если у вас вдруг после сохранения файла header.php вместо русских букв вылезут кракозябры, то откройте файл повторно на редактирование в Notepad++, выберите из верхнего меню пункт «Кодировка» — «Преобразовать в UTF-8 без BOM», а затем опять сохраните файл.

Если у вас еще в файле header.php имеет описание меню, то там можно вручную прописать ссылку на главную страницу. В оригинале эта строка может выглядеть так:

1 <a href="<?php echo get_option('home'); ?>/">Главная</a>

ее надо будет заменить на:

1 <a href="http://hww.ru/" title="hww.ru - в помощь начинающим вебмастерам | Создание и продвижение сайтов на Joomla, блогов на WordPress, форумов на SMF, интернет-магазинов на VirtueMart, заработок на сайте">Главная</a>

Теперь перейдем к файлу footer.php, который так же должен находиться в папке с вашей темой оформления по адресу /wp-content/themes/название_вашей_темы_оформления. В нем можно заменить строку выводящую информацию о том, что все права защищены, примерно такого вида:

1 <p class="alignleft">&copy; <?php echo date("Y"); ?>  <?php bloginfo('name'); ?>  Все права защищены   <br />

на что-нибудь такое, например:

1 <div class="center"><a href="http://hww.ru/" title="hww.ru - блог о создании сайтов на Joomla, блогов на WordPress, форумов на SMF, интернет-магазинов на VirtueMart, продвижении и заработке на сайте"><h3 class="description">&copy; KtoNaNovenkogo.ru - все о создании сайтов на Joomla, блогов на WordPress, форумов на SMF, интернет-магазинов на VirtueMart, SEO продвижение и заработок на сайте </h3> </a></div>

Кроме того, что в этом случае убираются лишние запросы к базе данных, здесь еще и создается ссылка с нужными ключевыми словами, которая будет вести на главную страницу со всех страниц блога (Внутренняя оптимизация сайта). Ну и для повышения значимости этих ключевых слов, они заключены в тег акцентирования H3 (Теги акцентирования (H1 -H6, STRONG, EM) – улучшаем внутреннюю оптимизацию сайта).

У меня, например, в footer.php дублируется верхнее меню и, следовательно, я так же как и в файле header.php заменил участок кода описывающий ссылку на главную страницу на статичный URL.

Остальные файлы редактируем также как и header.php …

Ещё парочка советов:
У вас сателлит и вам не нужно комментирование на сайте? — Отключайте комменты в админке, и удалите всё из файла comments.php .
У вас сателлит? – значит по любому у вас есть облако меток – вместо плагина сохраните его как html код, и вставьте в страницу.
У вас сателлит и вы не будете больше добавлять новые категории? – также сохраните их как html и вставьте вместо виджета!
В файле single.php у многих шаблонов название новости – ссылка на эту же новость. Зачем же это? – Убираем! Ещё минус один запрос!

[Посещений: 291, из них сегодня: 1]
Категории: Сети и серверы