Аудит продуктивності сайту WordPress
Аудит продуктивності — діагностика вузьких місць перед початком оптимізації. Без аудиту оптимізація — стільки ж, скільки стріління наосліп. Результат: конкретний список проблем з вимірювальним впливом на швидкість.
Інструменти вимірювання
Зовнішні (імітують користувача):
- Google PageSpeed Insights — оцінка Core Web Vitals, рекомендації
- GTmetrix — водопад завантаження, filmstrip, регіони тестування
- WebPageTest — детальний HAR, відео завантаження, тестування з різних локацій
- Lighthouse CLI — запуск з командного рядка для автоматизації
Внутрішні (серверна сторона):
- Query Monitor — плагін, SQL-запити, гаки, час PHP
- New Relic APM — профайлер PHP
- Blackfire — детальне профайлювання функцій
Методологія аудиту
1. Вимірити базові метрики до оптимізації:
# Lighthouse CLI
npx lighthouse https://yourdomain.com \
--output json \
--output-path ./audit-before.json \
--chrome-flags="--headless"
# TTFB через curl
curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
https://yourdomain.com
2. Аналіз серверного часу (Query Monitor):
Встановити Query Monitor, відкрити будь-яку сторінку, перевірити:
- Total query time (мета: < 50 мс)
- Number of queries (мета: < 30)
- Повільні запити (> 5 мс кожен)
- Duplicate queries (однаковий запит кілька разів)
3. Аналіз PHP:
# Увімкнути slow log PHP-FPM
; /etc/php/8.3/fpm/pool.d/www.conf
slowlog = /var/log/php-fpm-slow.log
request_slowlog_timeout = 2s
4. Аналіз MySQL:
-- Увімкнути slow query log
SET GLOBAL slow_query_log = ON;
SET GLOBAL long_query_time = 0.5;
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
-- Аналіз через mysqldumpslow
mysqldumpslow -s t -t 10 /var/log/mysql/slow.log
Типові знахідки та їхній вплив
| Проблема | Вплив | Виправлення |
|---|---|---|
| Немає OPcache | -40% PHP time | Увімкнути в php.ini |
| Немає Redis/Memcached | -50-70% DB queries | Встановити object cache |
| Немає кешу сторінок | TTFB 500ms+ | WP Rocket / FastCGI cache |
| Неоптимізовані зображення | +2-5 MB на сторінку | WebP + resize |
| Render-blocking JS | LCP +1-3 с | defer/async |
| Autoload options > 1 MB | +200ms на кожен запит | Очищення wp_options |
| Повільний плагін | +300ms | Заміна або оптимізація |
| Немає CDN | +500ms для віддалених користувачів | Cloudflare / BunnyCDN |
| HTTP/1.1 замість HTTP/2 | Множественні RTT | Увімкнути в Nginx |
| Немає gzip/brotli | +200-500 KB трафіку | Увімкнути в Nginx |
Аналіз плагінів
# Профайлювання плагінів через WP-CLI + Blackfire
wp plugin list --fields=name,status --format=csv | while IFS=, read name status; do
if [ "$status" = "active" ]; then
wp eval "
\$start = microtime(true);
do_action('init');
echo '$name: ' . round((microtime(true) - \$start) * 1000) . 'ms\n';
"
fi
done
Core Web Vitals: цільові значення
| Метрика | Добре | Потрібна робота | Погано |
|---|---|---|---|
| LCP (Largest Contentful Paint) | < 2.5 с | 2.5–4 с | > 4 с |
| INP (Interaction to Next Paint) | < 200 мс | 200–500 мс | > 500 мс |
| CLS (Cumulative Layout Shift) | < 0.1 | 0.1–0.25 | > 0.25 |
| TTFB | < 200 мс | 200–800 мс | > 800 мс |
Завершення аудиту
Аудит завершується документом з:
- Вимірюваними метриками (базовою)
- Переліком проблем з пріоритетами
- Конкретними рекомендаціями для кожної
- Прогнозованим результатом після виправлення
Терміни
Аудит продуктивності WordPress-сайту з підготовкою звіту та рекомендацій — 1–2 дні.







