Ускорение WordPress мы делали на собственном сайте: он работает на этом движке, и путь пройден целиком, а не по чужим статьям. Разбираем 15 приёмов в порядке отдачи: сначала те, что дают секунды, потом те, что дают десятые доли.
Сам движок не медленный. Медленным его делают тридцать плагинов, тема на конструкторе, фотографии по 4 МБ прямо из камеры и хостинг с PHP 7.4. Типичный сайт, который приносят на доработку, открывается на телефоне за 5-7 секунд, и три четверти этого времени объясняются четырьмя вещами из списка ниже.
Приёмы дальше пронумерованы. Общие для любого движка вещи мы разбирали в статье Как ускорить сайт до 1,5 секунды, здесь только то, что специфично для WordPress.
С чего начать: три цифры "до"
Пока нет замера, любые работы превращаются в веру. Записать надо три числа, и лучше скриншотом с датой.
Время ответа сервера. Оно же TTFB. Показывает, сколько движок собирает страницу. Норма после настройки кэша - до 300 мс, до работ обычно 1,2-2 секунды.
LCP. Время появления главного элемента экрана. Целевое значение - до 2,5 секунды, подробно про эту метрику и её соседей писали в разборе Core Web Vitals.
Вес страницы. Открыть панель разработчика, вкладку сети, обновить страницу с очисткой кэша. Нормальный вес главной - 1-1,5 МБ, у запущенных сайтов бывает 6-8 МБ.
Дополнительно поставьте на время работ плагин Query Monitor: он показывает количество запросов к базе и время генерации страницы. Двести запросов на простой странице означают, что дело в плагинах, а не в хостинге. Чем ещё мерить и как читать отчёты, разбирали в статье про инструменты проверки скорости.
Приёмы 1-3: кэш и сжатие
Это половина результата и примерно час работы.
1. Кэш страниц. Плагин сохраняет готовый HTML и отдаёт его следующим посетителям, минуя PHP и базу. Время ответа падает с 1,5-2 секунд до 0,1-0,3. Риск один: закэшированные корзина, оформление заказа и личный кабинет. Эти адреса добавляются в исключения до включения кэша, а не после жалоб клиентов.
2. Сжатие ответа. Gzip или brotli уменьшают HTML, CSS и скрипты в 3-5 раз. Включается на стороне хостинга или тем же плагином кэша. Рисков нет, выигрыш 100-300 мс на медленном канале.
3. Кэш объектов. Redis или Memcached держат результаты запросов к базе в памяти. Имеет смысл на магазинах и сайтах с личными кабинетами, где страницы плохо кэшируются целиком. На визитке из десяти страниц разницу вы не заметите.
| Приём | Что даёт | Чем рискуете |
|---|---|---|
| Кэш страниц | 1-1,7 секунды | Кэш динамических страниц |
| Сжатие | 100-300 мс | Практически ничем |
| Кэш объектов | 100-300 мс на тяжёлых страницах | Устаревшие данные в кабинете |
| WebP и размеры картинок | 0,5-2 секунды на мобильном | Битые картинки без запасного формата |
Приёмы 4-6: картинки
Обычно это половина веса страницы, и правится пачкой за один вечер.
4. Современный формат. Мы перегнали 226 файлов PNG в WebP: 188 МБ превратились в 7,2 МБ. Плоская векторная графика жмётся почти на 96 процентов, фотографии скромнее, на 30-50 процентов. Важная деталь: рядом с новым файлом надо оставить старый как запасной вариант, иначе на редком браузере посетитель увидит пустое место вместо картинки.
5. Размер под место вывода. Снимок 3000 пикселей по ширине, вставленный в блок шириной 600, грузится полностью. WordPress делает уменьшенные копии сам, но только если в шаблоне запрошен нужный размер. Проверьте, что в карточках и превью не отдаётся оригинал.
6. Отложенная загрузка. Движок ставит её автоматически, и это правильно для всего, кроме первого экрана. Картинку в шапке нужно, наоборот, грузить сразу: отложенная загрузка главного изображения ухудшает LCP на 300-600 мс.
Приёмы 7-9: плагины, тема, лишнее из ядра
7. Ревизия плагинов. Выключайте по одному и замеряйте. Обычно два-три расширения дают половину нагрузки: универсальные конструкторы форм, слайдеры, счётчики посещений внутри админки. Про то, что стоит держать и от чего избавляться, есть отдельный разбор плагинов WordPress.
8. Лёгкая тема. Тема на конструкторе страниц добавляет 300-700 КБ стилей и скриптов на каждую страницу, даже если конструктором собран один блок. Наша собственная тема сверстана руками и переиспользует те же три файла стилей, что и остальные проекты студии.
9. Отключение встроенных мелочей. Скрипт эмодзи, встраивание чужих записей, jQuery Migrate, служебные ссылки в шапке документа. По отдельности ерунда, вместе 40-80 КБ и несколько лишних запросов. Отключается десятью строками в файле темы.
Приёмы 10-11: шрифты и чужие скрипты
10. Шрифты. Два начертания вместо шести, подключение неблокирующее, чтобы текст рисовался сразу, а не после загрузки файла. У нас Onest и Open Sans грузятся именно так, выигрыш на LCP получился в пределах 200-400 мс.
11. Чужие скрипты. Метрика, онлайн-чат, виджет отзывов, карта. Каждый добавляет 50-200 КБ и свои обращения к сторонним серверам. Карту и чат разумно грузить по действию посетителя или через 3-5 секунд после открытия страницы, а не сразу.
Приёмы 12-15: база, PHP, CDN, мониторинг
12. Чистка базы. Ревизии записей, автосохранения, спам в комментариях, просроченные временные значения и логи плагинов. У сайта, который живёт пять лет, база худеет вдвое. Число ревизий на статью полезно ограничить пятью, иначе одна статья хранится в базе тридцатью копиями.
13. Версия PHP. Переход с 7.4 на 8.2 или 8.3 даёт 20-40 процентов на генерации страницы и переключается в панели хостинга за минуту. Сначала проверяем на копии: старые плагины на новой версии иногда падают с фатальной ошибкой.
14. CDN. Помогает, когда аудитория размазана по стране и по миру. Для бизнеса, который работает в Петербурге и области, выигрыш измеряется десятками миллисекунд и не окупает возню. Тарифы и требования к площадке разбирали в статье про хостинг для WordPress.
15. Мониторинг. Через полгода после ускорения кто-нибудь поставит слайдер, а редактор зальёт фотографию весом 5 МБ. Замер раз в месяц с записью в таблицу стоит пятнадцати минут и ловит это на второй неделе, а не когда позиции просели.
Кэш и плановые задачи: грабли, на которых мы посидели
Планировщик WordPress запускается обращениями к сайту. Когда включён кэш страниц, посетитель получает готовый HTML и PHP не выполняется вообще, поэтому планировщик может неделями не просыпаться на малопосещаемом сайте.
Симптомы выглядят как что угодно, только не как проблема кэша. Отложенные записи висят в статусе "запланировано" сутками после назначенного времени. Автоматические бэкапы не делаются. Письма из форм уходят с задержкой.
Лечится так: встроенный запуск планировщика отключается константой в конфигурации, а вместо него служебный адрес дёргается по расписанию раз в 15-30 минут. Задачу ставят в планировщик хостинга, а если его нет в тарифе, подойдёт любой внешний сервер или бесплатный сервис проверки доступности. У нас эту роль выполняет отдельная машина, которая обращается к сайту каждые полчаса.
Когда упор уже не в движок
Признаки потолка площадки: время ответа не опускается ниже 800 мс даже на полностью закэшированной странице, сайт ложится при трёх десятках одновременных посетителей, админка тормозит на любом действии. Ускорять тут больше нечего, дело в соседях по серверу и в лимитах тарифа.
Ориентир по деньгам на 2026 год: обычный виртуальный хостинг стоит 250-600 рублей в месяц, тариф с выделенными ресурсами или небольшой VPS - 700-2 000 рублей. Разница в скорости между дешёвым и средним тарифом больше, чем эффект от половины приёмов из этой статьи, а стоит она меньше, чем час работы разработчика.
Порядок работ на два вечера
- Замер и скриншот трёх чисел: время ответа, LCP, вес страницы.
- Полная копия файлов и базы. Без неё дальше не идём.
- Кэш и сжатие, исключения для корзины и кабинета. Замер.
- Картинки пачкой: новый формат, разумные размеры, первый экран без отложенной загрузки. Замер.
- Плагины по одному: выключили, проверили сайт, замерили.
- Версия PHP на копии, потом на боевом.
- Шрифты, мелочи ядра, отложенная загрузка чужих скриптов.
- Проверка планировщика: назначить тестовую отложенную запись и убедиться, что она вышла вовремя.
- Итоговый замер в ту же таблицу, где лежат цифры "до".
Правило одно: одно изменение, одна проверка сайта, один замер. Если поменять пять вещей разом и что-то сломается, искать причину придётся вслепую.
Что из этого действительно даёт секунды
Секунды дают четыре пункта: кэш страниц, картинки, ревизия плагинов и версия PHP. Остальные одиннадцать приёмов набирают в сумме ещё 0,5-1 секунду, и браться за них имеет смысл после первых четырёх. Двухсекундный сайт превращается в полуторасекундный за вечер, а вот шестисекундный за вечер до полутора не доводится: там обычно нужно менять тему или тариф. И любые цифры имеют смысл только рядом с замером до работ, иначе вы улучшаете самочувствие, а не сайт.
Если разбираться самому некогда, ускорение и последующий присмотр за скоростью входят в наши работы по поддержке сайтов: замеряем, приводим в порядок и раз в месяц проверяем, что результат не разъехался.

