И снова здравствуйте!

Сегодняшний пост буде про ускорение wordpress! Из статьи вы узнает все основные моменты, влияющие на скорость блога.

как ускорить wordpress

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

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

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

оптимизация базы данных mysql. Как снизить нагрузку на хостинг? Часть первая;

замена плагинов кодами. Как снизить нагрузку на хостинг? Часть вторая.

Итак преступим.

Ускорение wordpress

Прежде чем мы начнем, еще раз повторю для тех, кто не знает, обязательно делайте резервные копии редактируемых файлов. А теперь перейдите по этой ссылке и проверьте скорость вашего ресурса. Просто введите домен в строку поиска и нажмите кнопку «Time lt!»

как ускорить wordpress

После пяти попыток захода на ваш блог, сервер определит и выдаст вам среднее время загрузки вашего ресурса. До того, как я продела все действия, описанные в трех моих постах, скорость загрузки моего блога составляла 8,6 сек. Сейчас же, посмотрите сами:

как ускорить wordpress

Разница ощутимая. Итак, как ускорить wordpress и снизить нагрузку на хостинг? Сейчас мы этим и займемся.

1. Редактируем файл header.php

Header.php является основным файлом вашего ресурса и перед тем как происходит любое действие на вашем блоге, посылается определенный запрос системе управления базы данных (СУБД). Но есть абсолютно не нужные запросы к БД, без которых можно обойтись. Меньше запросов — выше скорость, меньше нагрузка!

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

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

Но можно сократить часть запросов. Давайте откроем наш файл header.php и посмотрим, что он в себе содержит:

как ускорить wordpress

Вот смотрите, я выделил те запросы, без которых можно запросто обойтись. Например, файл header.php обращается с запросом под номером один, к БД: «в какой кодировке должен отображаться блог?» А БД ему отвечает — UTF-8. Хорошо! Но если открыть исходный код страницы вашего ресурса, делается это путем нажатия «ctrl+U» на главной странице блога, и посмотреть на этот же код в браузере:

как ускорить wordpress

то мы увидим, уже сформированный нужным образом запрос. И чтобы от него избавиться, вам просто нужно поменять запрос  в файле 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" />

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

<link rel="shortcut icon" href="<?php bloginfo('template_url'); ?>/favicon.ico" type="image/x-icon" />

на уже готовый ответ из исходника, т.е. предоставляем готовую ссылку на иконку:

<link rel="shortcut icon" href="http://blogiseo.ru/wp-content/themes/modxblog/favicon1.ico" type="image/x-icon" />

Я думаю это понятно. И дальше таким же образом делаем все тоже самое с остальными запросами. Они у меня выделены под номерами 1-6. Таким образом мы избавимся от шести не нужных запросов.

В дополнение, есть еще один не нужный код в файле header.php:

<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />

Он указывает на версию wordpress, установленную на вашем блоге. Этот код полезен, но только для злоумышленников, а вы и так знаете какую версию используете, поэтому просто удалите его. Идем дальше.

2. Переносим все скрипты из header.php в footer.php

Так как первоочередным загружаемым файлом является header.php, то по возможности нужно сделать так, чтобы он загружался как можно быстрее. Если у вас на блоге присутствуют различные коды скриптов (<script></script>), а они, скорее всего присутствуют, то можно их перенести в файл footer.php. Footer.php — это подвал вашего блога и его загрузка происходит в самую последнюю очередь.

Таким образом, сначала будет грузиться основное содержимое страницы, а уже потом все остальное. Что существенно повлияет на скорость загрузки вашей страницы. Если вдруг при переносе скриптов, на вашем ресурсе перестанет отображаться его содержимое, то поместите его в самом конце файла headr.php, перед тегом <body>.

3. Устанавливаем кэширование в браузере пользователя

Что такое кэширование. Кэширование — это сохранение данных в определенном (в специально отведенном) месте, для ускорения их обработки при последующей загрузке. Чтобы было понятно, постараюсь объяснить более наглядно.

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

Эти элементы являются повторяющимися. И каждый раз при переходе на другую страницу, они снова грузятся с сервера, что значительно отражается на скорости загрузки страницы. А этого легко можно избежать, добавив в файл .htaccess вот эти коды:

# кеширование в браузере на стороне пользователя
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
 
# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
 
# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
 
# 2 дня
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
 
# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>
 
# использование кеша браузеров
FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>
 
#Запрет отдачи HTTP-заголовков Vary браузерам семейства MSIE
<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>

Файл .htaccess находится в корне вашего блога (httpdocs или public_html (в зависимости от хостинга)). Если вдруг у вас его нет, создайте его и поместите в корень. Теперь когда посетитель перейдет на ваш блог, первый раз страница будет загружаться с вашего сервера, а при переходе на следующую страницу или же повторном переходе на ваш ресурс, страница уже будет грузиться из кэша браузера пользователя. Все это обеспечивается выше приведенными кодами.

4. Оптимизируем файл style.css

Оптимизация файла style.css также способствует ускорению wordpress и снижению нагрузки на хостинг. Для его оптимизации существует один замечательный сервер. Для перехода, кликните вот по этой ссылке. Теперь, находим файл style.css, вот путь: httpdocs/wp-content/themes/ваша тема/style.css и переносим копию себе на ПК. Открываем его, копируем все содержимое, вставляем в окно нашего сервера и нажимаем кнопку «Organize CSS»:

как ускорить wordpress

После обработки, сервер выдаст вам готовое оптимизированное содержимое файла style.css:

как ускорить wordpress

Вы его копируете и заменяете все содержимое файла style.css на обработанное сервером. Теперь просто пересохраните файл style.css на вашем блоге и будет все ОК!

5. Плагин Hyper Cache

Обязательно установите на блог плагин кэширования. Этот плагин способствует кэшированию страниц вашего ресурса. Каким образом он это делает? Он создает на вашем блоге отдельную папку, куда помещает все с генерированные копии страниц. При создании страниц этот плагин их генерирует и хранит копию у себя в папке. Теперь когда по вашему блогу бродят посетители, повторное предоставление им информации будет передаваться не на прямую с сервера, а из созданной плагином папки. Особенно, это очень хорошо сказывается на высоко посещаемых ресурсах.

А теперь, когда вы проделали все те рекомендуемые действия, проверьте повторно, как грузиться ваш блог? Я думаю, вы ощутите значительную разницу! В ближайшее время я открою новую рубрику на своем блоге «Кроссворды». Вас ждет первый на моем блоге новогодний кроссворд с денежными призами. Поэтому подпишитесь на обновления блога и возможно именно вы станете обладателем денежных призов.

А на этом у меня все. Надеюсь моя статья принесет вам много пользы и ваш блог будет грузиться молниеносно. Теперь вы тоже знаете, как полезно ускорение wordpress. Всем пока! И до скорых встреч!

И на последок, порция улетных приколов:

Как вам статья? А как вы ускоряете свой ресурс? Может вам известны другие способы ускорения блога? Поделитесь со всеми в комментариях!

С уважение, Николай Коротков