Оптимизация сайта под требования PageSpeed Insights. Как исправить долгий ответ сервера 650 ms?

Сайт capmex.ru. Движок Joomla, сильно доработанный, работающий с поддоменами, установлен компонент joomshopping, около 6000 товаров, 220 городов, в каждом городе генерятся индивидуально цены. Хороший VPS сервер.

Перед началом оптимизации показатели сайта по PageSpeed Insights были следующие: 5/20 (моб/ПК), к сожалению скриншоты забыл сразу сделать, а потом уже было поздно, когда вспомнил.

Что было проделано на главной странице (после главной оптимизация пойдет на страницы категории и товаров):
1. Сжатие всех загружаемых css, js файлов
2. Объединение css файлов
3. Сжатие картинок. Я делаю при помощи сервиса
4. В nginx установлено максимальное gzip сжатие 9, по ощущениям на производительности это сильно не сказалось. Ранее было установлено значение сжатия 1. Еще несколько настроек добавлено в nginx, вроде как увеличивающих производительность, но по тестам это не заметно было. Добавлены форматы файлов которые нужно сжимать, ранее не все были прописаны.

gzip_types text/plain text/css text/xml application/json text/javascript application/x-javascript application/javascript application/msword application/rtf application/pdf application/vnd.ms-excel application/xml+rss image/x-icon image/svg+xml application/x-font-ttf;

5. Был выполнен ряд рекомендаций от PageSpeed Insights, добавлены ссылки предварительной загрузки шрифтов.
6. В БД почистил некоторые таблицы, которые не используемые, session и пр. Также хочу сделать дамп и глобально заняться чисткой Joomla от всяких давно установленных плагинов, компонентов, модулей, которые сейчас не задействованы.
7. Виджеты и скрипты аналитики и метрики, также пиксели, для них была создана позиция модуля на сайте в самом низу, перед закрывающим тегом боди. К этому модулю подключил отложенную загрузку. Это дало прибавку, но кк я понял этот метод не очень оптимальный, можно будет потом заморочиться над этим вопросом серьезней.

После всех этих не хитрых операций показатели производительности по PageSpeed Insights стали следующие: 30/60 (моб/ПК).

Сейчас основная трудность, с который столкнулся это долгий ответ сервера:
Время ответа сервера для основного документа должно быть небольшим, так как все прочие запросы зависят от этого показателя. Потраченное время: 650 ms

Ищу информацию по этому вопросу, ее очень мало. Если кто-то сталкивался и решал этот вопрос, дайте пожалуйста подсказку, куда нужно копать.
  • Вопрос задан
  • 466 просмотров
Пригласить эксперта
Ответы на вопрос 3
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Включите логирование запросов в базу и посмотрите, сколько их (и за какое время) выполняется при заходе на страницу и основных действиях - нажатиях на кнопки и т. д. Скорее всего, найдёте ваши 650 мсек именно там. Уменьшение количества обращений в базу и улучшение скорости её ответа - обычно первый кандидат на оптимизацию. Ну и кэширование, разумеется, да.
Ответ написан
gedev
@gedev
сисадмин-энтузиаст
Дежурное напоминание. См. пункт 5.12.

По замерам TTFB и правда грустный. Что-то тормозит сайт ещё на этапе генерации страницы. По опыту узким местом чаще всего является БД.

Для связки Nginx+PHP-FPM можно добавить кэш FastCGI.
Также можно попробовать потюнить базу данных.

Но сперва попробуйте запустить index.php через консоль и посмотрите что идёт не так. Насколько долго он думает (time). Можно прогнать через strace, чтобы посмотреть более детально (анализ strace требует подготовки).
Ответ написан
@zkrvndm
Софт для автоматизации
Попробуйте подключить кеширование при помощи Cloudflare, это снимет нагрузку с сервера в плане генерации страниц, а то сейчас у вас сервер фактически каждый раз заново выполняет кучу работы, чтобы собрать страницу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы