Скорость — один из важнейших факторов, определяющих, насколько приятно пользоваться сайтом клиенту, и в наши дни Google считает ее фактором ранжирования: более быстрые сайты оказываются выше в результатах поиска и, следовательно, получают больше трафика.
Итак, вот статья, которая будет постоянно обновляться по мере того, как мы находим все больше и больше способов оптимизировать OpenCart для повышения скорости (в произвольном порядке).
Table of Contents
ToggleОгромное количество товаров в категории может замедлять ваш сайт очень сильно поэтому имеется смысл выключить подсчет товаров чтобы ускорить ваш сайт.
Nitropack Cache больше не может быть лучшим вариантом. Если вы используйте ocstore там есть встроенный механизм кеширования и также удобные инструменты для его очистки.
Это необходимо, легко сделать, и это обеспечивает огромный прирост скорости.
Каждый раз, когда OpenCart получает уведомление, предупреждение или ошибку, он должен открыть файл журнала, и если этот файл большой, это может действительно замедлить ваш сайт. Иногда это может происходить сотни раз за загрузку страницы, поэтому расширение вроде этого необходимо: https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=25968
В связи с вышесказанным вы можете запретить OpenCart записывать слишком много данных в журнал.
Некоторые темы представляют собой плохо написанный код интерфейса, а некоторые темы представляют собой плохо написанный код интерфейса И бэкэнда, как Journal. Вместо этого используйте легкую тему, которая представляет собой чистый CSS.
CloudFlare бесплатен, экономит вашу пропускную способность и может ускорить ваш сайт, но будьте осторожны, он может вызвать проблемы, поэтому всегда проводите различные тесты и тестовые заказы после его включения.
Если на вашем сайте много изображений, их размер может оказать огромное влияние на производительность. Если они имеют сверхвысокое разрешение, уменьшение их до размера, не превышающего тот, который они будут отображать на сайте, — это верный способ снизить нагрузку на сетевые соединения и сократить время загрузки. Современные форматы изображений, такие как WebP, обеспечивают даже лучшие размеры файлов, чем JPEG, без ущерба для качества изображения. Существует множество расширений для OpenCart, которые будут автоматически обслуживать изображения на сайте как WebP, без необходимости тратить время на их конвертацию.
Существует файл, который vQmod использует для отслеживания изменений (отдельно от папки vqcache), и иногда он может выйти из-под контроля, даже не будучи обрезанным. По мере роста сайт будет замедляться, пока в конечном итоге не остановится. Проблема может быть вызвана установкой нового расширения, поэтому даже если раньше это не было проблемой, она может внезапно запуститься. Вероятно, у вас есть эта проблема, если файл /vqmod/checked.cache больше нескольких сотен КБ.
PHP-сессии (которые управляют входами) иногда могут храниться в папке на сервере под названием /tmp. Она может стать слишком большой, если ваши настройки php.ini не удаляют их достаточно регулярно.
Существует множество различных расширений кэша для OpenCart, а также встроенные кэши, и (ужасная) тема Journal также имеет свой собственный кэш. Все они могут хранить файлы кэша в различных папках, а некоторые расширения, такие как NitroPack Cache от iSense, могут хранить потенциально сотни тысяч файлов! Вам нужно убедиться, что они регулярно очищаются, когда они становятся слишком старыми, иначе ваш сервер начнет испытывать трудности. Иногда cron с командой типа «tmpwatch» является ответом здесь.
По умолчанию OpenCart использует движок MyISAM для большинства своих таблиц баз данных. Движок MyISAM известен тем, что имеет блокировку на уровне таблиц, что по сути означает, что если один человек добавляет или редактирует что-либо в таблице, вся таблица «заблокирована» от доступа кого-либо еще до завершения редактирования. На загруженных веб-сайтах изменение любых данных в таблице, к которой часто обращаются (например, таблицы клиентов, заказов или продуктов), может привести к огромному скоплению подключений к базе данных, ожидающих своей очереди на доступ к таблице, и может потенциально перегрузить и привести к сбою сервера базы данных!
С другой стороны, движок InnoDB блокирует только запись в редактируемой таблице, позволяя свободно обращаться к остальной части таблицы. Переключение движка таблиц вашей базы данных на InnoDB полностью совместимо с OpenCart и может значительно снизить нагрузку на сервер от ожидающих соединений.
Еще одним ключевым преимуществом движка таблиц базы данных InnoDB является предлагаемый им пул буферов. Думайте об этом как о еще одном слое кэширования для базы данных, сохраняющем наиболее востребованную информацию для быстрого доступа. Если на ваш сайт заходит много посетителей, настройка базы данных на наличие большого пула буферов может значительно ускорить время загрузки наиболее посещаемых страниц и продуктов из базы данных. Убедитесь, что вы удерживаете пул буферов в пределах памяти вашего сервера, или рассмотрите возможность обновления до выделенного VPS, чтобы гарантировать, что ваш сайт будет работать на максимально возможной скорости!
Для сервера с большим количеством сайтов это может значительно ускорить работу сайтов.