Проблема медленной загрузки Open cart не уникальна и характерна для большинства сайтов, особенно с большим объемом содержания. Задумываться об ускорении Open cart нужно с момента создания магазина и не ждать, пока количество товаров приблизится к нескольким тысячам. В этой статье рассмотрим первые шаги ускорения Open Cart, за счет снижения запросов к базе данных.
К сожалению, все системы управления контентом, так называемые CMS, со временем начинают подтормаживать, то есть долго грузиться. Не исключение и платформы Интернет магазинов, в частности OpenCart и её русский клон OcStore. Не стоит в этом, огульно обвинять разработчиков. Платформа достаточно гибкая и быстрая для среднестатистического магазина и никто не планировал, что вы загрузите в магазин более полутысяч товаров, и распихаете их по 40 категориям. Именно, с 30-40 категорий и от 500 товаров, становится заметны тормоза OpenCart. В этой статье, поговорим об общих направлениях ускорения OpenCart и сделаем первый шаг к быстрому магазину.
Для начала нужно понять, что значит медленный Интернет магазин. Для этого, поставьте себя на место покупателя. Вы открываете страницу магазина, пусть это будут товары категории, и она грузится и грузится, и опять продолжает грузиться. Сколько вы готовы ждать полной загрузки? По статистике, 1-2 секунды, максимум 3 сек. Вариант, загрузки до секунды, можно отнести к отличному.
Что бы, достигнуть такого короткого времени загрузки, не обойтись одним простым действием. В загрузке страниц магазина участвует много факторов, от сторонних до внутренних и все их придется посмотреть.
Для начала нельзя не вспомнить, про качество вашего хостера. Большинство начинают работать на недорогих шаред-хостингах, и на первом этапе не думают об аренде VDS\VPS серверов, и это правильно. Но даже на виртуальном хостинге, перед его арендой, нужно посмотреть его оперативную память и бежать от хостеров выделяющих 96 и 128 Мб оперативной памяти (RAM) или менее 5% CPU.
Кстати, будьте готовы, что с раскруткой магазина и наполнение его товарами (от 5000 в 100 категориях) вам придется переходить на VDS\VPS сервера, а при очень хороших делах, арендовать реальный сервер. Но вернемся к начальному этапу и на нём начнем ускоряться.
Существуют базовые методы ускорения, работающие для любой CMS и не обязательно Интернет магазина.
Открывая ту или иную страницу, вы обращаетесь к серверу, с просьбой, сформировать вам эту страницу. Сервер, для формирования страницы, обращается к внешним ресурсам, это база данных, удаленные сервера и т.д. Для одной страницы серверу приходится делать десятки подобных запросов. Теперь представьте, что у вас десятки и даже сотни посетителей, делают эти запросы. Прибавьте к этому ботов, которые рыскают по вашему сайту, с пользой и без пользы. Всё это увеличивает нагрузку на сервер и нагрузку на сервер базы данных, что увеличивает время отклика и время генерации страницы.
Уменьшение нагрузки на сервер и времени генерации страниц сайта, и есть оптимизация сайта (Интернет магазина).
Выделяют два основных метода оптимизации:
Динамическое содержание это весь HTML, PHP которые формирует CMS. Статическое содержание это все картинки, скрипты, CSS стили.
На сегодня веб-сервера достаточно быстро отдают весь статический контент. Соблюдение простых правил оптимизации картинок и очистки от лишнего «красивого» мусора с главной страницы сайта (витрины магазина) позволит оптимизировать статический контент.
Другое дело, динамический контент. Именно его оптимизация требует навыков администрирования и заслуживает отдельных разбирательств, которые займут не одну статью.
Начнем с двух настроек, которые доступны, или почти доступны из административной панели OpenCart. Это:
Как ни странно, но показ количества товаров в меню, значительно увеличивает количество запросов к базе данных и тормозит движок. Тормозит движок ни показ количества товаров, а их подсчет. Кстати, об этом есть предупреждение самой системы.
Для выключения показа количества товара:
Как вариант, в версии 1.5.1.3 в file:
В трех каталогах: catalog/controller
Комментируем строку:
$product_total = $this->model_catalog_product->getTotalProducts($data);
Если этого не сделать, количество товаров не будет показаны, а запросы для подсчета количества товаров будут выполняться. Как следствие, нагрузка не уменьшится.
По умолчанию в системе не установлен уровень сжатия HTTP запросов. Делаем это на вкладке: Настройки→Сервер→Уровень сжатия. Ставим на 6.
Мы сделали, только первый шажок для ускорения OpenCart. Дальше, рассмотрим более тонкие настройки ускорения движка opencart.
P.S. Для первичного ускорения, можно удалить выпадающие меню подкатегорий. Для этого в файле: catalog/view/theme/ваша тема/template/common/header.tpl комментируем (<!— —>) кусок
<?php if ($category['children']) { ?> ....... <?php } ?>
Специально для сайта «Как сделать интернет магазин«
Можно ли создать сайт самостоятельно? Можно, но это долго и не всегда эффективно. Прочтите про создание сайта под ключ и сделайте…
Почему восстановление данных и файлов лучше доверить профессионалам.
Что такое скрипты интернет магазина с примерами.
Что такое социальная коммерция и чем она отличается от интернет-магазина.
Где и как научиться создавать сайты.
Что такое WMS система управления складом.