Как ускорить сайт?

Оптимизация скорости загрузки страниц сайта до 70% минимальными усилиями за несколько минут.

В продолжение предыдущей статьи Клиентская оптимизация сайта — немного расскажу о варианте ускорения сайта «для ленивых». Для этого понадобится хотя бы VPS (не shared-хостинг), Apache и четыре строчки в консоли. Остальную работу по оптимизации скорости загрузки сайта возьмёт на себя mod_pagespeed.

Первая часть статьи, посвященной ускорению сайта

Одним из способов оценки и измерения скорости загрузки сайта, а также получения рекомендаций по оптимизации, был и является PageSpeed от Google.

Однако, в команде Google, видимо осознав, что не каждому под силу вручную использовать все методики по ускорению сайта, решили пойти вебмастерам навстречу и не так давно (в 2010 году) выпустили специальный модуль Apache — mod_pagespeed. Де-факто этот модуль является быстрым решением проблем скорости загрузки сайта, выявленных PageSpeed.

Данный модуль содержит более 40 оптимизаций для сайта, которые уменьшают скорость его загрузки и рендеринга. По умолчанию включены те методы, которые ни при каких обстоятельствах не смогут повредить Вашему сайту, их порядка 26 (полный список с указанием статуса On/Off по умолчанию). А это значит, что набрав всего 4 строчки в консоли с правами администратора:

wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
dpkg -i mod-pagespeed-*.deb
apt-get -f install
/etc/init.d/apache2 restart

* вариант для Debian 64-bit, пакеты для остальных систем и версий

— мы сразу получаем ускоренный сайт с уменьшенным временем загрузки страниц.

Список задач, которые решает данный модуль Apache, включает в себя следующие:

  • удаление комментариев в файлах js, css, html;
  • удаление лишних пробелов;
  • удаление лишних атрибутов html-элементов;
  • объединение нескольких html-элементов head в один;
  • объединение нескольких js и css файлов в один;
  • оптимизация JavaScript-кода;
  • внедрение небольших css и js файлов в html-код;
  • вынос больших блоков <style> и <script> во внешние файлы;
  • внедрение кода, откладывающего исполнение JavaScript-кода до полной загрузки страницы сайта;
  • внедрение кода, откладывающего загрузку изображений на странице до прокрутки до соответствующего расположения;
  • увеличение срока кеширования изображений;
  • генерация заглушек пониженного качества для изображений и отображение их до момент полной загрузки оригинала;
  • конвертирование изображений под размер, указанный в тегах <img>;
  • объединение изображений, используемых для фона в спрайты;
  • интеграция с GoogleAnalylics.

(полный перечень возможностей с их подробным описанием и настройками)

После установки модуля mod_pagespeed возможно включать/отключать модуль, добавлять/исключать методики оптимизации следующими способами:

  • с помощью конфигов;
  • с помощью .htaccess;
  • с помощью GET-параметров в URL.

(перечень настроек с указанием, каким из способов их можно менять)

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

http://site.com/index.html?ModPagespeed=on&ModPagespeedFilters=+lazyload_images,-inline_images
http://site.com/index.html?ModPagespeed=off

Помимо прочего, можно получить доступ к статистике использования и работы mod_pagespeed. Для этого необходимо добавить в конфиг:

<IfModule pagespeed_module>
<Location /mod_pagespeed_statistics>
        Order allow,deny
        Allow from localhost
        Allow from 127.0.0.1
        #Allow from ВАШ_IP, чтобы ограничить доступ
        SetHandler mod_pagespeed_statistics
    </Location>
</IfModule>

— после чего, по адресу http://site.ru/mod_pagespeed_statistics появится сведения о настройках, статистике использования и другая информация об использовании модуля.

Если у Вас используется mod_rewrite (например для ЧПУ), то могут возникнуть проблемы при попытке открыть указанный адрес.
Для разрешения конфликтов — исключите из правил соответствующий адрес, как в примере:

# Rewrite all other URLs to index.php/URL
RewriteRule ^(?!mod_pagespeed_statistics).* index.php/$0 [PT]

Надеюсь, что данная статья поможет минимальными усилиями ускорить сайт, уменьшить скорость загрузки страниц, оптимизировать количество запросов к сайту и произвести прочие манипуляции для того, чтобы Вам не пришлось открывать Яндекс или Google, чтобы задать вопрос: Как ускорить сайт?.

Как ускорить сайт?: 2 комментария

    1. Значение было взято из конкретного примера. В целом, оно может быть как меньше, так и больше. Всё зависит от текущей ситуации с оптимизацией сайта.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *