Оптимизация производительности WordPress (кэширование, БД)

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Оптимизация производительности WordPress (кэширование, БД)
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Оптимизация производительности WordPress (кэширование, БД)

WordPress с дефолтными настройками медленный: каждый запрос к странице выполняет 30–100 SQL-запросов, загружает десятки плагинов и генерирует HTML заново. Правильная оптимизация даёт Time to First Byte < 200 мс и Core Web Vitals в зелёной зоне.

Аудит: что тормозит

Перед оптимизацией — измерение. Инструменты:

  • Query Monitor (плагин) — показывает все SQL-запросы, хуки, медленные запросы по каждой странице
  • New Relic или Tideways — профилировщик PHP для production
  • GTmetrix / PageSpeed Insights — внешние метрики

Типичные причины медленной работы:

  1. Нет PHP OPcache
  2. Нет object cache (Memcached/Redis)
  3. Медленные плагины (плагин ≠ виновник, но WP_Query внутри — часто)
  4. Таблица wp_options с тысячами autoload-опций
  5. Огромная таблица wp_postmeta
  6. Нет кэширования страниц

PHP OPcache

# /etc/php/8.3/fpm/conf.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=0          ; 0 в production (не проверяем изменения)
opcache.validate_timestamps=0      ; 0 в production
opcache.fast_shutdown=1
opcache.jit=tracing
opcache.jit_buffer_size=64m

Прирост от OPcache — 30–50% снижение времени выполнения PHP.

Redis для object cache

apt install redis-server
# В WordPress
composer require wpackagist-plugin/redis-cache

wp-config.php:

define('WP_CACHE_KEY_SALT', 'yourdomain.com_');
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_DATABASE', 0);
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);

Redis кэширует результаты WP_Query, опции (get_option), данные пользователей. Повторный запрос к одной странице: с Redis — 1–5 SQL-запросов вместо 30–100.

Кэширование страниц

Для высоконагруженных сайтов — Nginx FastCGI Cache (минуя PHP полностью):

fastcgi_cache_path /var/cache/nginx/wordpress levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

server {
    location ~ \.php$ {
        fastcgi_cache WORDPRESS;
        fastcgi_cache_valid 200 301 302 60m;
        fastcgi_cache_bypass $skip_cache;
        fastcgi_no_cache $skip_cache;

        # Не кэшируем авторизованных пользователей и корзину
        set $skip_cache 0;
        if ($http_cookie ~* "wordpress_logged_in|woocommerce_cart_hash") {
            set $skip_cache 1;
        }
        if ($request_method = POST) { set $skip_cache 1; }

        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        # ...
    }
}

Кэшированные страницы отдаются с TTFB < 10 мс.

Очистка базы данных

-- Удаление старых ревизий (оставить последние 5 на пост)
DELETE p FROM wp_posts p
LEFT JOIN (
    SELECT ID FROM wp_posts
    WHERE post_type = 'revision'
    ORDER BY post_date DESC
    LIMIT 5
) keep ON p.ID = keep.ID
WHERE p.post_type = 'revision' AND keep.ID IS NULL;

-- Удаление орфанных postmeta
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.ID IS NULL;

-- Анализ autoload options (причина медленного get_option)
SELECT option_name, LENGTH(option_value) as size
FROM wp_options
WHERE autoload = 'yes'
ORDER BY size DESC
LIMIT 20;

-- Отключить autoload для ненужных опций
UPDATE wp_options SET autoload = 'no'
WHERE option_name IN ('_transient_some_plugin_cache', 'some_large_option');

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

// Конвертация в WebP при загрузке (через Imagick)
add_filter('wp_handle_upload', function (array $upload): array {
    if (!str_starts_with($upload['type'], 'image/')) return $upload;

    $image = new Imagick($upload['file']);
    $image->setImageFormat('webp');
    $image->setOption('webp:lossless', 'false');
    $image->setCompressionQuality(82);

    $webp_path = preg_replace('/\.(jpe?g|png)$/i', '.webp', $upload['file']);
    $image->writeImage($webp_path);

    return $upload;
});

Или через плагин ShortPixel / Imagify с интеграцией CDN.

Результаты типичной оптимизации

Метрика До После
TTFB (без кэша) 800–2000 мс 150–400 мс
TTFB (с FastCGI кэшем) 5–15 мс
SQL-запросов на страницу 60–120 5–15
LCP 3–6 с 1–2 с

Сроки

Базовая оптимизация (OPcache, Redis, очистка БД, кэш страниц) — 2–3 дня. Полный аудит с профилировкой и оптимизацией медленных запросов — 5–7 дней.