Щотижня в нашу підтримку приходять скарги на низьку швидкість завантаження. У 99,9% випадків виявляється, що проблема криється в слабкому хостингу і неправильних налаштуваннях. Розповідаємо, що робити, якщо сайт або інтернет-магазин гальмує, і як правильно зробити діагностику та самостійно збільшити продуктивність - так, щоб сайт «літав».
1. Оцініть продуктивність
Модуль «Монітор продуктивності» в «Бітрікс: Управління сайтом» дозволить протестувати продуктивність сайту і порівняти результати з еталонними показниками. Він показує слабкі місця: сайт, CMS, конфігурація, неякісна розробка або хостинг. Ви можете розгорнути ваш сайт або «чистий» «Бітрікс: Управління сайтом» на різних майданчиках і порівняти ці цифри.
Що потрібно знати про показники продуктивності:
-
менше 30 пунктів - забудьте про продуктивність і швидке завантаження сторінок. Показника «Дуже швидко» вам не бачити. Гальмувати буде все!
-
від 30 до 60 - підійде для невеликих проектів (корпоративні сайти або інтернет магазини з невеликою кількістю товарів, невеликою кількістю SKU і параметрів у розумному фільтрі)
-
від 60 до 100 - конфігурація сервера прийнятна, але не оптимальна. Підійде для більшості проектів. Сайт працювати буде, але не на шалених швидкостях.
-
від 100 - ви молодці: не полінувалися обрати нормальний хостинг-майданчик! «Адмінка» літає, великі обсяги даних вивантажуються на ура. Ви спите спокійно і навіть не думаєте писати в техпідтримку зі скаргами на проблеми із завантаженням сайту, ні разу не бачили помилок Request timeout або 502 Bad Gateway.
-
200 і вище - ідеально!

Як протестувати сайт
Перейдіть в панель продуктивності: Налаштування → Продуктивність → Панель продуктивності. Натисніть кнопку «Тестування продуктивності» і зачекайте кілька хвилин.
2. Перейдіть на PHP7
3 грудня 2015 року вийшла сьома версія PHP. Вона розроблялася з наголосом на збільшення продуктивності і зменшення споживання пам'яті. Приріст продуктивності після переходу на нове ядро становить від 40%!
Сидіти на старих версіях PHP - ускладнювати життя користувачеві і робити цей інтернет гіршим. Якщо ваш хостинг не підтримує PHP7, міняйте його. Якщо ваш сайт не підтримує PHP7, терміново виправляйте. А ще краще, використовуйте рішення з підтримкою PHP7
3. Налаштуйте кешування
Використовувати композит і автокомпозит - це добре і правильно. Але просто включити їх - півсправи. Щоб отримати відчутний приріст в швидкості, потрібно правильно задати час життя кешу в залежності від частоти оновлення даних на сайті і відвідуваності.
Як не треба:
-
Залишати налаштування за замовчуванням (120 секунд). Чому: перший відвідувач заходить на сторінку товару. Формується кеш. Другий відвідувач заходить на сайт через годину. Кеш потрібно формувати заново - його час минув. В результаті кеш генерується кожен раз при відкритті сторінки. Приросту продуктивності і швидкості не тільки немає - вона навіть знижується.
-
Не порівнювати час життя кешу з частотою оновлення даних на сайті та відвідуваності сайту.
-
Задавати для окремих розділів (новини, статті) більше часу на кешування.
Як треба - в залежності від частоти оновлення даних і відвідуваності сайту:
-
Ціни на сайті оновлюються вручну або кілька разів на тиждень. Рекомендований час кешування: не менше 172800 секунд (2 доби).
-
Ціни на сайті оновлюються один раз в день, вивантаження інформації з будь-якої системи обліку відбувається вночі. Рекомендований час кешування: 86400 секунд (1 доба).
- Рідко, але буває: ціни оновлюються через ріал-тайм обмін з Бітрікс24 і буває, що декілька раз впродовж дня. Рекомендований час кешування: 7200 секунди (2 години).
4. Створіть фасетні індекси для розумного фільтру
Фасетні індекси прискорюють роботу розумного фільтру. Зазвичай розумний фільтр перебирає всі товари каталогу і порівняє їх властивості із заданими параметрами. Якщо товарів багато, такий процес може зайняти певний час. Фасетні індекси заздалегідь прораховують і порівнюють варіанти запитів, зберігають їх в системі і видають за запитом.
На словах все чудово, на ділі - не дуже: фасетні індекси рідко створюються та використовуються. Спробуйте це зробити і порівняйте швидкість завантаження результатів фільтрації.
5. Проаналізуйте і створіть індекси в базі даних
Індекси аналізуються і створюються так: Установки → Продуктивність → Індекси → Аналіз індексів.
Натисніть на кнопку «Виконати аналіз зібраних SQL запитів». Якщо з'явилися індикатори зелені, все в порядку: індекси створені. Якщо індикатори жовті, створіть їх самостійно. Інструкція в мануалах «Бітрікс: Управління сайтом»
6. Вимкніть модулі, якими не користуєтесь
При ініціалізаціі ядра «Бітрікс. Управління сайтом» підключається великий список модулів. Вони забирають ресурси, але при цьому не потрібні для повноцінної роботи сайту. Відключаємо зайві модулі - отримуємо приріст продуктивності. Перед тим, як це робити, обов'язково зробіть резервну копію сайту. Які модулі використовуються рідко і їх можна відключити без наслідків для роботи сайту:
-
AD / LDAP інтеграція (ldap)
-
Push and Pull (pull)
-
Wiki (wiki)
-
А / B-тестування (abtest)
-
Веб-аналітика (statistic)
-
Веб-кластер (cluster)
-
Веб-месенджер (im)
-
Веб-сервіси (webservice)
-
Дизайнер бізнес-процесів (bizprocdesigner)
-
Документообіг (workflow)
-
Календар подій (calendar)
-
Конструктор звітів (report)
-
Менеджер ідей (idea)
-
Мобільна платформа (mobileapp) - якщо не підключено мобільний додаток
-
Мобільний додаток для інтернет-магазину (eshopapp) - якщо не підключено мобільний додаток
-
Навчання (learning)
-
Переклад (translate)
-
Пошта (mail)
-
Техпідтримка (support)
-
Універсальні списки (lists)
-
-
Управління масштабуванням (scale).
7. Налаштуйте CDN
Ще одна неоднозначна річ, яка може як розігнати сайт, так і змусити його гарненько пригальмувати. Що це таке?
Теорія:
«Модуль Прискорення сайту (CDN), який дозволяє завантажувати весь статичний контент вашого сайту (картинки, файли стилів css, скрипти js) через мережу дистрибуції контенту (Content Delivery Network или Content Distribution Network, CDN). Тим самим значна частина ресурсів сайту завантажується відвідувачем з найближчого до нього сервера. Це дозволяє збільшити швидкість завантаження сторінок до кількох разів.
Також підключення CDN знижує навантаження на основні сервери сайту. Так як весь статичний контент завантажується відвідувачами вашого сайту не безпосередньо з ваших серверів, а з вузлів CDN, які вміють дуже ефективно кешувати контент, знижується кількість звернень безпосередньо до ваших серверів »
Налаштовується CDN: Налаштування → Хмара Бітрікс24 → Прискорення сайту (CDN).
Практика:
Не все так однозначно: для когось включений CDN дає реальний приріст продуктивності, а у когось, навпаки, знижує швидкість завантаження сайту. Вихід один: тестувати і заміряти результати.
8. Увімкніть об'єднання і стиснення CSS і JS-файлів
В налаштуваннях головного модуля сайту є чарівний блок, який дозволяють поліпшити показники швидкості завантаження сайту. Називається він "Оптимізація CSS". Відзначайте галочками всі, зберігайте зміни і тестуйте швидкість завантаження сторінок.
Оцінити в кількісних і якісних характеристиках ці «до» і «після» допоможе старий добрий Google PageSpeed Insights.