Блог

Уроки, руководства и новости продукта.

Руководства

Выбор сервера для WooCommerce

3 ноября 2026 4 мин. чтения
Поделиться записью

В официальной документации WooCommerce требуются PHP 8.3 или новее, MySQL 8.0 или MariaDB 10.6 или новее, HTTPS и лимит памяти WordPress не менее 256 МБ. Объём RAM сервера там не указан. Для небольшого магазина разумно начать с 2–4 ГБ RAM (ориентир, который зависит от магазина). По мере роста числа товаров и заказов растёт и нагрузка на базу данных и процессор.

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

Официальные требования

В документе «Требования WooCommerce к серверу» (официальная рекомендация) перечислено:

  • PHP 8.3 или новее.
  • MySQL 8.0 или новее, либо MariaDB 10.6 или новее.
  • Поддержка HTTPS.
  • Лимит памяти WordPress 256 МБ или больше.
  • Apache или Nginx в качестве веб-сервера.
  • Поддержка многобайтовых строк (mbstring), если ваш магазин не на английском. В документе это требование зависит от магазина, и турецкий магазин относится к этой группе.

Цифра 256 МБ — это потолок для одного запроса PHP, а не RAM сервера. При необходимости добавьте эту строку в wp-config.php:

define( 'WP_MEMORY_LIMIT', '256M' );

Старые версии, такие как PHP 7.4, упоминаются в документе лишь как запасной вариант для устаревших систем и не рекомендуются.

Чем магазин отличается от блога

  • Страницы, которые нельзя кэшировать. В руководстве по кэшированию WooCommerce сказано не кэшировать страницы корзины, оформления заказа и личного кабинета, потому что они показывают данные конкретного посетителя. Некоторые cookie, например cookie корзины, тоже нужно исключить. Проверьте, что ваш плагин кэширования так и делает.
  • Нагрузка на запись. Создание заказов, обновление остатков и хранение сеансов — всё это постоянно записывается в базу данных. Блог пишет редко, а магазин пишет весь день.
  • Фоновые задачи. WooCommerce выполняет отложенную работу (письма, вебхуки, платежи по подпискам) через встроенную очередь задач Action Scheduler. Очередь запускается через WP-Cron, поэтому в магазине с малым трафиком задачи могут выполняться с опозданием. Если настроить на сервере задачу cron, запускающую WP-Cron по расписанию (вместе с параметром DISABLE_WP_CRON), эта зависимость исчезает. Очередь можно посмотреть в разделе WooCommerce > Status > Scheduled Actions.

Данные заказов и HPOS

High-Performance Order Storage (HPOS) хранит заказы в специальных таблицах, созданных для этой задачи, а не в общих таблицах записей WordPress. В новых установках он включён по умолчанию, начиная с WooCommerce 8.2. Старые магазины сами не переключаются. Включить его можно в разделе WooCommerce > Settings > Advanced > Features, а режим совместимости синхронизирует две структуры. Для сервера важно вот что: структура оптимизирована под заказы, но базе данных по-прежнему нужны память и диск.

Стартовый размер

Эти значения — ориентиры, они зависят от магазина. Это не твёрдое обещание.

МагазинНачальный объём RAMvCore
Новый магазин: мало товаров, мало заказов2–4 ГБ1-2
Растущий магазин: тысячи товаров, регулярные акции4–8 ГБ2-4
Нагруженный магазин: частые акции, много плагинов и интеграцийот 8 ГБот 4

Число плагинов, размер изображений и внезапная нагрузка во время акции важны не меньше, чем число товаров. Кэш объектов (например, Redis) снижает нагрузку на базу данных, но ему нужна память. Начните с малого, затем растите, сверяясь с выводом free -h и top в часы пик.

Частые причины медленной работы магазина

  • Крупные несжатые изображения товаров.
  • Неиспользуемые плагины и лишние скрипты, которые запускаются на каждой странице.
  • Нет кэша объектов, поэтому один и тот же запрос к базе данных выполняется снова и снова.
  • Старая версия PHP, которая больше не поддерживается.

Исправление этих причин часто стоит делать раньше увеличения сервера. Когда увеличение не помогает, проблема обычно в настройках.

Бэкапы: одного ежедневного бэкапа может не хватить

В Seturack резервная копия сервера создаётся каждую ночь, хранятся последние 7 дней. В магазине заказы приходят весь день, поэтому одного этого может быть мало. При восстановлении заказы, оформленные после последнего бэкапа, будут потеряны. Делайте дамп базы данных чаще и копируйте его в другое место:

mysqldump --single-transaction -u USER -p DATABASE | gzip > orders-$(date +%F-%H%M).sql.gz

В запланированной задаче не указывайте пароль в командной строке. Используйте файл ~/.my.cnf с правами 600. На готовом сервере с WooCommerce приложение работает в Docker, поэтому команды для базы данных выполняйте внутри контейнера. База данных там — MariaDB. В контейнере может не быть mysqldump, тогда используйте mariadb-dump. Изображения товаров лежат в папке wp-content/uploads, поэтому копируйте и её.

Что подготовить, кроме размера

  • HTTPS. Для WooCommerce он обязателен. Готовый сервер с WooCommerce открывается по HTTPS на адресе, построенном на основе вашего IP через sslip.io. Чтобы подключить свой домен, см. эту статью.
  • Почта. Установите плагин SMTP, чтобы письма о заказах уходили. При установке отправка почты не настраивается.
  • Обновления. После установки обновления WordPress, WooCommerce и ваших плагинов — на вашей стороне. Перед крупным обновлением создайте снимок в панели. Снимок не заменяет бэкап, он лишь позволяет вернуться к состоянию до обновления.

Сервер с предустановленным WooCommerce готов примерно за 3,5–4 минуты, а по мере роста магазина его можно увеличить в панели. Загляните на страницу сервера с WooCommerce.

Комментарии0

Комментариев пока нет

Поделитесь своим мнением первым.

Присоединяйтесь к обсуждению

Пожалуйста, войдите или зарегистрируйтесь, чтобы оставить комментарий.

Не пропускайте новые записи

Получайте наши свежие инструкции, руководства и новости продукта на почту.

Вы подписались на нашу рассылку.