Збільшити продуктивність і швидкість роботи сайту можна кількома шляхами:
Оптимізація сайту:
-
Збільшення наданих ресурсів:
Оптимізація сайту недаремно винесена на перше місце, тому що має найвищий пріоритет серед інших.
Якщо взяти два абсолютно однакових сервера з однаково налаштованим ПО і розмістити на одному сайт, на якому використовується неоптимізованими тема оформлення, плюс 2-3 десятка ніким не перевірених щодо навантаження і взаємодії плагінів, а на іншому той же сайт, але використовує кешування готових сторінок , з критично необхідним мінімумом максимально оптимізованих між собою плагінів / модулів, то виявиться, що другий сервер навіть без виконання інших пунктів може працювати в 2-4 рази швидше (в деяких випадках все набагато драматичніше і прискорення після грамотної оптимізації сайту становить десятки разів) і створювати менше навантаження, ніж перший.
Зміст
У даній статті не буде конкретних рекомендацій зі зміни коду скриптів для поліпшення продуктивності через складність реалізації універсальних рішень для кожної системи управління. Всі дії по налаштуванню і зміни сайту потрібно виробляти самостійно або залучати для цього сторонніх фахівців зі сфери розробки сайтів.
З найпростіших напрямків оптимізації можна виділити наступні етапи, що стосуються практично всіх популярних CMS:
Відмова від плагінів і додаткових модулів - всілякі плагіни, модулі та розширення, які, здавалося б, розширюють функціональність сайту, в дуже багатьох випадках - його ж вороги в розрізі продуктивності. Причин тому безліч. Основна - багато модулі написані ентузіастами і мають дуже низьку якість як в плані споживаних ресурсів, так і в плані безконфліктності з іншими модулями і
CMS. Тому перш ніж додати новий модуль або плагін подумайте, чи не можна реалізувати той же функціонал без нього? Якщо не можна - після установки детально протестуйте його під навантаженням, подивіться як зросло споживання ресурсів, почитайте відгуки інших користувачів.
Відмова від крадених і неякісних тим оформлення і плагінів - як не дивно, це теж важливий момент, тому що в 8 випадках з 10 зламаний продукт, всупереч запевненням хакерів, залишається не тільки небезпечним в плані можливих «закладок» і бекдор, але і набагато більш проблемним в плані споживання ресурсів. «Самопісний» ж компоненти і теми в переважній більшості випадків дуже неякісні. По можливості уникайте їх. Якщо важливо низьке споживання ресурсів, не використовуйте «універсальні» теми. За рахунок використання різних додаткових фреймворків такі «комбайни» працюють повільніше, а ресурсів споживають більше.
Кешування сторінок скриптами - такий спосіб дозволяє генерувати сторінки сайту заздалегідь і зберігати їх в статичні файли, які будуть передаватися в рази швидше. Варто використовувати збереження сторінок скриптами сайту в файли скрізь, де можливо. Віддача заздалегідь сформованої сторінки сайту витрачає набагато менше ресурсів і часу, ніж формування її для кожного нового відвідувача «з нуля». Цей спосіб є одним з найбільш ефективних за рахунок використання статичних сторінок.
Оптимізація бази даних і запитів до неї. При використанні більшості
CMS одним з найбільш важливих моментів є оптимізація роботи бази даних і запитів до неї, так як вона використовується для зберігання практично всіх даних, необхідних для коректної роботи сайту та генерації сторінок. Багато сайтів можуть працювати повільно тільки через проблеми зі зберіганням даних в базі даних і неоптимізованих запитів до неї. Саме тому може рости показник TTFB і збільшуватися час на обробку запитів.
Звернення до сторонніх джерел. Величезною проблемою в швидкості завантаження сторінок або їх генерації може бути завантаження даних з інших серверів. Причин проблем в завантаженні ресурсів може бути величезна маса, але найбільш частими і розв'язуються на стороні сайту є:
Зменшення кількості запитів до сервера. При завантаженні сайту, в разі безлічі підвантажуваних файлів, можуть виникати проблеми в швидкості його завантаження або ж зовсім у вигляді помилок. На хостингу існують певні обмеження на кількість одночасних з'єднань, в зв'язку з чим можуть з'являтися помилки. Але навіть якщо таких немає, то безліч запитів буде впливати на швидкість завантаження сайту. Кожен файл створює окреме підключення до сервера, процес ініціації підключення і всіх інших етапів для коректної передачі даних також займає певний час, що і створює затримки в швидкості завантаження сайту. Якщо порівнювати два ідентичних сайту, але в одному 150 завантаження, а в другому ті ж дані, але вже в 50 файлах, то можна помітити значний приріст швидкості його відображення.
Для вирішення цієї проблеми рекомендуємо:
Оптимізація ресурсів сайту. При завантаженні сайту можуть виникати проблеми, що сама верстка подгружается досить швидко, але елементи сайту вантажаться дуже довго, все підвисає та інше. Найчастіше така проблема спостерігається при неправильній завантаженні великих ресурсів сайту. Наприклад, зображення, що мають дуже високу роздільну здатність, завантажуються для мобільної версії відразу у високій роздільній здатності, або завантаження безлічі JS-скриптів з величезною кількістю даних. Існують різні технології, що дозволяють прискорити завантаження даних, наприклад деякі з них:
І
ще один дуже ефективний, Але трудомісткий і не завжди можливий шлях - відмова від скриптів всюди, де це можливо. Найшвидший сайт - сайт, що складається з набору статичних файлів. Один з варіантів такої реалізації - використання систем управління контентом (
CMS) Формують саме набір
HTML-файлів (зрозуміло сама адміністративна частина
CMS при цьому цілком може складатися з скриптів). прикладом такої
CMS може бути
Movable Type.
В рамках хостингу можна зробити певні настройки, які в деякій мірі можуть допомогти в оптимізації роботи сайту, але їх не варто сприймати як універсальний засіб на всі випадки життя, так як та чи інша технологія може не принести очікуваного ефективності. Велика частина рекомендацій налаштувань на хостингу заточена на використання кешування даних і сторінок для подальшої передачі клієнтові без повторної обробки запиту скриптами і генерації сторінок заново. Принцип кешування даних дозволяє зменшити переданий обсяг даних між скриптами або серверами, зменшувати кількість оброблюваних сценаріїв та інше, тим самим набагато прискорюючи генерацію відповіді. Такий спосіб досить корисний для усунення проблеми з високим TTFB. Важливо враховувати, що не для всіх CMS є можливість налаштувати всі зазначені способи оптимізації.
Включення кешування (Memcache(d)). Використання Memcache (d) в різних системах організовано по різному, в деяких він використовується виключно для збереження даних переданих з баз даних
(Що дозволяє заощадити на часі передачі запиту в БД, пошуку потрібних даних і передачі запиту назад), В деяких він використовується для кешування конкретних сторінок сайту
(Що більш ефективно в плані швидкості, але менш зручно в плані генерації динамічного контенту). Варто звернути увагу, що поведінка кешування даних в пам'яті Memcache (d) вказується безпосередньо в скриптах сайту.
Налаштування кешування Opcache. Використання Opcache дозволяє заощадити безліч часу за рахунок збереження скомпільованого байт-коду скриптів. Такий спосіб вельми корисний у разі, якщо використовується безліч незмінних скриптів які і можуть займати більшу частину часу. На відміну від Memcache (d) – Opcache може бути просто підключений до сайту без потреби додаткових налаштувань.
Використання сховища даних Redis – за своєю подобою цей спосіб схожий з використанням Memcahce (d) за рахунок того, що вони обидва зберігають дані в оперативну пам'ять і після дозволяють використовувати для більш швидкого доступу, логіка поведінки збереження даних та іншого також схожа.
Використання можливостей оптимізації PageSpeed. Модуль оптимізації PageSpeed встановлений на хостингу за замовчуванням і все його можливості доступні для будь-якого сайту. В деякій мірі більшість його налаштувань можуть бути небезпечними для роботи сайту за рахунок того, що змінюються імена підвантажуваних скриптів, принцип їх завантаження та інше, в залежності від включених параметрів, але як один із способів оптимізації – його можна розглядати для прискорення завантаження вмісту. Важливо розуміти, що для зменшення
TTFB (Часу відповіді від сервера) даний спосіб зовсім не підійде, так як він спрямований на поліпшення генерації сторінок в браузері клієнта і завантаження ресурсів сайту.
Кешування статичного вмісту. Вкрай корисна основоположна можливість для прискорення завантаження веб-сторінок це кешування безпосередньо самих сторінок і підключених в них ресурсів. Важливо звернути увагу на те, що таке кешування проводиться не на стороні сервера, а на стороні клієнта і тому перше завантаження сайту буде незмінна, але наступні переходи по сторінках або входи на сайт можуть бути набагато швидше і зовсім не помітні, при правильній організації сайту і кешування.
Як можна прискорити роботу мого сайту?
Оптимізація сайту проводиться виключно фахівцями зі сфери розробки сайтів. Хостинг не має можливості виробляти таку оптимізацію і надавати конкретні рекомендації для кожної ситуації.
Чи можна прискорити роботу сайту шляхом зміни тарифу?
Тарифні плани віртуального хостингу працюють на одних і тих же серверах, тому зміна тарифу навряд чи допоможе.
Якщо ж використовуються тарифні плани бізнес-хостингу, То варто переглянути поточні графіки навантаження на сервер - якщо на них спостерігається граничні показники споживання ресурсів, то зміна тарифного плану на більш високий може допомогти у вирішенні проблеми.