Бавен WooCommerce магазин: 15 причини и как да ги оправите
Как да откриете защо WooCommerce магазинът ви е бавен: измерване, 15 типични причини и решение за всяка – подредени от най-честите към по-редките.
„Сайтът зарежда бавно“ е най-честото оплакване, с което собственици на WooCommerce магазини ни търсят. Почти винаги следва второ изречение: „Сложихме плъгин за кеш, но не помогна.“ Причината е, че бавният WooCommerce рядко има една причина. Количката, checkout-ът и профилът не могат да се кешират като обикновена страница, базата данни расте с всяка поръчка, а всеки плъгин добавя заявки.
Ето как да измерите правилно къде губите време и 15 причини, подредени приблизително от най-честите към по-редките, с конкретно решение за всяка.
Накратко:
- Скоростта на WooCommerce се мери поотделно за начална страница, категория, продукт, количка и checkout, защото последните две не се кешират.
- Най-честите причини за бавен WooCommerce са слаб споделен хостинг, липса на обектен кеш, тежка тема с page builder и прекалено много плъгини.
- Времето до първия байт (TTFB) показва проблем в сървъра и базата данни, а лошите Core Web Vitals при добър TTFB показват проблем в темата, изображенията и скриптовете.
- Включването на HPOS, почистването на автоматично зарежданите опции и ограничаването на cart fragments често дават ускорение без смяна на хостинга.
Първо измерете: проверка на скоростта на сайта
Преди да променяте каквото и да било, запишете изходна точка. Иначе няма да знаете какво е помогнало.
| Инструмент | Какво показва | Кога да го ползвате |
|---|---|---|
| PageSpeed Insights | Реални данни от потребители (ако има достатъчно) и лабораторен тест | За Core Web Vitals по страници |
| Search Console → Core Web Vitals | Групи страници с проблеми | За цялостна картина |
| Query Monitor (плъгин) | Бавни заявки към базата, плъгини, hooks | За диагностика в админа |
| Инструменти за разработчици на браузъра | TTFB, размер и брой файлове | За бърза проверка |
Тествайте пет типа страници: начална, категория с много продукти, продукт с варианти, количка с продукт и checkout. Ако TTFB е над около 600–800 ms, проблемът е преди всичко в сървъра. Ако TTFB е нисък, но страницата се „рисува“ бавно, гледайте темата и скриптовете. Значението на метриките е обяснено в статията за Core Web Vitals.
Сървър и хостинг (причини 1–4)
1. Слаб споделен хостинг
Евтиният споделен хостинг е достатъчен за визитка, но магазин с хиляди продукти и филтри изисква повече процесорно време и памет. Признак: TTFB е висок дори на кеширани страници в натоварени часове. Решение: хостинг, оптимизиран за WooCommerce, или VPS. Подробно сравнение има в статията за хостинг за WooCommerce.
2. Стара версия на PHP
Всяка нова версия на PHP е по-бърза от предишната. Проверете в Инструменти → Здраве на сайта коя версия ползвате и преминете на поддържана от WooCommerce версия – първо на тестово копие.
3. Няма обектен кеш
Без Redis или Memcached WordPress пита базата данни за едно и също стотици пъти на страница. Обектният кеш помага точно там, където page cache не работи – в количката, checkout-а и админа. Много хостинги го предлагат с едно включване.
4. Липсва page cache или е настроен грешно
Страниците на продукти и категории трябва да се кешират. Количката, checkout-ът и „Моят профил“ – не. Ако плъгинът за кеш изключва твърде много или кешира количката, получавате или бавен сайт, или грешни колички.
Тема, плъгини и скриптове (причини 5–9)
5. Тежка тема и page builder
Многофункционалните теми с вграден page builder зареждат CSS и JavaScript за десетки модули, които не ползвате. На мобилен телефон това е основната причина за лош LCP. Решение: лека тема, съвместима с блоковия редактор, или изчистване на неизползваните модули.
6. Прекалено много плъгини
Важен е не броят, а какво правят. Един плъгин за „свързани продукти“, който прави тежка заявка на всяка страница, вреди повече от десет малки. С Query Monitor вижте кои плъгини добавят най-много време и потърсете по-леки алтернативи.
7. Cart fragments
WooCommerce изпраща AJAX заявка (wc-ajax=get_refreshed_fragments), за да обнови иконата на количката. При някои теми това става на всяка страница и заобикаля кеша. В новите версии поведението е подобрено, но проверете в мрежовия раздел на браузъра дали заявката се изпълнява и колко време отнема.
8. Външни скриптове
Пиксели, чат, карти, отзиви, heatmap инструменти – всеки добавя файлове и време за изпълнение. Заредете ги отложено, след взаимодействие или само на страниците, където трябват. Това е и най-честата причина за лош INP.
9. Неоптимизирани изображения
Снимки от 3–4 MB, качени директно от фотоапарата. Решение: WebP или AVIF, правилни размери, lazy loading за всичко под първия екран – но не и за главната снимка на продукта.
База данни (причини 10–13)
10. Подути autoload опции
Таблицата wp_options съдържа настройки, които се зареждат на всяка заявка. Изтрити плъгини често оставят там мегабайти данни. Проверете общия размер на autoload опциите (Здраве на сайта в новите версии на WordPress предупреждава при голям размер) и почистете остатъците.
11. Поръчките не са в HPOS
High-Performance Order Storage съхранява поръчките в собствени таблици вместо в общите таблици за публикации. За нови магазини е включено по подразбиране от версия 8.2 на WooCommerce, но старите магазини често още работят по стария начин. Миграцията се прави от WooCommerce → Настройки → Разширени → Функции, след проверка за съвместимост на плъгините.
12. Хиляди задачи в Action Scheduler
В Инструменти → Scheduled Actions може да има стотици хиляди изпълнени или неуспешни задачи от плъгини за имейли, синхронизация и абонаменти. Почистете старите и намерете плъгина, който генерира неуспешни задачи.
13. WP-Cron на всяко посещение
По подразбиране WordPress изпълнява планирани задачи при посещение на потребител. При магазин с импорт на наличности това забавя случайни посетители. Решение: изключете WP-Cron в wp-config.php и го пускайте със системен cron на всеки няколко минути.
Функционалности на магазина (причини 14–15)
14. Филтри и търсене
Филтрите по атрибути при хиляди продукти генерират тежки заявки. Използвайте плъгин за филтри, който индексира данните предварително, и ограничете броя на комбинациите. Вградената търсачка на WordPress също не е създадена за големи каталози – помислете за специализирано търсене.
15. Куриерски и платежни плъгини в checkout-а
Плъгините за Еконт и Спиди зареждат списъци с офиси и изчисляват цена на доставка чрез API на куриера. Ако това става при всяко зареждане, без кеширане на списъците, checkout-ът забавя точно в най-важния момент. Проверете колко време отнемат външните заявки в Query Monitor и дали плъгинът кешира офисите. Повече за настройката има в статията за Еконт за WooCommerce.
Ред на действие: от какво да започнете
- Направете пълно копие и тестова среда (staging).
- Запишете метриките на петте типа страници.
- Обновете PHP, включете обектния кеш и проверете page cache – най-голям ефект за най-малко работа.
- Включете HPOS и почистете базата (autoload, Action Scheduler, transients).
- Изключете плъгините един по един на тестовата среда и измервайте.
- Оптимизирайте изображенията и отложете външните скриптове.
- Едва ако TTFB остане висок – сменете хостинга.
- Измерете отново и сравнете с изходната точка.
Ако след всичко това магазинът пак е бавен, проблемът обикновено е архитектурен – твърде тежка тема или функционалност, построена с плъгини, вместо с код. Тогава понякога е по-евтино да направите нов магазин, отколкото да оптимизирате стария. Сравнение на платформите има в статията Shopify или WooCommerce.
Често задавани въпроси
Защо WordPress онлайн магазинът ми не работи нормално след обновяване?
Най-често причината е несъвместим плъгин или тема с новата версия на WooCommerce или PHP. Затова обновявайте първо на тестова среда и правете резервно копие преди всяко обновяване.
Как да проверя скоростта на сайта си безплатно?
Използвайте PageSpeed Insights за отделни страници и отчета Core Web Vitals в Google Search Console за целия сайт. Тествайте и количката и checkout-а, не само началната страница.
Достатъчен ли е плъгин за кеш, за да стане WooCommerce бърз?
Не. Плъгинът за кеш ускорява продуктите и категориите, но количката и checkout-ът не се кешират. Там помагат обектен кеш, по-бърз сървър и по-малко тежки плъгини.
Колко бърз трябва да е един онлайн магазин?
Ориентир е LCP до 2,5 секунди, INP до 200 милисекунди и CLS до 0,1 за поне 75% от посещенията – това са праговете на Google за добри Core Web Vitals.
Ако искате някой да намери конкретните причини във вашия магазин, а не да гадае, вижте как работим по WooCommerce магазини – започваме с измерване и ви казваме какво ще помогне, преди да променяме каквото и да е.
