Як ми проводимо оптимізацію Prestashop

Як ми проводимо оптимізацію Prestashop

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

Перше, що ми робимо, це відключаємо непотрібні модулі. Ініціалізація одного модуля займає 1 мс. Деякі теми використовують понад 70 модулів, зареєстрованих в хуці displayHeader. Це додає 70 мс часу. Далі ми прибираємо модулі з хуків, які не потрібні, бо кожен хук займає 0,5 мс. Тобто, до прикладу, 70 зайвих хуків додають ще 35 мс.

Після базової оптимізації використання модулів Prestashop ми профілюємо роботу бази даних. Часто бувають випадки, коли на одній сторінці понад 1000 запитів до БД. Навіть якщо вони дуже швидкі (до 0,1 мс), то це вже 100 мс часу. Після оптимізації кількості запитів ми проводимо їх корекцію. Запити типу MAX дуже ресурсомісткі, як і запити на калькуляцію ціни. Тому ми створюємо таблиці індексації. Також розділяємо історію по сесіях, бо іноді доводиться працювати з таблицями, що мають понад 100 ГБ даних. Це дуже сповільнює роботу БД. Та ще багато інших нюансів.

Після оптимізації запитів до БД зазвичай займаємось тюнінгом сервера:

  • Налаштування оптимальної роботи БД
  • Налаштування зв'язки nginx + php-fpm
  • Монтуємо кеш шаблонів в оперативну пам'ять
  • Налаштовуємо CDN для файлів

Коли проведена основна оптимізація, за допомогою Xdebug визначаємо слабкі місця і, по можливості, кешуємо їх або переносимо в Ajax-завантаження.

На фінальному етапі проводимо розділення JS та CSS і їх асинхронне завантаження, оптимізацію зображень та інші роботи з контентом.

Зазвичай після всіх цих робіт ми досягаємо 85-90 балів для мобільних і понад 95 балів для десктопних перевірок Google Speed.

Але коли все це переносимо на робочий сервер, SEO-експерти вмикають Google Tag Manager, і тоді на мобільних пристроях результат падає до 70-75 балів. Проводиться копітка робота з оптимізації Google Tag Manager, яка потребує багатьох компромісів.

Якщо потрібна експертна допомога по оптимізації сайту на Prestashop