Расширения

Скорость загрузки сайта Joomla

 

 

В предыдущей статье «Обзор JCH Optimize Joomla. Ускорение сайта» мы рассмотрели настройки JCH Optimize Pro, а в этой части поговорим о результатах оптимизации, общих вопросах, вопросах нагрузки на хостинг и приведу ряд рекомендаций по ускорению сайта без JCH Optimize Pro.

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

Перед тем, как приступать к непосредственной оптимизации собственного сайта, предлагаю ознакомиться с некоторыми статьями, которые могут помочь определиться с тем, какое время загрузки сайта (страницы) является приемлемым\неприемлемым хотя бы ориентировочно. Безусловно, чем быстрее, тем лучше.

  1. «Рейтинг скорости загрузки интернет-магазинов» – статья датирована мартом 2013.
  2. «За сколько открываются сайты Рунета?» – статья датирована маем 2011.
  3. «Насколько шустры российские интернет-магазины» – статья датирована июнем 2011.

Ориентируясь, в основном на 1 и 3 статьи, так как 1-я самая «свежая», а 3-я является предшествующим исследованием, описанным в первой, можно сделать такой вывод:

  • Очень быстрая скорость загрузки – от 0 до 2 секунд.
  • Быстрая скорость загрузки – от 2 до 4 секунд.
  • Удовлетворительная скорость загрузки – от 4 до 8 секунд.
  • Медленная скорость загрузки – от 8 и более секунд.

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

  1. Pingdom Website Speed Test.
  2. Google PageSpeed Insights. В данной статье Вы сможете прочесть о моём мнении касательно данного сервиса и о том, почему при помощи него сложно\нельзя измерять скорость загрузки. А в статье «Оптимизация Joomla по рекомендациям Page Speed Insights» советы рекомендации касательно реализации рекомендаций Google, именно на примере Joomla.
  3. Webpagetest.

Обратите внимание, что это сервисы именно для проведения «моментальных» тестов скорости и получения рекомендаций по её улучшению. С их помощью Вы не измерите нагрузку на сервер и сможете проверить свой сайт под нагрузкой (большое количество посетителей). Для владельцев VPS и выделенных серверов доступны встроенные в серверные ОС утилиты отслеживания нагрузки. Лично я использую как дополнение сторонний сервис – New Relic. Там можно отслеживать нагрузку (рисунок ниже).

Нагрузка на сервер
Нагрузка на сервер

Также сервис будет присылать еженедельный отчёт (рисунок ниже), в котором можно будет просмотреть среднее время загрузки всех страниц Вашего сайта для всех посетителей за последние 7 дней.

Скорость загрузки сайта Joomla
Скорость загрузки сайта Joomla

Возможности New Relic очень и очень обширные, особенно на платных тарифах. О нём можно говорить долго, но это не тема данного обзора.

Обладателям «общего» хостинга стоит поискать у себя в панели управления хостингом данные о нагрузке на сервер. Например, хостинг-компания, услугами которой я пользуюсь для своих проектов и некоторых проектов своих клиентов, предоставляет такую информацию (рисунок ниже).

Нагрузка на хостинг
Нагрузка на хостинг

Помимо этого, на этом же хостинге можно просмотреть информацию о нагрузках на сервер по каждой странице\URL Вашего сайта, нагрузку на MySQL сервер и статистику по медленным запросам к базе данных. Это может очень сильно помочь в ускорении Joomla и любого другого сайта. Также стоит отметить, что в панели управления этого хостинга есть отдельные настройки по оптимизации и ещё различные опции, которые позволят оптимизировать скорость загрузки конкретного сайта.

Если Ваш хостинг-провайдер не предоставляет такой информации, то можно активировать опцию отладки в самом JCH Optimize и активировать режим отладки в Joomla. Перед этим, посмотрите, чтобы плагин «Система - Отладка» был включён и в нём была активирована опция Показывать использование памяти.

Также рекомендую установить на свой сайт и отслеживать информацию о скорости в Яндекс Метрике и\или Google Analytics. Не будет лишним подключить свой сайт к этому бесплатному сервису – My.pingdom.com. Сможете получать уведомления о простоях и отслеживать динамику времени ответа своего сайта\сервера.

Результаты оптимизации

Предлагаю Вашему вниманию результаты сравнительного тестирования работы JCH Optimize Pro. Обратите внимание, что результаты данного тестирования не репрезентативны. Так как они очень сильно зависят от каждого конкретного случая (сайта\страницы, сервера\хостинга, настроек JCH Optimize Pro и другое). Это не тест в «полевых» условиях, больше «лабораторный».

В статье «Обзор Speed Cache. Сравнение систем кэш Joomla» представлены результаты тестирования сайта со стандартным кэшем Joomla и с компонентом кэша Speed Cache. А в статье «Обзор JCH Optimize Pro 6. Ускорение Joomla» Вы найдёте новый тест скорости (13.12.2020) разных инструментов.

Тестовый сайт:

  • «Чистая» Joomla 3.4.6. Установлены демонстрационные данные из Joomla 3.4.6 («Тестовые English (GB) демо-данные»).
  • Никаких дополнительных расширений.
  • Настройки по умолчанию. Но включено прогрессивное кэширование в файл (хостинг на SSD дисках).
  • Тест главной страницы.
  • Без ЧПУ и файла «.htaccess».

Тестовый сервера (VPS):

  • Процессор – 2 ядра 2,8 ГГц.
  • ОЗУ – 1024 МБ.
  • Диск – SSD.
  • Сеть – 100 Мбит/с.
  • PHP как FastCGI.
  • MySQLi.

Настройки JCH Optimize Pro:

  • Автоматические.
  • Сортировка порядка обработки плагинов.

Pingdom.com – местоположение тестирующего сервера Amsterdam, Netherlands. Местоположение VPS сайта – Украина, Киев.

Перед каждой сменой настроек JCH Optimize Pro очищался кэш плагина и Joomla. Нагрузка на сервер перед каждым запуском теста была в пределах 3-5%. Замер проводился 3 раза для каждой конфигурации (бралось среднее значение). Интервалы между тестами 20-40 секунд.

Перед тестами проверяемая страница просматривалась на наличие ошибок и очищался кэш сервера.

Показатель

JCH Optimize Pro

Нет

Minimum

Intermediate

Average

Deluxe

Premium

Optimum

Pingdom.com

Оценка скорости/уровня оптимизации

74/100

89/100

89/100

93/100

93/100

93/100

93/100

Запросов*

14

9

9

7

7

7

7

Время загрузки (в мс)*

977

1026

1009

1012

1009

899

898

Размер страницы (в кб)*

375,2

373,8

151

149,7

149,5

149,5

149,5

Сколько процентов протестированных сайтов медленнее моего

90

85

88

63

88

92

92

Оценка степени объединения внешних JavaScript

0/100

44/100

100/100

100/100

100/100

100/100

100/100

Оценка уровня кэширования в браузере

1/100

62/100

62/100

66/100

66/100

66/100

66/100

Оценка загрузки статического контента с куки-домена

73/100

85/100

85/100

88/100

88/100

88/100

88/100

Google PageSpeed Insights

Оценка скорости/уровня оптимизации

70/100

71/100

85/100

86/100

88/100

91/100

91/100

* – чем меньше, тем лучше

 

Как видите (рисунок ниже), особенно по общему уровню оптимизации, в обоих сервисах наблюдается улучшение показателя, прямо пропорционально «агрессивности» настроек JCH Optimize Pro.

JCH Optimize
JCH Optimize

А вот с более важным, на мой взгляд, показателем – временем загрузки страницы (рисунок ниже), не всё так очевидно. Как видно, применение стандартных настроек JCH Optimize Pro, которые доступны и в бесплатной версии, может ухудшить ситуацию. Это, скорее всего, связано с нагрузкой на сервер и его ресурсами. Во время тестов я наблюдал увеличение времени отклика сервера для настроек «Minimum», «Intermediate», «Average», «Deluxe» по сравнению с состоянием, когда JCH Optimize Pro вовсе не был установлен. А вот опция «Optimum» дала лучший результат и по оценки уровня оптимизации и по времени загрузки.

Ускорение сайта Joomla
Ускорение сайта Joomla

Приведу график нагрузки на ОЗУ и процессор моего VPS во время тестирования. Как видите на рисунке ниже за последние сутки нагрузка во время тестирования (обведено синим прямоугольником) не сильно выделяется по отношению к остальным временным промежуткам.

Нагрузка на сервер во время тестирования
Нагрузка на сервер во время тестирования

На рисунке ниже показана нагрузка на сервер за весь временной интервал тестирования. Особых длительных всплесков нагрузки тоже не было.

Нагрузка на сервер во время тестирования (2)
Нагрузка на сервер во время тестирования (2)

В течение 3-х лет я использовал в качестве расширения для ускорения загрузки Joomla компонент WEBO Site SpeedUp расширенная версия. В нём есть опции, аналогичные тем, что есть в JCH Optimize Pro (в плане ускорения). За это время я нашёл и частично проверил информацию о ресурсоёмкости (нагрузки на сервер) некоторых настроек оптимизации. Думаю, что это может быть актуально и для JCH Optimize Pro. А учитывая специфику этих настроек, степень нагрузки актуальна почти для любого сайта на веб-сервере Apache. Приводить числовые характеристики нет смысла, так как они очень сильно зависят от каждого конкретного сайта и сервера.

Опции с высокой ресурсоёмкостью:

  • Объединение CSS. Потребление ресурсов увеличивается при активации дополнительных опций: Включение PHP и внешних файлов, Замена @imports в CSS, Включение встроенных CSS, Поиск в теле страницы. Чем больше таких опций включено, тем больше нагрузка.
  • Объединение Javascript. Потребление ресурсов увеличивается при активации дополнительных опций: Включение PHP и внешних файлов, Включение встроенных Javascript, Поиск в теле страницы. Чем больше таких опций включено, тем больше нагрузка.
  • Минимизировать CSS.
  • Минимизировать Javascript.
  • Минимизировать HTML. С повышением уровня\степени минимизации может возрастать и нагрузка на сервер.

Опции со средней ресурсоёмкостью:

  • Управление объединёнными файлами. Вариант настройки Поместить Javascript в конец.
  • Генерация спрайтов.

Ситуация с нагрузкой будет усугубляться прямо пропорционально количеству CSS и Javascript-файлов, а также размеру HTML-кода страниц и количеству фоновых изображений.

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

  • Установите максимальное для Вашего сайта время хранения файлов кэша.
  • Отключите или снизьте уровень минимизации HTML.
  • Отключите генерацию спрайтов.
  • Отключите объединение CSS.
  • Отключите объединение Javascript.
  • Отключите перемещение Javascript в конец.

В итоге ещё раз подчеркну, что даже на хорошем хостинге с JCH Optimize Pro ускорение Joomla может быть непростым и длительным процессом. В течение которого Вам нужно будет найти баланс между скоростью загрузки сайта, его работоспособностью и нагрузкой на сервер.

Дополнительное ускорение сайта Joomla

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

  1. Отключите\удалите все ненужные расширения: компоненты, модули, плагины.
  2. Крайне внимательно пересмотрите необходимость каждого из оставшихся расширений и различных сторонних виджетов\счётчиков. Всё, от чего можно отказаться, удалите\отключите.
  3. Пересмотрите настройки каждого из оставшихся расширений. Возможно, некоторые опции можно отключить, без потери основной функциональности. Также ищите опции, которые помогут в оптимизации скорости загрузки, например, кэширование.
  4. Включите кэширование Joomla и, возможно, плагин кэширования. Установите максимально большой срок жизни кэша. Какой именно – зависит от Вашего проекта.
  5. Скачайте все изображения сайта, включая «вспомогательные» (кнопки, логотип, фоны и так далее), себе на компьютер и максимально уменьшите их размер в Кб, оставив приемлемое качество.
  6. Пересмотрите необходимость тех или иных изображений. От всего лишнего нужно избавиться.
  7. Возможно, стоит переконвертировать некоторые изображения из одного формата в другой, для улучшения степени сжатия при соблюдении приемлемого качества.
  8. Попробуйте сменить обработчик сессий в общих настройках Joomla. Выберите что-то отличное от базы данных, для сокращения количества обращений к ней.
  9. Проконсультируйтесь у Вашего хостинг-провайдера, какие настройки панели управления хостингом есть для оптимизации скорости загрузки сайта.
  10. Попробуйте найти альтернативные расширения имеющимся у Вас, с учётом их быстродействия. Или обновите версии расширений на более новые, предварительно проконсультировавшись о целесообразности с их разработчиками.
  11. Если у Вас VPS или выделенный сервер, стоит нанять толкового администратора для оптимизации на уровне сервера.
  12. Найдите более быстрый хостинг или перейти на другой тарифный план. При выборе хостинга не забывайте о фактическом географическом местоположении сервера Вашего сайта. Он должен располагаться максимально близко к основной части целевой аудитории.

Рекомендации №10-12 могут стать весьма затруднительны в реализации (время и деньги). Как и в случае оптимизации при помощи JCH Optimize Joomla, для выполнения вышеперечисленных понадобится время на тестирование, выявление ошибок и их устранение. Ко всему могут появиться новые проблемы, связанные с JCH Optimize. Такое наиболее реально в результате применения рекомендаций №4 и №9-12.

Но оно того стоит. Даже если не брать во внимание пункты №10-12 (хотя сервер\хостинг – это очень-очень важно), то удаление всего лишнего может существенно сократить размер исходного кода, общий размер страницы в целом, время ответа сервера и снизить нагрузку на сервер. Лично я так и сделал. Применил рекомендации №1-11, и сайт стал загружаться быстрее.

В следующей статье «Обзор JCH Optimize Pro 6. Ускорение Joomla» мы рассмотрим новую версию данного плагина и сравним его с другими с другими инструментами оптимизации скорости сайта.

Похожие материалы
Автор статьи – Хорошевский Алексей

Хорошевский Алексей Примерно с 2008 года и по сегодняшний день создаю сайты «под ключ» на Joomla и WebSite X5. Также занимаюсь их доработкой, SEO-продвижением, контекстной рекламой, защитой от взлома и оптимизацией скорости загрузки сайта.

Кандидат технических наук по специальности «Информационные технологии».

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

 

Полезные ссылки: