Как ускорить сайт на wordpress

Всем привет! Сегодня я подготовил материал, который расскажет Вам, как ускорить сайт на движке wordpress.
Зачем вообще нужно работать над ускорением блога? Дело в том, что когда посетитель попадает на Ваш сайт, он первым делом сталкивается с его загрузкой, а потом уже с контентом, дизайном и прочими плюшками. Посетителей очень раздражают медленные сайты и даже если Вы создали самый лучший проект в интернете, но он загружается очень медленно, то, скорее всего, человек закроет страницу и поищет инфу где ни — будь в другом месте.  Кроме того при прочих равных условиях, выше в выдаче будет тот сайт, который загружается быстрее, особенно хорошо это прослеживается в Google.

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

Как узнать скорость загрузки сайта

Webo.in – замечательный сервис, предоставляющий подробный отчет по скорости проекта. Для проверки необходимо ввести адрес сайта, почтовый ящик и свое имя, через некоторое время на почту придет письмо с подробным отчетом.

PR-CY – один из моих самых любимых сервисов по анализу сайтов также предоставляет возможность проверки скорости загрузки страниц.  Плюсом является то, что можно проверять 10 сайтов одновременно, просто введите ссылки в нужное поле и через несколько секунд получите информацию о размере страницы, ее скорости и времени загрузки.

Page Speed Online – многофункциональный сервис от Google. Кроме проверки еще дает рекомендации по ускорению сайтов, один минус – англоязычный интерфейс с очень слабеньким переводом.

После проверки, можно переходить к ускорению, вот Вам пошаговая инструкция.

Как ускорить сайт на wordpress

Плагины и виджеты

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

Оптимизация кода шаблона

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

Все это запросы к базе данных, из-за которых уменьшается скорость загрузки страниц. Когда человек заходит на сайт, то к базе данных автоматически начинают подгружаться  эти запросы, а это требует времени и чем больше запросов, тем больше времени уходит на их обработку. Для облегчения работы на главной странице сайта необходимо нажать ctrl + u и найти код похожий на код из header’а:

Теперь осталось заменить коды в header, и они больше подгружаться не будут. Вот что получилось у меня:

Что-то вроде этого должно получиться и у Вас. Советую обязательно проделать эту работу, так как после нее блог будет работать на порядок быстрее! Перед началом работы обязательно сделайте резервную копию файла!

p.s. Строчку <meta name=»generator» content=»WordPress <?php bloginfo(‘version’); ?>» /> можно вообще удалить, так как она показывает версию движка чем могут воспользоваться нехорошие люди. Также хочу заметить что код Вашего шаблона может отличаться. Код заключенный в <title> трогать не нужно!

Теперь переходим к чистке footer ’a. Там тоже очень часто можно встретить запросы, которые излишне нагружают сайт. В этом файле находим код похожий на этот (если его нет, то ничего не трогаем):

Он отвечает за название и вывод главной страницы блога. Опять же нажимаем ctrl + u и ищем этот код в обработанном варианте:

Теперь меняем старый код на новый и сохраняем файл. Кроме header ‘a и footer ‘a похожие запросы могут находиться и в других файлах, поэтому советую перебрать весь шаблон, при этом, не забывая делать резервные копии редактируемых файлов.

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

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

Для проверки, в корневой папке сайта (public html) создайте файл proverka.php и пропишите в нем следующий код:

<?php phpinfo(); ?>

Теперь в адресной строке наберите адрес вида: sayt.ru/proverka.php  если компрессия включена, то в блоке Zlib будет написано enabled. После проверки, файл можно удалить и подключить компрессию к нашему сайту, для этого копируем этот код:

<?php
ini_set('zlib.output_compression', 'On');
ini_set('zlib.output_compression_level', '1');
?>

И вставляем его в header.php перед строкой DOCTYPE html PUBLIC…

Последним штрихом будет оптимизация файла style.css.

  • Откройте файл style.css Вашего шаблона и скопируйте его содержимое
  • Перейдите на сервис csscompressor.com
  • В поле CSS Input вставьте содержимое файла стилей и нажмите “Compress”
  • Немного подождите и скопируйте содержимое поля Compressed CSS
  • Замените им содержимое Вашего файла стилей и сохраните

Таким образом, мы значительно style.css нашей темы, что позволит блогу грузиться быстрее. Внимание, перед оптимизацией ОБЯЗАТЕЛЬНО сделайте резервную копию файла!!

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

Первым шагом в оптимизации движка будет установка необходимого количества ревизий. Ревизия — это черновик, который автоматически создается при написании статьи. Таких черновиков может создаваться очень много и что самое интересное они не удаляются автоматически, поэтому с количеством постов будет расти и количество черновиков, а это уже дополнительная нагрузка. Если Вы привыкли писать статьи в редакторе WordPress, то ревизии лучше не отключать (бывают случаи, когда приходиться к ним возвращаться), а просто ограничить их количество до одного. Если же Вы пишите посты во внешнем редакторе (например, в Word) то черновики можно и вовсе отключить. Для ограничения скопируйте этот код и вставьте его в файл wp-config.php:

define( 'AUTOSAVE_INTERVAL', 120 );
define('WP_POST_REVISIONS', 1);

Здесь указано, что создаваться будет только одна ревизия с обновлением каждые 2 минуты. Если Вы не хотите чтобы черновики создавались, тогда в тот же файл нужно вставить этот код:

define('WP_POST_REVISIONS', false);

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

define('EMPTY_TRASH_DAYS', 5 );

Цифра 5 означает, что файлы будут автоматически удаляться через 5 дней, можете настроить это значение как Вам удобно.

Последним действием в оптимизации движка будет сжатие JavaScript и CSS файлов. Для этой цели я советую использовать скрипт Антона Резниченко, который мгновенно сожмет все нужные файлы. Скачать скрипт можно вот здесь. Для установки, скопируйте из архива файл gzipper.php в корневую папку сайта (public html). Также в архиве находится файл .htaccess. Откройте его с помощью notepad++, скопируйте содержимое и вставьте его в конец файла .htaccess Вашего сайта.

Проверить работоспособность скрипта, можно набрав в адресной строке следующий адрес: sayt.ru/gzipper.php

После этих действий Ваш блог будет работать на порядок быстрее, идем дальше.

Оптимизация изображений

Очень часто я сталкиваюсь с тем, что люди загружают к своим постам слишком большие картинки, из-за чего их блоги грузятся довольно медленно. Сейчас я Вам покажу, как можно уменьшить размер изображения без потери качества. В этом нам поможет старый добрый фотошоп. Открываем с помощью него картинку и сохраняем ее для web устройств:

Откроется панелька, где нужно выбрать формат картинки и ее качество. Чаще всего я ставлю формат JPG и среднее качество. Итоговый размер картинки можно видеть  левом нижнем углу окошка. После настроек, нажимаем “Сохранить” и радуемся.

Защита от Хотлинкинга

Хотлинкинг – это использование Ваших изображений на других сайтах с помощью прямой ссылки.  Если Ваша картинка будет таким образом использоваться на других ресурсах, то это может привести к плачевным результатам, ведь при каждом просмотре запросы будут обращаться к Вашему серверу. Справиться с этой проблемой можно прописав в файле .htaccess следующий код:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?life-webmaster\.ru [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpeg|jpg|gif|bmp|png)$ http://www\.life-webmaster\.ru/zagruzka\.gif [L]

Измените адрес моего блога на свой и в корневую папку закиньте картинку с названием zagruzka.gif. От хотлинкинга защитились, идем дальше.

Оптимизация базы данных

Для оптимизации базы данных я рекомендую плагин Optimize DB. Прекрасен он тем, что прост в установке и ему не нужно все время находиться включенным. Установка плагина ни чем не отличается от других, поэтому проблем возникнуть не должно. После установки в разделе “инструменты” перейдите в подраздел “Optimize DB” и нажмите на “optimize now”:

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

Напоследок хотелось бы дать несколько мелких советов:

  • Старайтесь свести использование различных скриптов к минимуму
  • Не допускайте спама в комментариях
  • Транслируйте видео и аудио через сторонние сервисы. Для видео я рекомендую YouTube, для аудио – Яндекс Видео
  • Не выводите на одной странице больше 50 комментариев. Разбить комментарии можно зайдя в админку, раздел “обсуждения” и поставив галку напротив “разбивать комментарии на страницы…”

А на этом все. Ускоряйте свои блоги и подписывайтесь на мой, чтобы быть в курсе новых статей.

p.s. Приняли в РСЯ через Profit-Partner, радуюсь :) Думаю пост чтоли на эту тему забабахать :)

Ваш комментарий

  1. Очень интересная статья, столько «профилактических мероприятий» узнал, спасибо.

  2. Спасибо за советы по оптимизации header, понятно что темы стараются сделать универсальными. У меня еще во втором теге был ненужный запрос

  3. Ускорить можно очень даже хорошо…

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

  5. Люблю посты где все разжевано до мелочей, а главное доступно и понятно.

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

    А для новичков очень полезно. Но с кодом лучше быть осторожней.

  7. Из всех этого не читал только о Защите от Хотлинкинга, мне как раз это пригодится… + надо в шапке запросы кое-какие заменить, давно я хотел этим заняться :)

  8. Здравствуйте. Статья достаточно подробная, но в моей теме «striking» не могу найти некоторые коды, которые подлежат замене. Да и исходный код Вашего сайта говорить, что у Вас все штатное и ничего не заменено. В том числе и генератор версии WP.
    За статью спасибо! С уважением Александра.

    • Кирилл Тараненко:

      У тем могут некоторые файлы отличаться, так что не удивительно что Вы не смогли найти некоторые коды. Что касается моего сайта, то я недавно сменил шаблон, поэтому все еще не успел сделать

  9. Защита от хотлинка не срабатывает, может кто подскажет действующий способ?

    • Кирилл Тараненко:

      Самый действующий — размещение своего водяного знака на каждой картинке в виде адреса блога.

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

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

    • Кирилл Тараненко:

      Спасибо, приняли уже очень давно. К сожалению, «пакетное уменьшение» вряд ли существует. Мне по крайней мере незнакомо.