MAATRIX / Блог / VPS для WooCommerce: оптимизация магазина

VPS для WooCommerce: оптимизация магазина

Блог MAATRIX · 2026-07-07

WooCommerce мощный, но тяжёлый: корзина, сессии и фильтры каталога грузят базу и PHP. На своём VPS вы можете подкрутить каждый слой. Разберём Redis, тюнинг MariaDB и PHP-FPM и умное кэширование, которое не ломает корзину.

Почему WooCommerce тормозит

['Проблема не в движке, а в динамике: каждая страница корзины и оформления не кэшируется и бьёт по базе. Плюс WordPress хранит опции и сессии в MySQL. Решение — вынести кэш объектов в память и разгрузить диск.', 'На тарифах MAATRIX связка AMD EPYC + NVMe уже снимает главный тормоз медленных магазинов — дисковые операции при чтении опций и мета-полей товаров идут быстро.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для WooCommerce

Redis object cache

['Redis кэширует результаты запросов к базе прямо в оперативке. Ставим сервер и PHP-расширение:', '
apt install redis-server php-redis -y\nsystemctl enable --now redis-server\nsystemctl restart php8.2-fpm
', 'Ограничиваем память Redis и включаем вытеснение старых ключей в /etc/redis/redis.conf:', '
maxmemory 256mb\nmaxmemory-policy allkeys-lru
', '
systemctl restart redis-server
', 'В админке WordPress ставим плагин Redis Object Cache и жмём Enable — или включаем через WP-CLI:', '
wp plugin install redis-cache --activate\nwp redis enable
']

Тюнинг MariaDB

['Магазину нужен буфер InnoDB побольше, чтобы горячие данные каталога жили в памяти. Создаём /etc/mysql/mariadb.conf.d/99-tuning.cnf:', '
[mysqld]\ninnodb_buffer_pool_size = 1G\ninnodb_log_file_size = 256M\ninnodb_flush_log_at_trx_commit = 2\nmax_connections = 150\nquery_cache_type = 0
', '
systemctl restart mariadb
', 'Значение buffer_pool ставьте примерно в половину доступной RAM. Query cache в MariaDB для WooCommerce лучше выключить — он чаще мешает, чем помогает.']

Настройка PHP-FPM под нагрузку

['Дефолтные лимиты PHP-FPM малы для магазина. Правим пул в /etc/php/8.2/fpm/pool.d/www.conf:', '
pm = dynamic\npm.max_children = 20\npm.start_servers = 4\npm.min_spare_servers = 2\npm.max_spare_servers = 6\npm.max_requests = 500
', 'И поднимаем лимиты памяти и времени в php.ini для тяжёлых операций импорта:', '
memory_limit = 256M\nmax_execution_time = 120\nupload_max_filesize = 64M
', '
systemctl restart php8.2-fpm
']

Кэш страниц без поломки корзины

['Кэшировать можно только анонимные страницы. Исключаем корзину, оформление и залогиненных пользователей по cookie в конфиге nginx:', '
set $skip_cache 0;\nif ($request_uri ~* "/cart|/checkout|/my-account|/wp-admin") { set $skip_cache 1; }\nif ($http_cookie ~* "woocommerce_items_in_cart|wordpress_logged_in") { set $skip_cache 1; }\n\nfastcgi_cache_bypass $skip_cache;\nfastcgi_no_cache $skip_cache;
', '
nginx -t && systemctl reload nginx
', '
  • Проверьте, что при добавлении товара в корзину страница перестаёт кэшироваться (заголовок X-Cache: BYPASS).
  • Redis + тюнинг базы легко ускоряют магазин в 2-3 раза без смены темы.
']

Мониторинг и частые ошибки

['После оптимизации важно понимать, что реально происходит на сервере. Посмотрите загрузку в реальном времени — процессор, память и активные процессы:', '
apt install htop -y && htop
', 'Проверьте, что Redis действительно принимает запросы и растёт число попаданий в кэш:', '
redis-cli info stats | grep keyspace
', 'Типичная ошибка магазинов — оставить в WooCommerce неограниченное хранение сессий и логов, из-за чего таблица wp_options и постмета разрастаются на гигабайты. Регулярно чистите транзиенты через WP-CLI:', '
wp transient delete --all\nwp db optimize
', 'Вторая частая проблема — тяжёлые фильтры каталога, которые делают полный перебор таблиц. Здесь спасает индекс в базе и достаточный буфер InnoDB из прошлого раздела. И помните: сколько бы вы ни кэшировали, при реально высоком трафике упирается всё в железо — на AMD EPYC + NVMe у MAATRIX магазин держит наплыв покупателей в распродажу, где слабый shared-хостинг просто ложится.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для WooCommerce

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

Redis или Memcached для WooCommerce?

Redis предпочтительнее: он персистентный, поддерживает больше типов данных и лучше интегрирован с популярным плагином object cache. Разница в скорости для WooCommerce минимальна.

Сколько RAM нужно магазину на WooCommerce?

От 4 ГБ для комфортной работы: 1 ГБ под InnoDB, память под PHP-воркеры и Redis. При росте каталога и трафика — 8 ГБ. На MAATRIX план масштабируется без переезда.

Не будет ли Redis отдавать устаревшие цены?

Нет: object cache инвалидируется при изменении товара. Кэшируется результат запроса, а не сама страница, и WooCommerce корректно сбрасывает ключи при обновлении.