Этот материал для владельцев интернет-магазинов на WooCommerce: пошаговый разбор, почему магазин тормозит и как вернуть ему скорость без переезда на другую платформу. Медленный магазин напрямую теряет покупателей: каждая лишняя секунда загрузки снижает конверсии и продажи.
Причина замедления редко одна - обычно это комбинация слабого хостинга, раздутой базы данных и конфликтующих плагинов.
Связка хорошего кэш-плагина и настроенного CDN на обычном VPS за 1500-2500 рублей в месяц способна вернуть сайт из красной зоны PageSpeed Insights в зелёную без перехода на дорогой managed-хостинг (с полным сервисным обслуживанием провайдера) - для каталога до 3000-4000 товаров этого хватает.
Разбираю оптимизацию именно для WordPress + WooCommerce на обычном VPS или виртуальном хостинге; для магазинов на Bitrix, OpenCart или облачных конструкторах подход к ускорению отличается, и здесь я его не затрагиваю.
Коротко:
- Главные причины замедления WooCommerce - слабый хостинг, раздутая база данных, конфликтующие плагины и тяжёлая тема.
- Проверять скорость нужно в PageSpeed Insights отдельно для мобильной и десктопной версии - у них разные показатели.
- TTFB (время ответа сервера) выше 600 мс почти всегда говорит о проблемах с хостингом, а не с фронтендом.
- Устаревшая версия PHP замедляет работу WordPress и WooCommerce сильнее, чем многие думают - переход на актуальную версию ускоряет сайт без единой настройки плагинов.
- Каждый лишний плагин добавляет нагрузку на сервер - количество плагинов напрямую влияет на скорость загрузки страниц.
Почему магазин на WooCommerce тормозит: главные узкие места
Когда клиент приходит с жалобой «сайт тормозит», первый вопрос - почему тормозит WooCommerce именно у него, а не у конкурента на похожей теме. В большинстве случаев причина не одна, а сочетание нескольких узких мест, которые по отдельности незаметны, а вместе дают ощутимую нагрузку на сервер.
Первое узкое место - хостинг. Общий (shared) хостинг за 100-200 рублей в месяц физически не рассчитан на интернет-магазин: ресурсов процессора и памяти не хватает, когда на сайт заходит больше 10-15 человек одновременно. WooCommerce - сам по себе тяжёлая система поверх WordPress, и на слабом тарифе она начинает захлёбываться уже на небольшом потоке посетителей.
Второе место - база данных. WooCommerce хранит заказы, товары, атрибуты, историю корзин и логи действий в одних и тех же таблицах MySQL. Без очистки база за пару лет работы магазина может раздуться до гигабайтов, и каждый запрос к ней выполняется дольше. Нагрузку на базу создают и брошенные корзины, и черновики заказов, которые никто не удаляет.
Третье - плагины. Количество плагинов на сайте напрямую влияет на скорость загрузки: каждый добавляет свои запросы к базе, свои файлы CSS и JavaScript, а иногда и фоновые задачи. Часто на магазине одновременно стоят два SEO-плагина, три конструктора форм и плагин аналитики, которые дублируют функции друг друга и конфликтуют между собой.
Четвёртое узкое место - тема оформления. Многофункциональные "конструкторные" темы с десятками демо-наборов тянут за собой библиотеки, которые магазину не нужны. Пятое - устаревшая версия PHP: она замедляет работу WordPress и WooCommerce на уровне самого языка выполнения кода, и этот проигрыш в производительности не компенсируют никакие плагины кэширования.
| Узкое место | Типичная "цена" в потере скорости |
| Слабый shared-хостинг | TTFB 800-1500 мс, минус 20-30 баллов PageSpeed |
| Раздутая база данных | +0,5-2 секунды к загрузке админки и страниц товара |
| Конфликтующие плагины | +1-3 секунды, рост числа запросов на страницу |
| Тяжёлая многофункциональная тема | +300-800 мс на рендер, лишние 500 КБ CSS/JS |
| Неоптимизированные изображения товаров | минус 10-25 баллов PageSpeed на мобильной версии |
На одном из проектов студии «Мельница» - каталог промышленного оборудования на 2000 товаров - мы нашли все пять проблем сразу: устаревший PHP 7.2, раздутую базу на 1,8 ГБ и 42 активных плагина. После чистки и переноса на новый VPS TTFB упал с 1,2 секунды до 280 мс.
Как проверить скорость сайта: PageSpeed Insights и другие инструменты
Скорость загрузки страницы - фактор ранжирования в Google, поэтому проверять её нужно не на глаз, а конкретными инструментами - и делать это до того, как вы начнёте что-то менять. Правильный порядок простой: замерить показатели «до», внести изменения, замерить «после» и сравнить цифры, а не ощущения.
Основной инструмент - PageSpeed Insights от Google. PageSpeed Insights измеряет показатели Core Web Vitals: LCP (скорость отрисовки главного элемента экрана), CLS (стабильность макета при загрузке) и INP (отзывчивость на действия посетителя). Эти веб-метрики инструмент показывает отдельно для мобильных устройств и отдельно для десктопа - и показатель для мобильных почти всегда хуже.
Из результатов проверки важно обратить внимание на TTFB - time to first byte. TTFB показывает время ответа сервера, то есть сколько проходит от запроса страницы до первого байта ответа, ещё до начала загрузки контента. Если TTFB выше 600-800 мс - проблема почти всегда в хостинге или в тяжёлых запросах к базе, а не в вёрстке и не в изображениях.
Кроме PageSpeed Insights, полезны GTmetrix (детальный водопад загрузки запросов) и встроенный инструмент аналитики Chrome DevTools - вкладка Network показывает, какие именно файлы грузятся дольше других. Для проверки именно мобильных показателей удобно открыть сайт прямо на телефоне в режиме экономии трафика и посмотреть, через сколько секунд посетитель реально увидит каталог.
Мобильная скорость сайта влияет на конверсию в заказ сильнее, чем десктопная: с телефонов в интернет-магазины сейчас заходит заметно больше посетителей, и именно у них терпения ждать меньше всего. Если мобильный результат PageSpeed Insights ниже 50 баллов - это сигнал заняться оптимизацией в первую очередь, а не откладывать её на «потом, когда будет время».
Выбор хостинга и VPS для WooCommerce: на чём держится скорость

Виртуальный хостинг - это общий сервер, где ресурсы процессора и памяти делятся между десятками, а то и сотнями сайтов других владельцев. Для магазина с каталогом в пару сотен товаров и небольшим трафиком такого хостинга хватает. Но как только каталог растёт до тысяч позиций или нагрузка увеличивается в сезон распродаж, соседи по серверу начинают "съедать" общие ресурсы, и сайт тормозит без видимой причины на вашей стороне.
VPS-хостинг обеспечивает больше ресурсов по сравнению с виртуальным хостингом: вы получаете выделенную часть процессора, фиксированный объём оперативной памяти и права на настройку сервера под конкретный проект. Это отдельная виртуальная машина, а не "комната в общежитии". Пока каталог укладывается в пару сотен товаров и трафик небольшой, виртуального хостинга достаточно; при росте объёма заказов, росте каталога за пару тысяч позиций или всплесках посещаемости переезд на VPS становится обязательным шагом, а не роскошью.
На одном из проектов студии - интернет-магазине строительных материалов на WooCommerce - переход с общего хостинга на VPS с 4 ГБ оперативной памяти снял постоянные ошибки 503 при наплыве посетителей с рекламы и сократил среднее время отклика сервера почти вдвое. Разница была заметна уже в первую неделю после переезда.
Что настраивать на сервере после переезда на VPS
Сам по себе VPS не ускорит сайт - нужна правильная настройка. PHP-FPM повышает производительность обработки запросов сервером: это менеджер процессов PHP (FastCGI Process Manager), который обрабатывает запросы к сайту через пул отдельных воркеров (рабочих процессов), а не создаёт новый процесс на каждое обращение. На практике PHP-FPM с правильно выставленным числом дочерних процессов держит нагрузку в разы лучше, чем стандартный mod_php на Apache.
- OPcache - кэширует скомпилированный байт-код PHP в памяти, чтобы сервер не парсил одни и те же файлы плагинов и темы при каждом запросе
- Настройка лимитов памяти PHP под реальные нужды WooCommerce, а не "по умолчанию"
- Актуальная версия PHP - на старых версиях WooCommerce работает заметно медленнее
- Своевременные обновления платформы и плагинов безопасности на уровне сервера
Разработчика или подрядчика для настройки сервера стоит привлекать осознанно: правильно выставленные параметры PHP-FPM и OPcache дают прирост скорости, который пользователь не настроит через админку WordPress. Это разовая работа на пару часов, которая окупается стабильностью на годы вперёд.
Отдельный вопрос - доставка контента до пользователя. Даже мощный сервер физически не отдаёт статику быстро тому, кто находится далеко географически. Здесь подключается CDN (Content Delivery Network, сеть доставки контента) - распределённая сеть серверов, которая раздаёт изображения, стили и скрипты с точки, географически близкой к посетителю. Для магазина с аудиторией по всей России это снимает заметную часть задержки при загрузке каталога.
Кэширование и CDN: настройка плагинов ускорения
Кэширование страниц снижает нагрузку на сервер - вместо того чтобы на каждый визит собирать страницу заново через PHP и запросы к базе данных WooCommerce, сервер отдаёт готовый HTML-файл, сохранённый при первом обращении. Для интернет-магазина с сотнями посетителей в день это разница между сервером, который еле дышит, и сервером, который держит нагрузку с запасом.
Настроить кэширование страниц можно разными способами: через плагин кэширования, через правила на уровне сервера (Nginx FastCGI cache) или комбинированно. Для большинства владельцев магазинов проще включить готовый плагин, не трогая конфигурацию сервера напрямую - риск что-то сломать в настройках Nginx для новичка выше, чем польза от ручной настройки.
| Плагин | Страничный кэш | Минификация | CDN-интеграция | Цена |
| WP Rocket | есть | есть (CSS/JS/HTML) | встроенная поддержка популярных сервисов | платный, разовая лицензия на сайт |
| W3 Total Cache | есть | есть | есть, требует настройки | бесплатный |
| WP Super Cache | есть | ограниченная | через сторонние сервисы | бесплатный |
| LiteSpeed Cache | есть (лучше всего работает на LiteSpeed-серверах) | есть | есть | бесплатный |
Плагин WP Rocket объединяет функции кэширования и минификации в одном месте без необходимости вручную настраивать десятки опций - это и объясняет его популярность среди владельцев магазинов, которым не хочется разбираться в технических деталях. Если готовы оплатить зарубежную лицензию (напрямую или через посредника), WP Rocket даёт лучший баланс простоты и результата; для бесплатного варианта без вопросов с оплатой подойдут W3 Total Cache или LiteSpeed Cache, хотя они требуют больше ручной настройки.
Важная оговорка про кэш WooCommerce: страницы товара и каталога можно кэшировать, а страницы корзины, оформления заказа и личного кабинета - нет, иначе один покупатель увидит содержимое корзины другого. Современные плагины кэширования автоматически исключают такие страницы из правил, но после настройки стоит проверить это вручную - открыть корзину в двух разных браузерах и убедиться, что товары не «перемешались».
CDN и объектный кэш
CDN ускоряет доставку статических файлов - изображений, CSS и JavaScript - за счёт того, что они раздаются с сервера, физически близкого к пользователю, а не с единственной точки хостинга. CDN особенно нужен, если аудитория магазина распределена по стране: разница в скорости загрузки каталога из Владивостока и из Москвы без CDN может достигать секунды и больше.
Из CDN-сервисов для российской аудитории стоит рассматривать варианты с серверами внутри страны - у ряда хостинг-провайдеров есть собственные CDN, встроенные в тариф VPS. Удобно для небольшого проекта, если не хочется настраивать интеграцию с зарубежным сервисом отдельно.
Объектный кэш (Redis/Memcached) снижает число обращений к базе данных - в отличие от кэша страниц, он работает на уровне отдельных запросов: сохраняет в памяти результаты повторяющихся обращений к базе (например, список категорий или настройки WooCommerce), которые иначе пришлось бы запрашивать заново при каждом действии. На VPS с доступом к настройке сервера Redis включается один раз и дальше работает автоматически, без участия владельца магазина.
Отдельно порекомендую Clearfy - этот плагин стоит у меня на блоге Start-Luck.ru. Он не заменяет WP Rocket по кэшированию, но решает смежную задачу: чистит "мусор" WordPress и закрывает базовые дыры безопасности - меняет страницу входа, ограничивает число попыток авторизации, скрывает ошибки входа и отключает REST API там, где он не нужен. Из ускорения у Clearfy есть минификация HTML - именно HTML, а не CSS и JS, это важно не путать при выборе связки плагинов.
Оптимизация изображений и фронтенда: webp, CSS, JS

Неоптимизированные изображения увеличивают время загрузки страницы сильнее других факторов на типичном сайте WooCommerce. Карточка товара с десятком фото в оригинальном размере легко весит 15-20 МБ - это грузится при каждом открытии, если нет кэша браузера.
Формат WebP уменьшает размер изображения без потери качества, которую заметит обычный покупатель - по сравнению с JPEG экономия обычно составляет заметную часть веса файла при сопоставимой визуальной чёткости. Перевести фотографии товаров в WebP можно через плагины автоматической конвертации или один раз пакетно обработать всю медиатеку перед загрузкой на сайт.
- Сжатие исходных фотографий перед загрузкой - уменьшить разрешение до реально нужного для отображения на экране размера
- Включить автоматическую конвертацию в WebP через плагин оптимизации изображений
- Удалить неиспользуемые и дублирующиеся изображения из медиабиблиотеки - они занимают место и иногда попадают в выдачу поиска по картинкам
- Настроить отложенную загрузку для изображений ниже первого экрана
Отложенная загрузка (lazy loading) откладывает загрузку изображений до попадания в область экрана - то есть фотографии товаров в конце длинной страницы каталога подгружаются только тогда, когда пользователь долистал до них, а не все сразу при открытии страницы. Для каталога на пару сотен товаров на одной странице это особенно заметно разгружает начальную загрузку.
В актуальных версиях WordPress атрибут loading="lazy" для изображений добавляется автоматически без установки отдельного плагина. Проверить, что отложенная загрузка действительно работает, можно через инструменты разработчика в браузере - на вкладке "Сеть" видно, что картинки ниже экрана подгружаются по мере скролла, а не все одним пакетом при открытии страницы.
Что делать с CSS и JS
Минификация CSS и JS (JavaScript) уменьшает размер файлов и количество запросов браузера к серверу - это касается и того кода, который создают разработчики темы, и того, что добавляют сторонние плагины. Минификация убирает из файлов пробелы, комментарии и переносы строк, которые нужны человеку для чтения кода, но бесполезны для браузера.
Отдельная проблема WooCommerce-магазинов - «тяжёлые» скрипты от неиспользуемых функций: плагин слайдера, который давно не включен в теме, или скрипт чата поддержки, который загружается на всех страницах, включая те, где его никто не откроет. Такие ненужные подключения лучше находить через анализ загрузки страницы и отключать выборочно - через условия показа скрипта только на нужных типах страниц, а не целиком удалять плагин.
Комбинация из WebP, отложенной загрузки, минификации CSS и JS и чистки неиспользуемых скриптов даёт накопительный эффект: каждый шаг по отдельности экономит доли секунды, но вместе они превращаются в заметную для пользователя разницу между сайтом, который «летает», и сайтом, который заставляет ждать. Перевести изображения в WebP на WordPress можно через плагин конвертации в несколько кликов, без необходимости вручную пересохранять каждый файл в графическом редакторе.
Проверка результата после всех настроек - обязательный шаг: откройте карточку товара с мобильного устройства на обычном 4G-соединении и засеките время до появления первой фотографии. Если оно укладывается в пару секунд - фронтенд настроен верно, если нет - стоит вернуться к списку выше и проверить, какой из пунктов выполнен не полностью.
Оптимизация базы данных, плагинов и страниц товара/корзины
WooCommerce хранит данные заказов в базе данных WordPress, и со временем в таблицах накапливается лишнее: черновики записей, ревизии страниц, спам-комментарии, старые сессии корзины гостей. Таблицы ревизий и спам-комментариев раздувают базу данных WooCommerce настолько, что MySQL вынужден сканировать таблицы большого размера, поэтому обычный запрос к товарам выполняется дольше обычного.
Перед чисткой таблиц всегда делайте резервную копию базы - через плагин или панель хостинга. Дальше можно безопасно удалить ревизии записей, спам- и мусорные комментарии, истёкшие сессии транзиентов. После очистки освобождается место, которое годами занимает ненужный мусор в таблицах, а плагины кэша умеют делать это по расписанию, не нагружая сайт в часы пиковой нагрузки.
На странице товара (product) часто висят виджеты похожих товаров и фильтры категорий, которые добавляет тема или отдельный плагин. Виджет похожих товаров увеличивает число запросов на странице товара, подбирая позиции по категории почти при каждом открытии карточки. Если блок редко кликают - его стоит отключить или вынести в статический список без динамических функций подбора.
Отдельная задача - оформление заказа и корзина. Корзина и страница оформления заказа требуют отдельной настройки кэша из-за динамического контента: цены, остатки и содержимое зависят от конкретной сессии, поэтому эти страницы обычно исключают из общего кэширования, ограничивая только число запросов, которые выполняются одновременно к базе. Это выглядит нелогично на первый взгляд, но именно так работает большинство действующих (production) магазинов на WooCommerce. Чтобы безопасно очистить базу данных WordPress от мусора, лучше ориентироваться на проверенные плагины очистки, а не ручные SQL-запросы.
Итог: пошаговый план ускорения и типичные ошибки
Чтобы начать, сохраните информацию о текущей скорости через PageSpeed - это станет точкой отсчёта для сравнения. Важно знать порядок: от простого к сложному - так значительно быстрее видны улучшения. Скорость влияет не только на удобство покупателей, но и на позиции магазина в поиске как фактор SEO.
- Шаг 1: удаление неиспользуемых плагинов и тем
- Шаг 2: подключение современного кэша страниц без дополнительных плагинов безопасности
- Шаг 3: сжатие и lazy-load изображений
- Шаг 4: перевод на PHP новой версии
- Шаг 5: ограничить число запросов на корзине и оформлении заказа
- Шаг 6: чистка базы от ненужных записей
- Шаг 7: повторный тест - заново загрузить страницу в PageSpeed и сравнить с первым замером
Правило: оптимизация без замера "до" - типичная ошибка. Без исходных цифр невозможно понять, какое изменение дало результат, а какое оказалось бесполезным. Неудалённые старые плагины и тяжёлые темы сильно замедляют магазин, что ведет к потере продаж и оттоку покупателей.
После каждого изменения полезно посмотреть детали в отчёте PageSpeed отдельно для сервера и для фронтенда - это разные метрики, путать их не стоит. Небольшой магазин на 200-300 товаров после настройки кэша обычно отдает первый байт заметно быстрее, а посетитель получает в итоге сокращённое полное время загрузки без необходимости переделывать дизайн или кнопки оформления. Пользовательский опыт от этого выигрывает сразу - находить и убирать такие узкие места выгоднее, чем угадывать, что ускорять.
Если разбираться со всеми техническими настройками самому не хочется или не хватает времени - на Kwork эту задачу (чистку, настройку кэша и сервера) делают за разумные деньги, от нескольких тысяч рублей по сложности решения.
Регулярно поддерживает скорость повторная проверка раз в пару месяцев: после добавления новых товаров и плагинов картина меняется.
Данная статья основана на личном опыте автора и актуальна на момент публикации. Интерфейсы сервисов и алгоритмы поисковых систем регулярно меняются - рекомендую проверять актуальность инструкций на официальных ресурсах. Если у вас остались вопросы - задайте их в комментариях.
Список литературы
- Google for Developers - PageSpeed Insights Documentation // developers.google.com
- Google - Web Vitals // web.dev, 2024
- WooCommerce - Performance (Site Administration) // woocommerce.com
- Optimization // Advanced Administration Handbook, wordpress.org











