Полный список функций Lightning
Повышение скорости работы
- сессии создаются только для тех, кто принимает cookie
Боты и сканеры, не сохраняющие cookie, больше не плодят записи в таблице session — это полностью устраняет классическое разрастание до гигабайт таблицы сессий в OpenCart. - оптимизирующий процессор шаблонов Twix
Превращает тяжелые TWIG-шаблоны в подобие старых супер-быстрых TPL, выигрывает до 70ms процессорного времени на тяжелых шаблонах. - оптимизация обработки событий
Система событий — одна из самых дорогих частей ядра OpenCart. Вместо постоянных сверок таблиц обработчиков Lightning строит готовые списки соответствий, поэтому события работают в десятки раз быстрее. - предзагрузка часто используемых данных в один пак
Меню, переводы, дерево категорий и счётчики товаров грузятся одним PHP-файлом при старте OpenCart — это отменяет 30–40 однообразных запросов, которые иначе выполняются на каждой странице. - замена штатного файлового кеша OpenCart на более быстрый
Стандартный кеш хранит срок годности прямо в имени файла, поэтому при каждом чтении ключа сканирует всю папку кеша по маске (glob), а вдобавок сканирует её целиком на каждом запросе ради удаления устаревших записей — с тысячами файлов это тормозит весь магазин. Lightning читает запись напрямую по точному имени файла без сканирования, держит копию в памяти, а полную чистку папки выполняет не на каждом запросе, а раз в полчаса. - многочисленные оптимизации для шаблона Journal 3
Оптимизация встроенного мега-фильтра и многих медленных внутренних механизмов Journal 3. - фикс проблемы производительности vQMod в OpenCart 3
Ускорение БД
- кеширование медленных SQL-запросов
Запросы медленнее 0.05 сек кешируются, а соответствующие записи кеша интеллектуально сбрасываются при изменении данных в связанных таблицах. - оптимизация SQL-запросов
На лету упрощает тяжёлые запросы каталога, чтобы MySQL использовал индексы вместо полного перебора и сортировок на диске: убирает ненужные проверки и функции из сортировок, лишние подзапросы рейтинга, скидки и спеццены, заменяет тяжёлый ORDER BY RAND() быстрой выборкой случайных товаров, упрощает выборку по дереву категорий. Включается отдельно. - кеш подсчёта количества товаров
Убирает тяжёлый счётный запрос (SQL_CALC_FOUND_ROWS / COUNT), который выполняется при пагинации категорий и фильтров. - автоматическое добавление полезных индексов в БД при установке
Lightning сам создаёт недостающие индексы на ключевых таблицах OpenCart, ускоряя типовые выборки товаров и категорий.
Кеширование страниц
- кеширование критических страниц + страниц товаров
Критическими считаются самые ресурсоёмкие в генерации страницы: стартовая, категории, производители и товары со скидкой. Можно кешировать и все страницы, исключая заданные в настройках типы (route). - минорным ботам - только закешированные страницы
Всем ботам, кроме важных (Google, Bing, Яндекс, Мета, Х и основные AI-поисковики) при отсутствии запрашиваемой страницы в кеше дается ответ 503 Проверьте позже. Таким образом минорные боты практически не потребляют ресурсов магазина. Отдельным ботам можно включить полноценный доступ в интерфейсе Контроля доступа. - фоновая прегенерация кеша страниц
Изначально кеш прегенерируется на расстояние 2 кликов от домашней страницы, но при каждом посещении стартует фоновая прегенерация страниц на 2 клика от посещенной - таким образом при достаточной скорости прегенерации следующую страницу посетитель получает уже из кеша + при наличии трафика сайт очень быстро прегенерируется в нужных зонах. - отслеживание изменения товаров
При изменении, удалении и добавлении товаров точечно удаляется кеш соответсвующих страниц - таким образом магазин всегда показывает актуальные данные. Обрабатываются как изменения запросами внутри OpenCart (с проверкой, действительно ли что-то изменилось в товаре), так и внешними - через отслеживание изменения поля товаров date_modified (обычно внешними скриптами). - монтирование актуальной мини-корзины в закешированные страницы
Залогиненный покупатель с товарами в корзине видит свою корзину прямо на странице из кеша — блок подменяется в готовом HTML под текущего посетителя. - монтирование количества товаров в списках сравнения и закладок
Счётчики сравнения и закладок отображаются актуальными поверх закешированной страницы. - использование закешированных страниц для залогиненых пользователей
Одна версия кеша обслуживает и гостя, и вошедшего клиента — Lightning вычисляет разницу между этими типами страниц и на лету превращает гостевую страницу в залогиненную и наоборот. - конвертация валюты по тексту закешированной страницы
Цены пересчитываются в валюту посетителя прямо в HTML, что позволяет держать только один набор кеша с основной валютой. - загрузка отдельных модулей по AJAX поверх кеша
Часто меняющиеся блоки (например, последние просмотренные товары) догружаются отдельным запросом, поэтому показывают индивидуальную информацию, а страница остаётся кешируемой. Список модулей, которые надо загружать по AJAX, задается в настройках. - кеширование AJAX-запросов
Повторяющиеся AJAX-ответы от кешируемых страниц тоже берутся из кеша — интерфейс отзывается быстрее. - игнорирование URL-параметров от рекламных переходов
Метки вроде utm_* отбрасываются при определении кеша, поэтому при рекламных переходах и переходах из поисковых систем выдаётся страница из кеша, а не генерируется новая.
Оптимизация фронтенда (повышение баллов PageSpeed)
- группировка и минификация JS и CSS ресурсов
Десятки отдельных файлов скачиваются, минифицируются и склеиваются в один — меньше запросов и меньше вес; на агрессивных уровнях в сборку включаются и внешние ресурсы с других серверов. - корректный перенос всех скриптов в подвал страницы
Скрипты убираются из заголовка и переносятся в самый низ страницы, чтобы не блокировать отрисовку. - создание начального набора CSS (critical CSS)
Стили видимой части экрана встраиваются в тело страницы и используются, пока не загрузится весь CSS, — страница рисуется мгновенно, без мигания. - отложенная загрузка тяжёлых скриптов и iframe на мобильных
Чаты, аналитика и карты подгружаются только после первого действия посетителя и не тормозят показ страницы. - отключение JavaScript для роботов, поисковых систем и PageSpeed Insight
Ускоряет индексирование и показывает красивые баллы. Безопасно, так как всем отдаётся одна и та же версия страницы, а запуск JS управляется через cookies. Включается отдельно. - автоматическая установка оптимального уровня GZIP-компрессии
Настройка в админке игнорируется. Lightning сжимает закешированные страницы по максимуму (так как время на сжатие тратится один раз, а польза - на каждой отдаче), а те, которые отдаются на лету - по минимуму с оптимальным балансом для скорости доставки. Также Lightning делает GZIP-сжатие для админки, что значительно ее ускоряет. - правильные заголовки кеширования и компрессии для статики
Прописываются в файлах .htaccess в подпапках (желательно убрать эти настройки из корневого .htaccess, если вы добавляли их раньше). - оптимизация загрузки шрифтов
Текст виден сразу, шрифт подставляется по готовности. Иконочные шрифты можно грузить в первую очередь, чтобы не мелькали квадраты. - оптимизация загрузки баннерных каруселей (owl-carousel)
Оптимизация изображений
- вывод изображений в формате WebP
Картинки WebP намного компактнее обычных. Качество настраивается. Включается отдельно. - автоочистка устаревших копий WebP
Копии без исходника периодически удаляются, а в статистике видно сэкономленное место. - улучшение детализации (резкость) уменьшенных изображений
Миниатюры товаров выглядят чётче и не «замыливаются» после ресайза. Включается отдельно. - использование оригиналов для больших изображений товара
Кеш изображений уменьшается в 3+ раза. Включается отдельно. - приоритетная предзагрузка главной картинки экрана (LCP)
На мобильных самая крупная картинка грузится в приоритете — напрямую улучшает ключевую метрику Core Web Vitals. - автоматическое прописывание размеров изображений
Страница не «прыгает» при загрузке — выше балл CLS.
SEO-оптимизация
- отслеживание контрольных сумм страниц и отдача реальных Last-Modified
Если страница не менялась, поисковику и браузеру возвращается пустой ответ 304 вместо всего HTML — это кардинально ускоряет индексацию и повторное открытие страниц у посетителей. - унификация всех ссылок на товары к виду shop.ru/url-tovara
В хлебных крошках при этом отображается путь к самой глубокой категории товара. За счёт этого поисковики индексируют магазин намного быстрее и уменьшается количество вариантов страниц, которые надо кешировать. - канонические 301-редиректы
Адрес приводится к единому виду (www / без www, http / https), чтобы поисковики не плодили дубли одной и той же страницы. - исправление http-ссылок на https на страницах с SSL
Устраняет смешанный контент (mixed content). - фикс canonical, prev и next ссылок в категориях
Исправляет ссылки в категориях 2 уровня и глубже, которые приводили к дубликатам страниц категорий. - защита лимита показа количества товаров на странице
Лимит ограничивается 200 — запросы с громадными лимитами используют, когда хотят положить магазин. - убирание index.php?route=common/home из ссылок на стартовую
Защита и контроль доступа
- распознавание поисковых ботов и проверка «фейковых»
Парсеры, маскирующиеся под Googlebot, разоблачаются обратным DNS и не получают привилегий настоящих поисковиков. - интерфейс Контроль доступа
Позволяет блокировать или разрешать доступ по IP-адресу, целой подсети (CIDR) или названию бота, а также выдавать им только страницы из кеша для экономии ресурсов. - защита от флуда
При шквале запросов с одного адреса он автоматически блокируется, в виджете отображается извещение. - блокировка вредоносных запросов
Отсекаются запросы с признаками SQL-инъекций и обращения к запрещённым служебным URL. - определение реального IP за Cloudflare или прокси
В блокировках, статистике и геоданных виден настоящий адрес посетителя, а не адрес прокси.
Виджет Lightning в админке
- показ загрузки процессора
Нажатие показывает, какие процессы используют процессор, включая обрабатываемые URL. - кнопка Очистить кеш
Очищает все кеши (включая системный кеш и кеш темы Journal), кроме кеша БД Lightning; кнопка Выключить очищает кеш БД Lightning. - показ статистики
Кеши страниц, AJAX-запросов и БД, статистика оптимизированных изображений, среднее TTFB (время генерации страницы) с Lightning и без. - показ TTFB последней отданной страницы в реальном времени
Позволяет оценить «пульс» и скорость работы магазина. - наглядный показ всех посещённых страниц в реальном времени
С указанием IP, агента и времени ответа; нажатие показывает детальную информацию о посетителе, включая карту и возможность его заблокировать. - индикатор фоновой прегенерации и счётчик заблокированных ботов
Ход прегенерации кеша в процентах и количество отсечённых ботов. - показ свободного места на сервере
Помогает заранее среагировать, не доводя ситуацию до критической. - виджет показывается только пользователям с правом изменять (modify) setting/setting
Таким образом виджет можно скрыть от менеджеров.
Инструменты
- Поиск по файлам магазина
Полнотекстовый поиск по исходникам (.php, .tpl, .twig, по желанию .js/.css) с подсветкой совпадений и переходом к нужной строке; строки с паролем БД маскируются. - Просмотр исходного кода
С подсветкой синтаксиса и автопереходом к указанной строке. - Недавно изменённые файлы
Что менялось за последнее время — удобно после обновлений или для поиска последствий взлома. - Просмотр модификаций
Все установленные модификации OCmod и vQmod с их XML, отключённые помечены. - Информация о таблицах БД
Размеры, движок и индексы всех таблиц, конвертация MyISAM → InnoDB в один клик. - Анализатор места на диске и inodes
Топ самых тяжёлых папок магазина по объёму и по количеству файлов (inodes — частый лимит на shared-хостинге), с очисткой кеша и логов в один клик. - Просмотр процессов сервера и MySQL в реальном времени
Помогает поймать тяжёлый или зависший запрос; для процессов Lightning показывается обрабатываемый URL. - Инспектор SQL-запросов
Прогон любого запроса с планом выполнения (EXPLAIN) и стоимостью, с возможностью добавлять, удалять и принудительно задействовать индексы прямо из браузера. - Проверка оптимизаций каталога
Находит проблемы в данных (товары без описаний, отсутствующие переводы, непривязанные или отключённые товары) и исправляет их в один клик. - Просмотрщик логов
Логи OpenCart, vQmod и error_log с подсветкой и обновлением «хвоста» в реальном времени, а также топ самых медленных страниц (index.php?li_op=lg). - Живой лог работы CRON-задачи
В реальном времени видно, какие страницы прегенерируются и сколько это занимает, без копания в серверных логах.
Извещения
- MySQL-запросы медленнее 2 секунд
- MySQL-запросы с результатом более 50 000 строк или более 10 Mb объёмом
- фатальные ошибки во время работы магазина
Намного нагляднее и информативнее, чем в логе. - JS/CSS файлы, на которые есть ссылки, но которых на самом деле нет
- рекомендация перейти на PHP7, если на сервере более низкая версия
- рекомендация включить акселератор PHP (OPcache)
Без него код PHP компилируется заново на каждом запросе. - обнаружение Varnish, mod_pagespeed, выключенного Keep-Alive или неработающего сжатия
Эти вещи могут мешать оптимизации. - рекомендация по изменению robots.txt, если это не удалось сделать автоматически
- инструкции по переводу магазина на полный HTTPS, если это ещё не сделано или сделано неправильно
- инструкции по настройке CRON-задачи для прегенерации страниц
Надёжность
- защита от переполнения диска
При нехватке свободного места кеширование автоматически приостанавливается, а не ломает сайт. - аварийное завершение зависших страниц
Генерация, которая висит дольше допустимого, принудительно прерывается (с записью трассировки), чтобы один тяжёлый запрос не «съел» весь сервер. - мгновенный ответ 404 на запросы к несуществующим файлам
Без запуска всего движка магазина. - корректная работа «мелочей» поверх кеша
Отчёт «Кто онлайн», счётчик просмотров товара и учёт переходов по рекламным ссылкам продолжают работать, хотя страницы отдаются из кеша.
Дополнительные функции
- ускорение отправки почты на последнем шаге оформления заказа
Письма (например, уведомление о заказе) уходят в фоне и не заставляют покупателя ждать на финальном шаге checkout, что заметно ускоряет оформление. Включается отдельно. - мультиязычное извещение об использовании cookie
Многие сторонние реализации некорректно работают с кешированием страниц — эта работает правильно. Включается отдельно. - фоновые (неблокирующие) внешние HTTP-запросы
Обращения к сторонним сервисам выполняются в фоне и не задерживают генерацию страницы. - заголовок X-OpenCart-Lightning в каждом ответе
Содержит время отдачи и генерации, возраст кеша и разбивку по этапам (PHP, Lightning, SQL, ресайз, WebP) — удобно контролировать скорость прямо в инструментах разработчика браузера. - API для разработчиков in_cache() / cache()
Позволяет закешировать результат любой функции одной строкой, с автоматической инвалидацией по изменению указанных таблиц БД. - параметр li_sql=1 в URL
Показывает время выполнения контроллеров и запросов на странице. - параметр li_module=1 в URL
Показывает информацию о модулях — полезно, когда надо определить название модуля для загрузки по AJAX.
Создано 2018-10-15,
последняя правка 2026-06-20