понедельник, 25 июня 2012 г.

Как ускорить сайт на Wordpress, мои рекомендации

Совсем недавно видел, как одному обладателю wordpress сайта понадобилось ускорить загрузку сайта и он разместил объявление о поиске человека, который поможет ему быстро и дешево это сделать. Человек был найден быстро, не я, и мне было интересно насколько и какими способами это сделает выбранный исполнитель. Примерно, через 1-2 посмотрел на исходный код и увидел комментарий в коде, который обычно выводит плагин WP Cache.

Конечно, установкой этого плагина, действительно решается вопрос быстродействия сайта, благодаря использованию файлового кеша при работе с сайтом. Но ведь это не все, что можно было сделать или наоборот, что можно сделать вместо установки плагина WP Cache.

Например, самая первая рекомендация это включить Gzip сжатие страницНа некоторых хостингах нет возможности править .htaccess или модуль php для сжатия не включен, поэтому на помощь приходит плагин Force gzip. Он программно включает сжатие и действительно, количество передаваемых данных сокращается, тем самым уменьшается время загрузки сайта.

Второе, включить кеширование запросов к базе данных. Ннапример так как это делает плагин DB Cache Reloaded Fix. Он не кеширует полностью всю страницу, а лишь некоторые запросы к базе данных, например при получении информации о пользователе, всевозможные системные запросы, при чем в настройках уже выставлено по умолчанию, не кешировать запросы отвечающие за вывод записей и комментариев, что позволит всегда видеть актуальную информацию, но при этом другие запросы будут браться из специального кеша, что сократит количество времени и ресурсов при работе вашего сайта. А именно это и влияет на скорость загрузки и работы.

Третье, оптимизация изображений. Включает в себя два варианта: либо обрабатывать их специальным софтом, например Фотошопом с его функцией "сохранить для веб...", либо установкой плагина WP Smush.it, который использует специальный веб-сервис по сжатию без видимых потерь для качества всех ваших картинок, которые вы загружаете или загружали на сайт (присутствует пакетная обработка всех раннее загруженных картинок в один клик). Как правило, такая оптимизация позволяет сократить размер картинки на 10%-20%, что в общей картине, будет уже существенно влиять на загрузку сайта.

Четвертое, сжатие и оптимизация файлов стилей, javascript и html вывода. Все то что, отвечает за внешний вид сайта и косвенно обеспечивает его работоспособность, и какие либо расширенные функции, как правило достигается использованием различных javascript скриптов и css, которые становятся одним из узких мест в работе вашего сайта. И многие вебмастеры, не обращают на это внимание, и позволяют 100 килобайтным файлам стилей (style.css) просто так нагружать интернет канал. В идеале, файл стилей и скриптов должнен состоять из стилей и кода, которые используются на текущей странице, но такого добиться рядовому пользователю очень сложно. Поэтому необходимым минимум должна быть оптимизация этих файлов по средством минимизации: удалении пустых пробелов, комментариев, переводов строк. Все это можно сделать в автоматическом порядке, использовав плагин Better WordPress Minify или подобные, ключевое слово для поиска Minify. Либо сделать это вручную, использовав веб-сервисы, например http://www.cssdrive.com/index.php/main/csscompressor для css и http://jscompress.com/ для js, последний позволяет безопасно сокращать имена функций и переменных в коде, что в разы сокращает размеры кода. При использовании этого метода, размер файлов сокращается на 10% - 30%, что тоже благоприятно отразиться на скорости сайта. Так же советую проводить оптимизацию выводимого HTML кода, используя плагин WP-HTML-Compression, который уберет все пустые пробелы, и пустые строки, комментарии из итоговой веб-странички, уменьшив общий размер файла на 10%-20%.

Пятое, правильное использование кеша браузера и указание времени обновления файлов в нем, для каждого из типов. Не секрет, что при первой загрузке сайта многие из файлов, например картинки, стили, js код и прочие сохраняется в локальном кеше браузера, на компьютере пользователя, и при следующем обращении к сайту некоторые из них не загружаются с веб-сервера, а берутся из кеша. Один из способов оптимизации, это правильное указание срока хранения кеша, т.е. увеличение срока времени хранения и использования того или иного файла из кеша, а не загрузки с интернета. Многие веб-мастеры этого не знают и не делают, поэтому браузер использует значения по умолчанию, что не всегда подходит и является оптимальным. Например, если ваш дизайн уже находится в конечной стадии и не планируется изменяться продолжительное время, то для файлов стилей (css) можно указать более длительное время хранения локальной копии, что позволит не загружать его длительное вреся, сократив количество загружаемых файлов при последующих обращений к сайту. Так и с каждым типом файлов, а это js код, картинки, шрифты и прочие файлы, которые вы используете на своем сайте. Здесь как правило приходится вручную добавлять специальные директивы в файл .htaccess и исходя вашего сайта, его функциональности индивидуально устанавливать время хранения файлов. Подробнее и готовый вариант таких директив можно найти в инструкции по html5 шаблону раздел .htaccess "IfModule mod_expires.c"

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

4 комментария:

  1. Ничего нового или сверх ординарного, кстати не рекомендую использовать одновременно WP Cache и gzip сжатие - это офигенная нагрузка на сервер, придется покупать мощный хостинг.

    ОтветитьУдалить
  2. согласен, пока ничего нет такого, спасибо за комментарий

    ОтветитьУдалить
  3. Этот комментарий был удален автором.

    ОтветитьУдалить
    Ответы
    1. Hyper Cache+Minify+URL's+gZip+JS&CSS optimize and all fine ;)
      reg.ru -> xen-2

      Удалить