Как ускорить сайт на WordPress: практическая диагностика медленной загрузки

Практическая диагностика медленного WordPress: ищем конкретное узкое место и повторяем измерение после каждого изменения.

Если WordPress работает медленно, не начинайте с установки ещё одного плагина оптимизации. Предположим, что очевидные вещи уже проверены: изображения не весят по 5–10 МБ, базовое кеширование включено, а на странице нет гигантского видео или другого статического файла. Если сайт одновременно открывается с ошибками или не загружается, сначала полезно пройти диагностику неработающего сайта WordPress.

Если сайт после этого всё равно медленный, нужно искать конкретное место, где теряется время. Практическая последовательность:

измерить
↓
отделить backend от frontend
↓
проверить сервер → PHP → БД
↓
найти плагин / запрос → тему → cron
↓
проверить кеш и Cloudflare
↓
проверить frontend
↓
измерить снова

После каждого изменения должен быть повторный замер. Иначе невозможно понять, действительно ли сайт стал быстрее.

Сначала измерьте реальную скорость сайта

Не начинайте с ощущения «WordPress какой-то тормозной». Нужна цифра. В Chrome DevTools откройте Network, включите Disable cache и перезагрузите страницу. Сначала смотрите запрос основного HTML-документа.

F12
→ Network
→ Disable cache
→ перезагрузить страницу

Для независимого замера используйте TTFB через curl:

curl -o /dev/null -s \
  -w "TTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
  https://example.ru/

Проведите несколько одинаковых замеров: один запрос может попасть в кеш, выполняться на холодном PHP-процессе или совпасть с фоновой нагрузкой.

↑ К оглавлению

Поймите, тормозит backend или frontend

Если Document ждёт ответа сервера 3.2 секунды, сначала проверяйте сервер, PHP, WordPress, базу, плагины, тему и внешние API. Если HTML приходит за 220 ms, но полная загрузка занимает 6.5 секунды, проверяйте JavaScript, CSS, шрифты, виджеты, сторонние скрипты и DOM.

Сравните несколько URL: если главная и статьи быстрые, а checkout занимает 4.9 секунды, проблема локализована вокруг checkout. Если медленный весь сайт и /wp-admin/, подозревайте общую часть bootstrap, PHP, БД или глобальный плагин.

TTFB: 3.820s
Total: 3.910s
↑ К оглавлению

Проверьте сервер: CPU, RAM и диск

На VPS проверьте free -h и значения available и swap, затем df -h для разделов WordPress, MySQL/MariaDB и логов. Нагрузку покажут uptime, top или htop. Важно понять, кто потребляет CPU: php-fpm, mysqld, nginx или другой процесс.

Сравните статический файл, например /style.css, с /. Если статика отдаётся за 35 ms, а WordPress за 3400 ms, сеть, TLS и web server, вероятно, работают, а проблема начинается в PHP, WordPress или БД. Если медленный даже статический файл, CMS пока лучше не трогать.

↑ К оглавлению

Проверьте PHP и PHP-FPM

Проверить стоит версию PHP, PHP-FPM, workers, memory_limit, timeouts, error log и slow log. Не надо ставить новый PHP «наверняка»: старый плагин или тема могут оказаться несовместимы.

Ищите в логах Fatal error, Allowed memory size exhausted, Maximum execution time exceeded и upstream timed out. Если PHP упирается в timeout или память, минификация JavaScript проблему не исправит.

↑ К оглавлению

Найдите медленный плагин или внешний запрос

На staging или при контролируемой диагностике Query Monitor помогает увидеть время генерации, SQL queries, HTTP API calls, PHP errors и hooks. Аномалия важнее количества таблиц: например, HTTP-запрос к CRM занял 2.7 секунды.

Проверяйте конкретный плагин, а не отключайте всё. Сценарий «обновили Plugin X → сайт стал медленным → отключили только Plugin X → время снизилось с 3.1 до 0.7 s» даёт доказательство. Внешний CRM, доставка, платежи, SMTP, антиспам или custom API могут синхронно задерживать HTML.

↑ К оглавлению

Проверьте базу данных

Ищите долгий SELECT, повторяющиеся queries, большое количество SQL, тяжёлые meta queries, autoloaded options и WooCommerce queries. Особенно часто проверяют wp_options, wp_postmeta и таблицы WooCommerce.

Не начинайте с кнопки Optimize Database. Для autoloaded options сначала определите владельца данных, сделайте backup и поймите назначение. Удалять записи удалённых плагинов или serialized objects только по названию нельзя.

↑ К оглавлению

Поймите, не тормозит ли сама тема

Тяжёлая тема может одновременно использовать page builder, гигантский CSS bundle, несколько JavaScript libraries, slider, animations, огромный DOM и код функций, которых на странице нет. В таком случае cache, Redis, CDN и минификация дадут всё меньший эффект.

На staging сделайте одинаковый замер текущей страницы и лёгкой тестовой темы: сравните TTFB, Page load, DOM и JS. Если переход с 5.8 до 1.7 секунды подтверждён замером, тему нельзя игнорировать. Если при этом отдельно тормозит вход в административную часть, сравните её с инструкцией по проблемам входа в админку WordPress. Не обещайте ускорить любой WordPress без изменения темы до диагностики.

↑ К оглавлению

Проверьте WP-Cron и фоновые задачи

Проверьте WP-Cron, scheduled events, WooCommerce Action Scheduler и очереди интеграций. Подозрительны тысячи pending actions или задача, которая падает, запускается снова и создаёт нагрузку.

Не очищайте очередь целиком: определите задачу, плагин-владелец и причину, по которой она не завершается.

↑ К оглавлению

Проверьте кеш и Cloudflare

Сравнивайте cached request и uncached request: кеш может дать 70 ms, а origin — 3.8 s. Для WooCommerce нельзя бездумно кешировать /cart/, /checkout/, /my-account/ и персональные данные.

Cloudflare CDN хорошо доставляет CSS, JS, изображения и шрифты. APO может кешировать HTML WordPress на edge, но HIT не означает, что origin, PHP, админка или checkout стали быстрее.

curl -svo /dev/null \
  -A "CF" "https://example.ru/" \
  -H "accept: text/html" 2>&1 \
  | grep 'cf-cache-status\|cf-edge\|cf-apo-via'

Ищите cf-cache-status, cf-apo-via и cf-edge-cache. Cookies могут правильно приводить к BYPASS. Проверяйте один слой кеша за раз и не включайте Cache Everything для WordPress/WooCommerce вслепую.

↑ К оглавлению

Проверьте frontend и изображения

Базовую оптимизацию изображений считаем выполненной, но в Network полезно проверить размер ресурсов. Если вся графика занимает 800 KB, а TTFB равен 3.5 s, обсуждать WebP бессмысленно. Когда HTML приходит быстро, проверяйте размер JS, long tasks, DOM, layout, rendering и third-party scripts.

размер JS
длительные tasks
количество scripts
DOM size
layout / rendering
third-party scripts
↑ К оглавлению

Не гонитесь за PageSpeed 100

Цель — быстрый реальный сайт, а не 100/100 любой ценой. Нельзя ради пары баллов ломать checkout, задерживать нужный JavaScript, портить форму или агрессивно кешировать динамический контент.

↑ К оглавлению

Практический порядок ускорения WordPress

1. DevTools Network → 2. TTFB через curl → 3. сравнить страницы
4. статический файл vs WordPress → 5. CPU / RAM / disk
6. PHP / PHP-FPM → 7. Query Monitor / logs → 8. SQL queries
9. HTTP API calls → 10. плагины → 11. тема → 12. WP-Cron
13. cache HIT vs MISS → 14. Cloudflare / APO → 15. JS / DOM
16. повторный замер
↑ К оглавлению

После каждого изменения измеряйте снова

Если было TTFB = 3.1 s, после отключения одного проблемного HTTP-запроса стало 0.8 s, результат доказан. Если было 3.1 s и стало 3.0 s, эта оптимизация почти ничего не изменила.

ДО                         ПОСЛЕ
Home TTFB      2.8 s       Home TTFB      0.5 s
Article TTFB   2.6 s       Article TTFB   0.5 s
Checkout TTFB  4.9 s       Checkout TTFB  1.3 s
Page load      6.2 s       Page load      2.0 s
↑ К оглавлению

Частые вопросы

Как быстро понять, почему WordPress медленный?

Зафиксируйте TTFB, время полной загрузки и сравните несколько страниц. Затем отделите backend от frontend и проверяйте сервер, PHP, базу, плагины и внешние запросы по очереди.

Всегда ли можно ускорить WordPress без замены темы?

Нет. Если сама тема создаёт большой DOM, тяжёлый CSS и JavaScript, её архитектура может быть главным узким местом. Это нужно подтвердить одинаковыми замерами на staging.

Какой плагин лучше всего ускоряет WordPress?

Универсального ответа нет. Сначала найдите конкретную причину и повторным замером подтвердите эффект одного изменения, а не устанавливайте плагины наугад.

Поможет ли более мощный сервер?

Только если ресурсы сервера действительно являются узким местом. Сначала проверьте CPU, RAM, swap, диск, PHP и базу данных, иначе перенос может не изменить результат.

Redis ускоряет WordPress?

Redis может помочь в подходящем сценарии, но не исправит медленный внешний API, тяжёлую тему или конкретный плохой SQL-запрос. Эффект нужно измерить до и после.

Почему сайт быстрый, а админка WordPress медленная?

Админка может выполнять другие запросы, работать с большим числом плагинов, cron-задач или тяжёлой базой. Сравнивайте frontend, /wp-admin/ и конкретные запросы.

Cloudflare ускоряет WordPress?

Cloudflare хорошо ускоряет доставку статики, а APO может отдавать кешированный HTML с edge. Но cache HIT не означает, что origin, PHP или checkout стали быстрее.

Можно ли получить PageSpeed 100?

Цель — быстрый реальный пользовательский сценарий, а не число любой ценой. Нельзя ради баллов ломать checkout, формы, нужный JavaScript или динамический контент.

↑ К оглавлению

Если WordPress всё равно работает медленно

После нормальной диагностики должно появиться конкретное узкое место: сервер, PHP, SQL query, plugin, API, тема, checkout или frontend.

Если сайт коммерческий, особенно WooCommerce с оплатами и интеграциями, перед изменениями лучше иметь backup, не отключать компоненты массово и проверять один шаг за другим.

↑ К оглавлению