Скорость загрузки - это конкретные метрики в PageSpeed Insights и GTmetrix, а не ощущение «вроде быстро открывается». Разобравшись, как ускорить сайт на WordPress без урезания функционала, экономишь не секунды ради красивой цифры в отчёте, а конверсию: на проектах с интернет-магазином на WooCommerce я не раз видел, как лишняя секунда до отклика сервера роняла долю успешных оформлений заказа на 10-15%. Ниже - порядок действий, который я применяю на реальных сайтах: от диагностики до чистки базы данных, без плагинов «на автомате» и без урезания того, что реально нужно клиенту.
С чего начать диагностику скорости сайта на WordPress
Первым делом смотрю не на итоговый балл в PageSpeed Insights, а на конкретные метрики Core Web Vitals: LCP (отрисовка главного элемента) укладывается в 2,5 секунды, CLS (смещение вёрстки) - ниже 0,1, INP (отклик на действие пользователя) - до 200 мс. Балл 60 из 100 может скрывать за собой один тяжёлый скрипт, а балл 90 - не гарантировать, что реальный посетитель на слабом мобильном интернете дождётся загрузки.
Аудит я делаю в три слоя:
- Сервер - время ответа до первого байта (TTFB), через вкладку Network в devtools или сервис WebPageTest
- Фронтенд - вес страницы, число запросов, блокирующие рендер скрипты и стили
- База данных - количество запросов на страницу через Query Monitor
На одном проекте с WooCommerce и интеграцией эквайринга Т‑Банка карточка товара весила 4,2 МБ - из-за неоптимизированных фотографий и трёх разных версий jQuery, которые тянули за собой конкурирующие плагины. После чистки страница похудела до 900 КБ без единого визуального изменения для покупателя.
Хостинг и сервер как основа производительности WordPress
Никакое кеширование не спасёт, если TTFB держится на уровне 700-900 мс - это узкое место самого сервера, а не фронтенда. На практике разница между дешёвым виртуальным хостингом и нормально настроенным VPS с NGINX и PHP-FPM - это TTFB 800 мс против 150-200 мс на том же сайте с тем же контентом.
Что реально влияет на скорость на уровне сервера:
- PHP 8.2-8.3 вместо устаревшего 7.4 - прирост на типовых запросах WordPress в среднем 20-30%
- OPcache - кеш скомпилированного PHP-кода, без него каждый запрос заново парсит все файлы движка
- Объектное кеширование через Redis или Memcached - критично для сайтов с большим количеством запросов к базе (маркетплейсы, каталоги на 5000+ товаров)
- HTTP/2 или HTTP/3 на сервере - параллельная загрузка ресурсов вместо очереди
Если хостинг не даёт доступа к настройке OPcache или PHP-FPM, а это часто бывает на массовых shared-тарифах, разговор с поддержкой хостера - первый шаг, а не установка очередного плагина ускорения.
Кеширование страниц и CDN для ускорения загрузки
Кеширование страниц и объектное кеширование - разные вещи, и путать их не стоит. Плагин кеширования страниц отдаёт готовый HTML вместо того, чтобы каждый раз собирать страницу через PHP и запросы к базе. Разница ощутима сразу: на одном из моих проектов включение WP Rocket снизило время генерации страницы с 1,8 секунды до 300 мс.
| Плагин | Кому подходит | Особенность |
|---|---|---|
| WP Rocket | Коммерческие сайты, интернет-магазины | Платный, но настройка «из коробки» без конфликтов с большинством тем |
| LiteSpeed Cache | Сайты на хостинге с сервером LiteSpeed | Бесплатный, встроенная оптимизация изображений и объектный кеш |
| WP Super Cache | Простые блоги и лендинги | Бесплатный, минимум настроек, меньше гибкости |
| W3 Total Cache | Проекты с нестандартной инфраструктурой | Много настроек вручную, легко сломать при неверной конфигурации |
CDN добавляю отдельно от кеширования страниц - он раздаёт статику (изображения, CSS, JS, шрифты) с серверов, географически ближе к посетителю. Для аудитории в основном по России смысла в западных CDN немного, лучше смотреть на сети с точками присутствия в РФ - разница в задержке для регионального трафика бывает в 2-3 раза.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Оптимизация изображений и медиаконтента
Изображения обычно дают 50-70% веса страницы, и здесь экономия самая заметная. Что делаю в первую очередь:
- Конвертация в WebP или AVIF - при том же визуальном качестве файл легче на 25-50%
- Отдача правильного размера через srcset, а не одной картинки 3000px на все устройства
- Lazy loading для всего, что ниже первого экрана - атрибут loading=“lazy” браузеры поддерживают нативно, без плагинов
- Отложенная загрузка встроенных виджетов вроде карты СДЭК или калькулятора доставки - такие скрипты часто грузятся синхронно и блокируют рендер, хотя нужны пользователю только при переходе к оформлению заказа
На одном интернет-магазине виджет выбора пункта выдачи СДЭК подключался на каждой странице сайта, включая главную, хотя использовался только на странице оформления заказа. Перенос скрипта на нужную страницу и отложенная инициализация убрали 600 КБ и два блокирующих запроса с главной страницы без изменения функционала доставки.
Плагины и скрипты: что отключить без потери функционала
Лишние плагины - самая частая причина медленного WordPress. На аудитах регулярно нахожу 3-4 плагина, дублирующих функции друг друга: два SEO-плагина одновременно, три конструктора форм, отдельный плагин для того, что закрывает тема. Через Query Monitor смотрю, какой плагин добавляет лишние запросы к базе или подключает скрипты на страницах, где они не используются.
Часть скриптов WordPress подключает по умолчанию, хотя они нужны не всем - например, эмодзи-скрипт, который грузится на каждой странице ради поддержки emoji в старых браузерах. Отключается коротким сниппетом в functions.php:
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
Готовые проверенные сниппеты для таких точечных отключений - без риска сломать админку - я собираю в библиотеке готовых скриптов, если не хочется руками разбираться в hook-ах WordPress.
Объединение и минификация CSS/JS раньше были обязательной практикой, но на HTTP/2 и HTTP/3 эффект от неё слабее - параллельная загрузка нескольких мелких файлов часто быстрее одного большого. Проверяю это тестами до и после, а не по умолчанию включаю минификацию везде.
База данных и регулярное обслуживание WordPress
База данных со временем обрастает мусором: черновики и ревизии постов, просроченные transient-записи, спам-комментарии, логи от отключенных плагинов. На сайте с пятилетней историей я как-то находил таблицу wp_options на 40 МБ из одних автозагружаемых transient-записей - это напрямую увеличивает время каждого запроса к базе, даже на простой странице.
Что чищу регулярно:
- Ревизии постов - WordPress по умолчанию хранит их без ограничения, ограничиваю до 3-5 через wp-config.php
- Просроченные transients
- Таблицы от удалённых плагинов, которые сами себя не подчищают при деактивации
- wp-cron - на посещаемых сайтах лучше вынести на серверный cron вместо запуска при каждом визите
Такое обслуживание не разовая акция, а процесс: раз в квартал я возвращаюсь на сопровождаемые проекты и повторяю аудит, потому что база и плагины снова обрастают тем же самым. Если держать это на себе не хочется, беру такие сайты на техподдержку от 15 000 ₽/мес - туда входит и мониторинг скорости, и чистка базы, и обновления без падения функционала.
Если сайт медленный не из-за накопленного мусора, а изначально собран на тяжёлом конструкторе-теме с десятком встроенных модулей, дешевле и быстрее пересобрать его на чистом стеке, чем бесконечно оптимизировать то, что не предназначено для скорости - такой сайт на WordPress под конкретные задачи я делаю от 60 000 ₽.
Корпоративный сайт, каталог, блог
Фронтенд + Бэкенд
от 60 000 ₽
Подробнее →Частые вопросы
Сколько времени занимает ускорение сайта на WordPress?
Базовый аудит и настройка кеширования, CDN и оптимизации изображений - 3-5 рабочих дней. Если проблема в хостинге или архитектуре сайта (например, тяжёлая тема с десятками виджетов), срок растягивается до 2-3 недель, потому что часть решений требует переноса на другой сервер или замены компонентов.
Может ли ускорение сайта сломать существующий функционал?
Может, если менять всё разом без тестов на копии сайта. Я всегда проверяю изменения на staging-версии: включаю кеширование, тестирую формы, оплату, корзину, и только после этого переношу настройки на боевой сайт. Особенно осторожно с объединением JS-файлов - там чаще всего ломаются интерактивные элементы.
Достаточно ли установить плагин кеширования, чтобы сайт стал быстрым?
Плагин кеширования закрывает только часть проблемы - генерацию страницы. Если TTFB сервера 800 мс, а изображения весят по 2 МБ, плагин кеширования эту часть не исправит. Реальное ускорение почти всегда состоит из 3-4 независимых мер сразу: сервер, кеш, изображения, чистка плагинов и базы.
Как ускорить сайт на WordPress с интернет-магазином без замены темы?
Начинаю с того же аудита: смотрю, какие скрипты грузятся на каждой странице, хотя нужны только в корзине или на оформлении заказа (виджеты доставки, платёжные скрипты эквайринга). Отложенная загрузка таких скриптов и оптимизация изображений товаров обычно дают 30-40% прироста скорости без единого визуального изменения темы.