Как увеличить скорость загрузки блога на wordpress

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

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

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

1. Включение zlib- эта "фишка" позволяет архивировать информацию на сервере, и разархивировать её у пользователя в браузере. Позволяет заметно ускорить скорость загрузки сайта, но не менее заметно нагружает процессор хостинга (что в случае с vps может быть критично). Не бойтесь слова "архивировать", ибо никаких изменений вы не заметите, просто сайт начнет грузится быстрее. Для того, что бы включить zlib, вам необходимо проверить ваш хостинг, на наличие этой возможности, а для этого необходимо создать файл phpinfo.php в корне сайта и добавить туда:

<?php phpinfo(); ?>

А затем просто исполнить его, просто перейдя по ссылке site.ru/phpinfo.php и если он выдаст что zlib support: enabled, то можно начинать действовать. Есть два способа: Подключение через изменение кода либо через .htaccess.

Через код:

Тут два варианта, либо добавить в самое начало (прям в самое самое начало) header.php:

ini_set(‘zlib.output_compression’, ‘On’);
ini_set(‘zlib.output_compression_level’, ’1′);

Либо, если у вас wordpress, в function.php:

function enable_zlib(){
ini_set('zlib.output_compression', 'On');
ini_set('zlib.output_compression_level', '1');
}
add_action('init', 'enable_zlib');

Подключение через .htaccess

Просто добавляем в него:

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# Or, compress certain file types by extension:

SetOutputFilter DEFLATE

Вообще существует много конфигураций и вариантов, но эти самые "ходовые".

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

Hyper Cache - один из самых популярных плагинов для кэширования. Прост в настройке и дружит со всеми известными плагинами, редиректами и 404 страницей.  Настройки интуитивно понятны, лишь хочу отметить, что для активации, нужно добавить в config.php строку define('WP_CACHE', true); . Если плагин вам чем то неугодил, то существует альтернатива в виде Super Cache.

MaxCache - более крутой и продвинутый вариант кэширования от автора блога maxsite.org. Показывает невероятные результаты в плане ускорения и снижения загрузки. Сводит обращения к базе до минимума. Главный его минус в том, что он  стоит денег, правда гораздо дешевле, чем мощный хостинг.

DB Cache Reloaded Fix - плагин для кэширование базы данных. Ускорение загрузки дает не сильное, но уменьшает нагрузку на процессор хостинга и если он работал на пределе, то сайт начнет грузится быстрее. Работает тихо, хлеба не просит. Почему бы и нет?

3. Оптимизация изображений - у всех нас на блогах полно картинок, которые мы, к сожалению, редко оптимизируем. По хорошему, мы должны добавлять в посты картинки того размера, в котором они будут отдаваться пользователю, но чаще всего мы предпочитаем найти красивую картинку, добавить её в пост и потом, через стандартные функции CMS мы её уменьшаем. Это неправильно ибо это увеличивает нагрузку на процессор, но ведь делать все по правилам так лениво. И так, вот методы, которые позволяет немного облегчить наше "картиночное" бремя:

SmsushIT - плагин от Yahoo, который позволит уменьшить вес изображений на блоге, без потери их качества. Самая главная прелесть этого плагина в том, что он делает все сам. Вам нужно только запустить его и подождать (время зависит от количества картинок), после чего все картинки станут немного полегче. Если что то пойдет не так, то всегда есть кнопка отката. Проверял лично, работает на ура. Это гораздо быстрее и удобнее чем сидеть оптимизировать картинки через PunyPNG и перезаливать их.

jQuery Image Lazy Load- плагин, который "заставляет" изображения загружаться тогда, когда пользователь "докручивает" до них браузер. Скорость загрузки страниц естественно возрастает, но плагин не везде работает адекватно. Попробуйте вообщем.

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

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css)$ — [F]

Но повторюсь, лучше сразу заливать оптимизированные картинки, в нужном размере.

4. Оптимизация CSS - обычно наш CSS файл можно сильно сократить. Я бы объяснил за счет чего происходит "облегчение", но, к сожалению, я не технарь и сам этого не знаю, но факт остается фактом. Изобретать велосипед я не буду, и поэтому буду исходить на основе исследования, который провел Dimox. Оно гласит, что самым "лучшим" CSS оптимизатором является сервис - CleanCSS. Пусть он и не дает максимального сжатия, зато он самый безопасный, но все равно, перед его использованием я советую сделать бекап css файла. Оптимизация CSS даст нам ещё один небольшой плюс к скорости.

5. Прочие оптимизации:

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

Оптимизируйте HTML код - над оптимизацией кода всегда можно работать, например посмотрите как сверстан тот же dimox.name, а затем гляньте на свою верстку. Разница заметно? Но если вы не спец в верстке (например я вообще слабо шарю), то обратитесь к профессионалам. Если же денег нет, то хотя бы уберите лишние пробелы из кода, это позволит выиграть пару лишних милисекунд.

Отключите лишние плагины- а лучше вообще удалите, так как все они посылают лишние запросы (например проверяют обновления). Так же, стоит отметить, что вместо многих плагинов можно использовать хаки. Я попробую уговорить нашего верстальщика написать гостевой пост на эту тему. Ну вот пожалуй и все. Если вы выполните все советы, то сможете сильно ускорить загрузку сайта и максимально сократите нагрузку на хостинг.

Повторюсь, что то положительно влияет и на ранжирование и на лояльность пользователей. Так же, советую не забывать время от времени проверять количество очков в Page Speed (кстати тулза сама дает неплохие рекомендации по ускорению сайта). Свой же блог я сейчас отдал на "переверстку", и только после нее начну воплощать советы в жизнь. Результатами поделюсь в отдельном посте, ну а что бы не пропустить - подписывайтесь. Надеюсь что был вам полезен.

И да прибудет с вами seo!

  • Совет использовать хаки вместо плагинов - очень плохой совет. Говорю как веб-программист. Возможно, в скорости и выиграете пол-миллисекунды, но зато не один десяток процентов потеряете в надежности сайта. Я уж умолчу про сложность с последующими обновлениями, потому как каждый хак после обновления придется проверять - а работает ли он после этого самого обновления. И вообще - если уж не понимаете в коде - не лезьте в него, пользуйтесь теми интерфейсами, что сделали программисты. Во всем остальном - согласен. Ну разве что с VPS... это ж какая нагрузка должна быть на сервер, чтобы на VPS'е считать такты процессора, расходуемые на кэширование?!!

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

  • начать нужно с того, что все что тут описано - это "так надо" тут не алгоритмы просятся переписаться, а скрипты, стили, сервера приводятся в нормальное состояние. у некоторых сайтов (особенно на монстровских шаблонах) по полтора десятков файлов стилей и скриптов подключено, содержащих по 50 строчек. Некоторые изображения ужимаются с 600 px до 200px width="" что то же не дело. page speed На это и направлен что бы не грузить лишнего

  • отличная статеечка, мне очень кстати

  • Оптимизировать HTML-код можно через validator на w3( точка )org.

  • Привет. Есть такой впрос: как на вордпресс справится с такой проблемой _http://faktor-sporta.ru/most-v-zhime-lezha-daet-preimushhestva.html/most-v-zhyme-lezha ??? Как видите картинка живет своей жизнью и я не знаю как с этим боротся. Может знаете что с этим делать, как убрать картинку.

    • по моему все ок. разве нет? не заметил проблемы

  • Кстати, такие вещи как zlib и защита от хотлинкинга создают дополнительную нагрузку на сервер. При посещалке от 1000к эта нагрузка может стать ощутимой, помимо того, что сам по себе вордпресс тоже любит отъесть немалую долю ресурсов. С плагинами верно подмечено, каждый дополнительный плагин создаёт некоторую нагрузку, и увеличивает время генерации страницы, которое и без того долгое. Что касательно плагинов кеширования - для вордпресса это прямо таки маст хэв.

    • Блин, с посещалкой там опечатался, хотел 1к написать. :)

  • По поводу архивирования Zlib и сжатия qzip хочу сказать, что не все хостинги поддерживают qzip. У моего хостера есть только модуль zlib, но если использовать его настройку в htaccess, которая приведена в этой статье, то ровным счетом ничего не изменилось. Использовал несколько онлайн сервисов для определения скорости загрузки, изменений до и после внедрения кода в htaccess не было обнаружено. Почему, может что то не так я сделал, а может хостинг сам уже все настроил и без моего вмешательства? Я знаю, что некоторые хостинг-компании, для удобства пользователей самостоятельно настраивают свои сервера для оптимальной скорости загрузки и работы интернет-проектов, поэтому вмешиваться в их работу не нужно. С нашей стороны нужно позаботится об "облегчении" сайта (сжиманием картинок, оптимизация скриптов и т.д.)

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