«Умный поиск» и оптимизация шапки для интернет-магазина CrowdGames


Задача: исправить работу «умного поиска», снизить влияние тяжёлых медиа в шапке (GIF), оптимизировать скорость загрузки, а также реализовать ряд дополнительных улучшений UX и бизнес-логики.

Что выяснили после аудита

  • «Умный поиск» иногда не срабатывал для незалогиненных пользователей. При воспроизведении бага поиск мог возвращать неправильный набор результатов или вовсе не показывать подсказки в отдельном браузере/инкогнито.
  • Шапка сайта (кастомный виджет) тянула большое количество изображений — в том числе тяжёлые GIF — и замедляла загрузку страницы. По наблюдению редактора InSales, в шапке происходила итерация по множеству категорий/баннеров; маркетинг загружал GIF, которые увеличивали вес страницы.
  • Консоль показывала ошибки (в том числе связанные с дублями запросов и некорректной обработкой символа «ё»).
  • Уникальные пожелания бизнеса: исключать слово «игра» из поискового запроса, показывать копейки только в личном кабинете, добавлять в результаты поиска не только товары, но и релевантные категории (раздел «материалы об игре»), и реализовать правило бесплатной доставки при наличии товара с определённым параметром.
  • Личный кабинет (особый вид) при большом числе заказов выдавал 505/555 ошибки из-за переполнения переменной, собирающей номера заказов.

Бизнес-логика и UX-доработки

Реализовали исключение заданных слов из поискового запроса (по просьбе — слово «игра» исключено). Добавили возможность отображать категории/материалы в результатах поиска отдельным блоком (отдельная секция: «Материалы об игре» — показывается отдельно от списка товаров, с независимой пагинацией/кнопкой «Показать ещё»). Внедрили правило подмены стоимости доставки: если в заказе есть товар с заданным параметром — при определённых способах доставки стоимость ставится в 0 (реализуемо для собственных способов доставки; для сторонних интеграторов — требуется проверка их возможностей и доступы).

Реализовали показ копеек только в определённых шаблонах ЛК (страница Истории заказов и страница заказа) — гибкое решение, не затрагивающее весь сайт. Исправили «переполнение переменной» в экране ЛК: изменили сбор номеров заказов на локальные подциклы, что устранило ошибку 505/555 и позволило корректно открывать профиль пользователей с тысячами заказов.

Результат

  • Поиск стабильно работает для всех пользователей (авторизованных и незалогиненных). AJAX-поиск: оптимизация debounce, устранение двойных запросов; добавлен индикатор загрузки.
  • Вес главной страницы и время загрузки снизились благодаря переходу на webm/webp и lazy-load (пример: GIF 5.25 MiB → WEBM 459 KiB). Медиа: поддержка webm/webp; рекомендации по конвертации (например ezgif или массовая конвертация на стороне маркетинга); опция «пока не перезалили — показывать статичную картинку».
  • Дубли запросов и баг с «ё» исправлены — консоль без связанных ошибок.
  • Внедрены дополнительные возможности: исключение слов из поиска, отображение материалов/категорий, гибкие правила доставки, показ копеек в ЛК, устранение 505/555 ошибок в личном кабинете. ЛК: смена схемы сбора данных (локальные подциклы) — уменьшение размера единой переменной, предотвращение переполнения.
  • Правила доставки: дублирование способа доставки + проверка параметров товара → подмена стоимости на 0 при выполнении условия.
  • Поиск категорий/материалов: отдельный блок с независимой пагинацией / кнопкой «показать ещё».

Хотите такую же проверку производительности и набор улучшений для своего интернет-магазина? Свяжитесь с нами — сделаем быстрый аудит, подготовим план и смету.

Хотите такую же проверку производительности в своём магазине?

Получите оценку стоимости в течение 30 минут!