Ускорение WordPress: что реально влияет на PageSpeed и как это исправить

PageSpeed Insights показывает низкий балл — знакомая ситуация для большинства WordPress-сайтов. В этой статье разберём только те оптимизации, которые реально поднимают Core Web Vitals, без воды и маркетинга плагинов.

Что такое Core Web Vitals и почему они важны

Google использует Core Web Vitals как фактор ранжирования с 2021 года. Три ключевых метрики:

  • LCP (Largest Contentful Paint) — время до отображения главного блока страницы. Цель: < 2.5 сек
  • INP (Interaction to Next Paint) — отзывчивость на ввод. Цель: < 200 мс
  • CLS (Cumulative Layout Shift) — визуальная стабильность. Цель: < 0.1

1. Серверное кеширование — самый большой эффект

Без кеширования каждый запрос — это PHP + MySQL. Со страничным кешем — просто отдача статического HTML.

Лучшие варианты для WordPress на shared-хостинге:

  • LiteSpeed Cache — работает только на LiteSpeed-серверах (Beget, Timeweb), но даёт максимальный прирост
  • WP Super Cache — генерирует статические HTML-файлы, работает на любом Apache/Nginx
  • W3 Total Cache — более гибкий, сложнее настроить правильно

2. Оптимизация изображений

Изображения — главная причина медленного LCP. Что делать:

  • Конвертировать в WebP (на 25–35% меньше PNG/JPG при том же качестве)
  • Добавить loading="lazy" для изображений ниже первого экрана
  • Для главного изображения (LCP-элемент) — fetchpriority="high", не lazy
  • Указывать точные width и height для предотвращения CLS

Главное изображение


Галерея

3. Устранение рендер-блокирующих ресурсов

JS и CSS в <head> блокируют отображение страницы. Правила:

  • Все скрипты — в футер (параметр true в wp_enqueue_script)
  • Критический CSS — inline в <head>, остальной CSS — загружать асинхронно
  • Использовать defer или async для JS, который не нужен сразу

4. GZIP/Brotli сжатие

Добавьте в .htaccess (Apache):

# Gzip

    AddOutputFilterByType DEFLATE text/html text/css application/javascript
    AddOutputFilterByType DEFLATE application/json image/svg+xml


# Кеширование статики в браузере

    ExpiresActive On
    ExpiresByType image/webp "access plus 1 year"
    ExpiresByType text/css  "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"

5. Уменьшение количества HTTP-запросов

  • Объединять CSS-файлы в один (плагины Autoptimize, Asset CleanUp)
  • Удалить неиспользуемые плагины — каждый добавляет скрипты и стили
  • Использовать Gonzales (уже установлен на вашем сайте) для отключения ненужных ассетов на конкретных страницах

6. Оптимизация базы данных

WordPress накапливает мусор: ревизии постов, автосохранения, мета удалённых постов. Запросы для очистки:

-- Удалить все ревизии постов
DELETE FROM wp_posts WHERE post_type = "revision";

-- Удалить мусорные meta удалённых постов
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.ID IS NULL;

-- Оптимизировать таблицы
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options;

7. Устранение CLS

CLS возникает, когда элементы сдвигаются после загрузки страницы. Частые причины:

  • Изображения без указанных width/height
  • Баннеры и реклама без зарезервированного места
  • Кастомные шрифты, вызывающие FOUT (Flash of Unstyled Text)

Для шрифтов используйте font-display: swap и предзагрузку:

Итог: чеклист оптимизации

  • ✅ Установить плагин кеширования (LiteSpeed Cache или WP Super Cache)
  • ✅ Конвертировать изображения в WebP
  • ✅ Перенести JS в футер
  • ✅ Включить GZIP и браузерное кеширование в .htaccess
  • ✅ Указать width/height у всех изображений
  • ✅ Удалить неиспользуемые плагины
  • ✅ Очистить ревизии и мета в базе данных