Крайне важно, чтобы сайт работал быстро, скорость, как и в реальной жизни, влияет на многие аспекты деятельности. Если смотреть со стороны информационного бизнеса, то от скорости работы сайта зависит пользовательский трафик, конверсии продаж, как следствие доход компании и SEO-рейтинг. Это не пустые слова, многие компании значительно сократили издержки и увеличили доход за счет оптимизации своих web-приложений и увеличения скорости загрузки страниц:

  • Компания Yahoo увеличивает рост трафика на 9% за счет ускорения своих сервисов на 400 миллисекунд;
  • Интернет-магазин Amazon увеличил свою выручку на 1% за счет того, что их страницы стали открываться на 100 миллисекунд быстрее;
  • Google уверяет, что они теряют до 20% своего трафика в случае задержки работы сайта всего на 100 миллисекунд.

Ускоряем Joomla!

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

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

1. Установите последнюю версию ядра Joomla

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

Самый простой способ обновить Joomla, нажать на кнопку Обновить сейчас! (Update now), которое отображается в виде уведомления на главной странице панели администрирования (Dashboard). Так же можно запустить данный процесс в ручную, зайдите "Компоненты" (Components) → "Обновление Joomla!" (Joomla! Update). Перед обновлением обязательно создайте резервную копию сайта, особенно это актуально в случае большого обновления (например меняется мажорная версия релиза).

Обновление Joomla!

Похожим способом обновляем расширения Joomla: "Расширения" (Extensions) → "Менеджер расширений" (Manage) → "Обновить" (Update).

Обновляем расширения Joomla

2. Задействуйте сервис CDN

Content Delivery Network (CDN)

Content Delivery Network (CDN) - дословно "сеть доставки содержимого", не вдаваясь в подробности - это сервис, который помогаем ускорить процесс загрузки страниц сайта. Реализация CDN совместно с Joomla предлагает довольно простой способ уменьшить время отрисовки страницы в браузере конечного пользователя. Все просто, соглашаясь с условиями сервиса, статические материалы сайта (изображения, CSS, JavaScripts) кэшируется на нескольких удаленных серверах, распределенных географически в 25 точках земного шара. В результате все закэшированные данные будут подгружаться гораздо быстрее, чем если бы они лежали в одном месте.

Достаточно установить специальное расширение CDN for Joomla! и начать пользоваться сервисом. Несомненный плюс данного сервиса - это использование протокола HTTP версии 2, который позволяет еще более ускорить транспорт содержимого до браузера пользователя.

3. Кэш Joomla

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

Первый шаг. Включить настройки кэша в Глобальной конфигурации (Global Configuration). В меню навигации выбирите  "Система" (System) → "Глобальная конфигурация" (Global Configuration) → "Система" (System), справа в выпадающем списке Кэш (Cache) выберите один из двух режимов работы:

  • Консервативное кэширование (Conservative Caching). Кэширование выполняется отдельно для каждого уникального пользователя.
  • Прогрессивное кэширование (Progressive Caching). Данные кэшируются для всех пользователей.

Не забудьте нажать кнопку Сохранить (Save), после того, как закончили настройки. После применения данных настроек Joomla может потребовать перелогиниться.

Настройки кэша в Глобальной конфигурации

Второй шаг. Включение плагина системного кэширования страниц Joomla. Перейдите "Расширения" (Extensions) → "Плагины" (Plugins). Может получиться довольно длинный список, поэтому мы рекомендуем воспользоваться поиском по ключевому слову "кэш" (cache), найдите и включите плагин "Система - Кэш" (System - Page Cache).

Включение плагина системного кэширования страниц Joomla

Дополнительно можем посоветовать отдельные расширения, которые можно попробовать для реализации дополнительных возможностей кэширования данных.

4. Оптимизируйте изображения

Размер любого изображения можно сжать в среднем до 50% процентов без потери качества от исходного веса, подобная оптимизация дает довольно хорошие результаты быстродействия Joomla-сайта, особенно если большая часть контента состоит из медиафайлов. К сожалению, базовый функционал Joomla не умеет сжимать изображения, но возможно выполнить самостоятельную обработку изображений в графическом редакторе (например Photoshop), найти онлайн-сервис, который обладает похожим функционалом. Ну и, конечно, существуют расширения, которые помогут решить эту задачу. Рекомендуем расширение EIR - Easy Image Resizer, разработанное Виктором Вогель (Viktor Vogel) - специалистом Joomla в компании 1&1 Internet SE.

расширение EIR - Easy Image Resizer

Ниже примеры изображений без оптимизации:

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

А это примеры оптимизированных изображений без потери качества:

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

Не применяя каких-либо усилий удалось сжать изображений до 71.72%, вдумайтесь в эту цифру! Для этого мы использовали Easy Image Resizer Joomla, но советуем так же посмотреть следующие расширения, которые помогут в данной оптимизации:

5. Компрессия страниц Joomla

В ядре Joomla присутствует функционал сжатия данных с помощью популярного архиватора GZip, который можно легко включить. Перейдите "Система" (System) → "Глобальная конфигурация" (Global Configuration) → "Сервер" (Server), затем включите Сжатие страниц (Gzip Page compression). Не забудьте сохранить изменения!

Компрессия страниц Joomla

6. Оптимизация CSS и JavaScripts

Самый простой способ оптимизации CSS и JavaScripts - это объединять несколько файлов в один, в таком случае пользовательскому браузеру требуется меньше http-сессий, чтобы выполнить загрузку содержимого, соответственно результат достигается за меньшее время. Но данная необходимость отпадает, если web-сервер поддерживает HTTP/2, данную информацию можно уточнить у хостинг-провайдера, системного администратора, который обслуживает сайт, либо воспользоваться онлайн сервисом, который определяет версию HTTP для сайта.

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

Ниже приводим некоторые Joomla расширения, которые помогут оптимизировать CSS и JS:

Оптимизация CSS и JavaScripts

7. База данных

Очень часто возникают трудности на уровне системы управления базами данных, таблицы которые могут потребовать определенного обслуживания. Не всегда в штате есть администратор базы данных, Joomla так же не имеет инструмента, который помог бы решить подобные проблемы. Можно воспользоваться популярным приложением PhpMyAdmin (в случае если используется MySQL), как правило, большинство хостинг-провайдеров бесплатно устанавливают его вместе с сайтом.

Восстановление таблиц MySQL. В PhpMyAdmin на базе данных сайта необходимо выбрать таблицы, для которых необходимо провести процедуру восстановления, из выпадающего списка выбрать "Repair table":

Восстановление таблиц MySQL

Оптимизация таблиц MySQL. Данный процесс повторяет процедуру восстановления, которая описана выше, но из выпадающего списка необходимо выбрать "Optimize table".

Оптимизация таблиц MySQL

Можно заметить, что почти каждое расширение создает свою таблицу, но, к сожалению, после удаления расширения из Joomla, таблицы продолжают свое бесцельное существование в базе данных. Рекомендуется удалить все неиспользуемые таблицы, что позволит сократить размеры базы данных.

8. Кэш браузера

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

Для включения необходимо выполнить следующие действия: перейти в раздел "Расширения" (Extensions)→ "Плагины" (Plugins), скорее всего будет довольно большой список, рекомендуем воспользоваться поиском по ключевому слову "кэш" (cache) и найдите плагин System - Page Cache. Включите настройку "Использовать кэш браузера" (Use Browser Caching). После произведенных изменений не забудьте нажать кнопку Сохранить (Save).

Кэш браузера

Еще один хороший вариант заставить бразуер пользователей использовать свой кэш - это задействовать соответствующие настройки на web-сервере.

В веб-сервере Apache достаточно добавить так называемые expires directives в файл .htaccess:

Apache configuration код:
  1. <ifModule mod_expires.c>
  2. ExpiresActive On
  3. ############################################
  4. ## Add default Expires header
  5. ## <a href="http://developer.yahoo.com/performance/rules.html#expires">http://developer.yahoo.com/performance/rules.html#expires</a>
  6. <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
  7. ExpiresDefault "access plus 1 year"
  8. </FilesMatch>
  9. </ifModule>

В Nginx настройки expires directives могут быть указаны внутри заголовков http {}, server {}, location {}, location {} - блоков и даже в логических условиях (if, else):

Apache configuration код:
  1. location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
  2. expires 365d;

9. Специальные Joomla расширения

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

jQuery Easy (Вызывает jQuery-скрипты из Google CDN или локально);

LLFJ - подгружает изображения пока пользователь выполняет прокрутку страницы вниз;

Javascript Async and Defer - загружает JavaScript в асинхронном режиме, что дает выигрыш в скорости отрисовки страниц;

ScriptsDown - видоизменяет верстку страницы помещая скрипты в конец страницы.

10. Правильный выбор хостинга

Конечно, одну из ключевых ролей качества работы любого web-приложения играет правильный выбор хостинга. Важно понимать, что бесплатный / дешевый хостинг, как правило, не гарантирует хорошего сервиса и сайт будет размещен на сервере, который обладает низкой производительностью и испытывает большие нагрузки, что в конченом итоге приводит к крайне медленной работе размещенных на нем сайтов. Поэтому мы рекомендуем вам не дорогой хостинг BeGet.ru или TimeWeb.ru для Joomla сайтов.

Идеальный вариант хостинга это VPS/VDS-сервер. Данное решение позволяет иметь полный контроль над своими ресурсами. Для управления данным сервером потребуется технически грамотный специалист, который имеет опыт администрирования Linux, но современные хостинг-провайдеры предоставляют альтернативный интерфейс в виде ISPmanager- или ServerPilot-панелей, которые имеют более дружественный интерфейс и позволяют выполнять контроль специалисту с базовыми навыками администрирования. Рекомендуем DigitalOcean.com (Перейдя по нашей реферальной ссылке вы получите 10$ на счет!) и FirstVDS.ru (Скидка 25% новым клиентам!)

В заключение

На данный момент существует масса способов оптимизировать работу сайта Joomla, были описаны лишь базовые методы. Что именно стоит применить? Тут нужен индивидуальный подход, например, включение Joomla-компрессии потребует больше ресурсов от сервера, что неприемлемо, если производительность ограничена. Комплексный подход несомненно даст результаты, но если нет уверенности в правильности решений, то используйте метод проб и ошибок - выполняйте действия и наблюдайте за результатом.

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


 
4.6258741258741 1 1 1 1 1 (Оценок: 286)
4.6258741258741 286
Опубликовано: 18-05-2016

Комментарии  

anurik
0 #2 anurik 09.02.2017 07:52
Что если в глобальных настройках включить прогрессивное кэширование. А плагин кэширование не включать. Или их надо вместе?
Ruslan Khlista
0 #1 Ruslan Khlista 22.05.2016 08:54
Спасибо за подробное пояснения причин сжатия таблиц стилей и скриптов (если честно, даже не задумывался почему выкладывают два типа библиотек). Также помогла информация об оптимизации изображений с помощью EIR - Easy Image Resizer – нашел что искал.

Вы не зарегистрированы, чтобы оставлять комментарии.