Перейти к основному содержимому

Разработка 19 октября 2026г. 8 мин чтения

Ускорение WordPress: 15 приёмов от кэша до картинок

Ускорение WordPress мы делали на собственном сайте: он работает на этом движке, и путь пройден целиком, а не по чужим статьям. Разбираем 15 приёмов в порядке отдачи: сначала те, что дают секунды, потом те, что дают десятые доли.

Ускорение 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 рублей. Разница в скорости между дешёвым и средним тарифом больше, чем эффект от половины приёмов из этой статьи, а стоит она меньше, чем час работы разработчика.

Порядок работ на два вечера

  1. Замер и скриншот трёх чисел: время ответа, LCP, вес страницы.
  2. Полная копия файлов и базы. Без неё дальше не идём.
  3. Кэш и сжатие, исключения для корзины и кабинета. Замер.
  4. Картинки пачкой: новый формат, разумные размеры, первый экран без отложенной загрузки. Замер.
  5. Плагины по одному: выключили, проверили сайт, замерили.
  6. Версия PHP на копии, потом на боевом.
  7. Шрифты, мелочи ядра, отложенная загрузка чужих скриптов.
  8. Проверка планировщика: назначить тестовую отложенную запись и убедиться, что она вышла вовремя.
  9. Итоговый замер в ту же таблицу, где лежат цифры "до".

Правило одно: одно изменение, одна проверка сайта, один замер. Если поменять пять вещей разом и что-то сломается, искать причину придётся вслепую.

Что из этого действительно даёт секунды

Секунды дают четыре пункта: кэш страниц, картинки, ревизия плагинов и версия PHP. Остальные одиннадцать приёмов набирают в сумме ещё 0,5-1 секунду, и браться за них имеет смысл после первых четырёх. Двухсекундный сайт превращается в полуторасекундный за вечер, а вот шестисекундный за вечер до полутора не доводится: там обычно нужно менять тему или тариф. И любые цифры имеют смысл только рядом с замером до работ, иначе вы улучшаете самочувствие, а не сайт.

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

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

Какой плагин кэширования выбрать для WordPress?

Практическая разница между популярными решениями невелика, важнее правильно настроить исключения. На обычном хостинге берут WP Super Cache или W3 Total Cache, на серверах с LiteSpeed - штатный LiteSpeed Cache, он быстрее за счёт кэша на уровне веб-сервера. Главное правило: не ставить два плагина кэширования одновременно, они конфликтуют и дают пустые страницы.

Насколько ускоряет переход на PHP 8?

На генерации страницы выигрыш обычно составляет 20-40 процентов по сравнению с PHP 7.4, и это бесплатно: версия переключается в панели хостинга. Перед переключением стоит проверить сайт на тестовой копии, потому что старые плагины и темы могут выдавать фатальные ошибки на новой версии.

Почему сайт быстрый в PageSpeed, но медленный на телефоне?

Синтетический тест меряет одну страницу на эталонном канале, а реальный посетитель приходит с мобильного интернета, с включёнными расширениями и часто на страницу с формой или корзиной, которая не кэшируется. Смотреть надо на данные реальных пользователей в Метрике и на полевые показатели Core Web Vitals, а синтетику использовать только для сравнения "до и после".

Может ли ускорение сломать сайт?

Может, поэтому перед работами делают полную копию файлов и базы. Чаще всего ломается вёрстка после агрессивного объединения и отложенной загрузки скриптов, и корзина или личный кабинет после кэширования без исключений. Оба случая лечатся откатом одной настройки, если менять по одному пункту за раз и после каждого проверять сайт.

Вопросы читателей по теме

Все вопросы и ответы

Нужен сайт по этой теме?

Расскажите о задаче – вернёмся с расчётом и предложением структуры.