WordPress гальмує: як знайти справжню причину, а не лікувати сайт навмання
Коли WordPress-сайт починає працювати повільно, першою підозрою зазвичай стають плагіни. Їх радять видаляти, замінювати легшими або залишити лише найнеобхідніші. Якщо це не допомагає, наступним кандидатом стає хостинг. А коли й після переїзду на потужніший тариф нічого суттєво не змінюється, встановлюють черговий плагін оптимізації.
Усе виглядає логічно, але є одна проблема: жодна з цих дій не відповідає на головне запитання — де саме сайт втрачає швидкість?
За роки роботи з WordPress я переконався, що пошук причини часто важливіший за саме виправлення. Коли знаєш, що гальмує сайт, рішення нерідко виявляється простим. А без діагностики можна витратити кілька днів, змінити десяток налаштувань і отримати той самий результат.
Спочатку з'ясуйте, що саме працює повільно
Фраза «сайт довго завантажується» може означати абсолютно різні речі.
В одному випадку браузер довго чекає на відповідь сервера. В іншому сервер віддає сторінку швидко, але великий банер, шрифти або CSS затримують появу основного вмісту. Буває, що сторінка відображається майже миттєво, проте після натискання кнопки користувач змушений чекати.
А ще сайт може працювати швидко на головній, але помітно гальмувати в каталозі товарів, під час фільтрації чи оформлення замовлення.
Тому я ніколи не починаю діагностику лише з одного тесту головної сторінки.
Спочатку потрібно визначити, де проблема проявляється: на всіх сторінках чи лише на окремих, на мобільних пристроях чи також на десктопі, у відвідувачів чи в адміністратора. Важливо перевірити й різницю між першим відкриттям сторінки та повторним завантаженням із кешу.
Ці спостереження вже допомагають звузити пошук.
Повільний сервер чи повільний браузер?
Це перше технічне розділення, яке варто зробити.
Для початку достатньо Google PageSpeed Insights і вкладки Network у DevTools. Мене цікавить не лише загальний Performance, а й те, скільки часу браузер очікує на HTML-документ і що відбувається після його отримання.
Якщо відповідь сервера надходить із великою затримкою, варто розбиратися з TTFB — Time to First Byte. Але високий TTFB не завжди означає, що винен хостинг. На нього впливають перенаправлення, мережа, відстань до сервера, кешування, PHP, база даних і зовнішні запити, які WordPress виконує до формування сторінки.
Інша ситуація — HTML уже отримано, але основний вміст з'являється із затримкою. Тоді я перевіряю, що заважає браузеру показати сторінку: стилі, JavaScript, шрифти, зображення або сторонні ресурси.
Це різні проблеми. І вирішувати їх одним способом не вийде.
Якщо проблема на стороні сервера
У WordPress сторінка не обов'язково є готовим HTML-файлом. Для її формування система може виконувати PHP-код, звертатися до бази даних, обробляти логіку плагінів і запитувати інформацію із зовнішніх сервісів.
Звичайне кешування здатне приховати значну частину цього навантаження. Але якщо потрібна сторінка не кешується або кеш ще не сформований, серверу доводиться виконувати роботу заново.
Особливо це актуально для інтернет-магазинів. Сторінка звичайної статті й кошик WooCommerce мають принципово різну поведінку. Застосовувати до них однакову модель кешування не можна.
Якщо підозра падає на серверну частину, я дивлюся на кілька речей: час виконання PHP, кількість і тривалість SQL-запитів, стан об'єктного кешу, фонові завдання та звернення до зовнішніх API.
Для детальнішої діагностики WordPress є Query Monitor. Він допомагає побачити запити до бази, HTTP-звернення, хуки та інші операції, які беруть участь у формуванні сторінки. Якщо цього недостатньо, переходять до серверних журналів, PHP slow logs або профайлінгу.
Такі перевірки краще проводити на staging-копії чи в контрольованому середовищі. Самі діагностичні інструменти теж можуть створювати додаткове навантаження.
І тільки коли проблема дійсно пов'язана з ресурсами сервера, є сенс обговорювати перехід на інший тариф або хостинг.
Потужніший сервер може пришвидшити повільний PHP, але не виправить неоптимізований JavaScript у браузері.
Якщо сервер швидкий, а сторінка все одно повільна
У такій ситуації варто перейти від налаштувань WordPress до того, що бачить і завантажує браузер.
Наприклад, на першому екрані розміщене велике зображення. Сервер віддає HTML швидко, але браузер починає завантажувати картинку пізно — бо знаходить її лише після обробки CSS або виконання JavaScript.
Або зображення завантажується вчасно, але його розмір значно перевищує потреби макета.
У результаті може погіршуватися LCP — Largest Contentful Paint, показник часу появи найбільшого елемента основного вмісту на екрані.
Тут важливо не просто побачити поганий LCP, а з'ясувати, який саме елемент його формує. Іноді це hero-зображення, іноді заголовок, іноді інший великий блок.
Після цього вже можна вирішувати, чи потрібні інші розміри зображення, правильне завантаження шрифту, зміна пріоритету ресурсу або оптимізація CSS.
З JavaScript логіка схожа. Потрібно дивитися не тільки на розмір файлів, а й на те, скільки часу браузер витрачає на їх виконання.
Невеликий скрипт із важкими обчисленнями може створити більше проблем, ніж значно більший файл, який майже не займає основний потік браузера.
Чому PageSpeed не дає готового діагнозу
Google PageSpeed Insights — корисний інструмент. Але бал Performance не є списком причин повільної роботи.
Низький результат показує, що потрібно досліджувати певну частину сторінки. Саме для цього й потрібні конкретні метрики.
LCP допомагає оцінити, наскільки швидко користувач бачить основний вміст.
INP характеризує швидкість реакції інтерфейсу на взаємодію. Цей показник формується на основі реальних взаємодій, тоді як Lighthouse без користувацьких дій використовує інші лабораторні метрики, зокрема Total Blocking Time.
CLS показує нестабільність макета: наскільки несподівано зміщуються елементи сторінки.
Поганий CLS не виправити заміною хостингу, якщо причиною є зображення без визначених розмірів або блок, що з'являється над основним вмістом. Так само повільну реакцію фільтра товарів не завжди можна виправити стисненням фотографій.
Ще один нюанс — результати окремих запусків можуть коливатися. Тому після будь-яких змін я перевіряю сторінку кілька разів і порівнюю показники в однакових умовах.
Якщо є дані реальних користувачів у Search Console або PageSpeed Insights, їх теж потрібно враховувати. Лабораторний тест і поведінка реальних відвідувачів не завжди дають однакову картину.
Коли проблему створюють не WordPress і не хостинг
На сучасному сайті частину функціональності забезпечують сторонні сервіси: Google Analytics, рекламні пікселі, онлайн-чати, відеоплеєри, карти, CRM-віджети, системи відгуків.
Усі вони можуть бути потрібними бізнесу. Але кожен такий сервіс додає власні ресурси й залежності.
У вкладці Network іноді добре видно, що основна частина сторінки завантажилася, а браузер продовжує отримувати сторонні скрипти. Ще цікавіше буває у вкладці Performance, коли зовнішній код займає основний потік браузера і затримує реакцію на дії користувача.
У такому випадку видалення кількох звичайних WordPress-плагінів може взагалі нічого не змінити.
Потрібно визначити, які зовнішні сервіси справді необхідні на кожній сторінці, а які можна завантажувати лише там, де вони використовуються. Але навіть відкладення скриптів вимагає перевірки: якщо занадто агресивно змінити порядок їх виконання, можна отримати швидку сторінку з непрацюючими елементами інтерфейсу.
Саме тому я сприймаю оптимізацію не як набір увімкнених функцій, а як пошук найкращого балансу між продуктивністю та працездатністю.
А якщо гальмує тільки каталог або адміністративна частина?
Це окрема категорія проблем, яку легко пропустити, якщо перевіряти лише публічну головну сторінку.
Наприклад, невеликий корпоративний сайт може працювати добре для відвідувачів, але відкриття списку записів в адмінці займає багато часу. Причиною можуть бути важкі запити до бази, фонові операції або логіка конкретного плагіна.
В інтернет-магазині ситуація ще складніша. Сторінка категорії, пошук, сортування та фільтри можуть створювати різне навантаження. Якщо каталог великий, а фільтрація реалізована невдало, звичайне кешування головної сторінки майже не допоможе.
Тому в магазині я б окремо тестував категорії, картку товару, пошук, фільтри, кошик та оформлення замовлення. Причому не тільки швидкість відображення, а й поведінку після натискання кнопок.
Немає сенсу радіти швидкому відкриттю каталогу, якщо після вибору двох параметрів фільтра доводиться довго чекати на результат.
Як перевіряти підозрілий плагін без ризику для сайту
Плагіни справді можуть бути причиною повільної роботи. Але для цього недостатньо побачити довгий список у WordPress.
Якщо підозра стосується конкретного компонента, я б спочатку зафіксував результат: яку сторінку перевіряли, за яких умов, що саме було повільним і які метрики це підтверджують.
Після цього на staging-копії можна тимчасово вимкнути підозрілий плагін, очистити потрібні рівні кешу та повторити вимірювання.
Важливо, щоб між тестами змінювався один фактор. Якщо одночасно вимкнути три плагіни, замінити тему й поміняти налаштування кешу, покращення може бути помітним, але ми так і не дізнаємося, що його спричинило.
Звичайно, після вимкнення плагіна потрібно перевірити не тільки швидкість. Якщо це компонент оплати, фільтрації, форм чи особистого кабінету, він може бути критичним для роботи бізнесу.
Тому остаточне рішення не обов'язково полягає у видаленні. Іноді достатньо змінити конфігурацію або обмежити завантаження ресурсів певними сторінками.
Яка послідовність діагностики працює найкраще
Я б не починав із десятків рекомендацій, які автоматично формує сервіс тестування. Спочатку потрібно знайти найбільше вузьке місце.
Практичний порядок можна звести до кількох етапів:
-
Відтворити проблему. Визначити сторінку, пристрій, дію та умови, за яких сайт працює повільно.
-
Відокремити сервер від браузера. Подивитися на TTFB, завантаження HTML, ресурси та виконання JavaScript.
-
Знайти головне джерело затримки. Перевірити підозрілі запити, зображення, скрипти, фільтри або сторонні інтеграції.
-
Змінити один фактор. Провести контрольний тест на staging чи в іншому безпечному середовищі.
-
Перевірити не тільки цифри, а й роботу сайту. Меню, форми, кошик, фільтри, мобільну версію та інші важливі функції.
Це не універсальний сценарій на всі випадки. Проте він дозволяє уникнути найпоширенішої помилки: змінювати налаштування, не розуміючи, яку саме проблему ми намагаємося вирішити.
Питання швидкодії значно ширше за усунення окремих затримок. У матеріалі про прискорення WordPress без втрати дизайну та функціональності я розглядав, чому продуктивність потрібно враховувати ще під час проєктування сайту, а не тільки після запуску.
Коли оптимізацію можна вважати завершеною
Мене часто дивує, коли після досягнення 95–98 балів PageSpeed оптимізація перетворюється на боротьбу за кожну наступну одиницю.
Іноді це виправдано. Але іноді заради кількох балів починають настільки агресивно відкладати скрипти, перебудовувати CSS або змінювати механізми кешування, що з'являються нові проблеми.
Для мене хороша оптимізація — це не обов'язково 100 балів.
Важливо, щоб сервер відповідав стабільно, основний вміст швидко з'являвся на екрані, інтерфейс не затримував реакцію на дії користувача, а критичні функції залишалися працездатними.
Крім того, сайт потрібно перевіряти після оновлень і змін у функціональності. Оптимізація не закінчується один раз і назавжди. Сьогодні сайт може бути швидким, а через кілька місяців новий віджет, завелике зображення або невдале оновлення змінить картину.
Висновок: спочатку діагноз, потім оптимізація
WordPress рідко стає повільним з однієї абстрактної причини на кшталт «забагато плагінів» або «поганий хостинг».
У кожного сайту своя архітектура, набір функцій і власні слабкі місця. Іноді достатньо виправити одне зображення або налаштування кешу. Іноді проблема ховається у важких запитах до бази, старій темі чи сторонніх скриптах. А бувають проєкти, де потрібна вже не косметична оптимізація, а серйозне технічне переосмислення.
Тому найкорисніша порада власнику повільного WordPress-сайту, на мою думку, звучить просто:
Не починайте з видалення плагінів, зміни хостингу чи встановлення нового оптимізатора. Спочатку з'ясуйте, на якому етапі сайт втрачає швидкість.
Тоді виправляти доведеться не все підряд, а саме те, що створює проблему.
У каталозі 1700+ діджитал-агентств, які готові допомогти в реалізації ваших завдань. Вибирайте та економте до 30% свого часу та бюджету! Це безкоштовно та займе менше 3-х хвилин.