Статті · 07.11.2026
Чому OpenCart повільно працює: 7 причин
Магазин відкривається по 3–5 секунд, адмінка думає, а хостер пише про перевищення навантаження. Майже завжди причина одна з цих семи — і більшість можна перевірити самостійно за пів години.
Спершу виміряйте, а не вгадуйте
Відкрийте PageSpeed Insights і подивіться на «Час до першого байта» (TTFB). Якщо він більше 0,8–1 с — гальмує сервер: PHP, база даних або хостинг. Якщо TTFB нормальний, а сторінка все одно повільна — винні зображення, скрипти й теми.
Порівняйте головну, категорію і картку товару. Якщо повільна лише категорія — шукайте проблему в запитах до бази (пункти 1 і 2).
1. Підрахунок кількості товарів у категоріях
У налаштуваннях OpenCart є опція «Кількість товарів у категорії» (Система → Налаштування → Опції). Коли вона увімкнена, магазин на кожному відкритті сторінки рахує товари в усіх категоріях меню. На кількох тисячах товарів це десятки важких запитів.
Вимкніть опцію і порівняйте швидкість. Це найпростіший виграш, який я бачу майже в кожному другому магазині.
2. Повільні запити й відсутні індекси в базі
Фільтри, сортування, пошук і модулі «схожі товари» часто генерують запити без індексів. Поки товарів сотня — непомітно, на 5–10 тисячах база починає забирати весь процесор.
Як перевірити: увімкніть slow query log у MySQL (або попросіть хостера) і подивіться, які запити виконуються довше 1 секунди. Зазвичай це 3–5 запитів, які дають 90% навантаження.
3. Розрослася таблиця сесій
OpenCart 3 зберігає сесії в базі, у таблиці oc_session. Якщо очищення не працює, там накопичуються мільйони рядків від ботів, і кожне відкриття сторінки повільніше пише й читає сесію.
Перевірте розмір таблиці в phpMyAdmin. Якщо вона займає сотні мегабайт — її можна очистити і налаштувати регулярне видалення старих сесій.
4. Боти й краулери
SEO-сервіси (AhrefsBot, SemrushBot, MJ12bot) і просто сканери можуть робити тисячі запитів на годину, особливо по сторінках фільтрів з усіма комбінаціями параметрів. Для сервера це той самий трафік, що й від покупців.
Подивіться access log: якщо більшість запитів від кількох User-Agent або IP — обмежте їх у robots.txt і на рівні сервера (nginx limit_req), а сторінки фільтрів закрийте від індексації.
5. Модифікатори й модулі
Кожен OCMOD/vQmod-модифікатор змінює код ядра, а деякі модулі роблять запити до зовнішніх API прямо під час відкриття сторінки (курси валют, залишки, відгуки). Якщо API відповідає 2 секунди — ваша сторінка теж чекає 2 секунди.
Вимикайте модулі по одному на тестовій копії й міряйте TTFB. Так за годину знаходиться винуватець, який «нічого не робить».
6. Старий PHP і вимкнений OPcache
PHP 8.x помітно швидший за 7.x, а без OPcache PHP щоразу заново компілює всі файли магазину. Перевірте в панелі хостингу версію PHP і чи увімкнений OPcache.
Перехід на PHP 8 на старому OpenCart без підготовки може зламати сайт — про це окрема стаття нижче.
7. Зображення й тема
Фото по 2–5 МБ, слайдер на головній з десятьма банерами, кілька шрифтів і скриптів від сторонніх сервісів. Це не навантажує сервер, але покупець на телефоні чекає.
- стисніть зображення і віддавайте WebP;
- увімкніть ліниве завантаження для товарів нижче першого екрана;
- приберіть скрипти, якими ніхто не користується (старі чати, пікселі, віджети).
Коли варто звернутися до розробника
Якщо ви перевірили пункти 1, 3 і 6, а TTFB досі понад секунду — проблема в коді або базі, і її краще шукати з профайлером. Я роблю такий аудит: знаходжу конкретні запити й модулі, прибираю причину, а не ставлю «плагін кешування» поверх проблеми.
Часті питання
Чи допоможе модуль кешування?
Кеш сторінок пришвидшує повторні відкриття, але не лікує повільну базу: кошик, оформлення замовлення, фільтри й адмінка однаково працюють без кешу. Спершу варто прибрати причину.
Чи треба переїжджати на інший хостинг?
Іноді так, але частіше після оптимізації магазин нормально працює на тому самому тарифі. Переїзд без пошуку причини — це просто дорожчий сервер для тієї самої проблеми.
Не хочете розбиратися самі?
Опишіть, що відбувається з сайтом, — скажу причину й вартість виправлення протягом дня.
Послуга: Прискорення OpenCart →
Інші статті
07.11.2026
OpenCart після переходу на PHP 8: що ламається
Після переходу на PHP 8 OpenCart показує білий екран або помилки? Типові помилки, які версії OpenCart сумісні, і як оновитися без простою магазину.
07.11.2026
Обмін 1С з сайтом: чому дублюються товари
Після обміну з 1С на сайті з'являються дублі товарів, зникають фото або не оновлюються залишки? Розбираю 6 причин і як налаштувати обмін через CommerceML правильно.