Поиск и фильтры в каталоге интернет-магазина: опечатки, синонимы, артикулы и почему «ничего не найдено» стоит заказов
Короткий ответ: поиск и фильтры — второй после меню путь к товару, и тот, кто ими пользуется, обычно уже знает, что хочет купить. Хороший поиск прощает опечатки и неверную раскладку, понимает словоформы, синонимы и артикул в любом написании, а фильтры строятся из аккуратно заполненных характеристик учётной системы и не показывают пустых значений. Проверить качество можно без разработчика: собрать запросы покупателей в Яндекс Метрике и посмотреть, сколько из них заканчиваются пустой выдачей.
Здесь — про удобство поиска для покупателя и его устройство. Какие страницы фильтров открывать поисковым системам и как не наплодить дублей, мы разобрали в статье про SEO интернет-магазина, а про потери на карточке и в корзине — в разборе брошенных корзин.
Почему встроенный поиск CMS не справляется?
Потому что «из коробки» многие движки ищут по точному совпадению подстроки в названии товара. Покупатель пишет «норковые шубы», а товар называется «Шуба из норки» — и поиск отвечает «ничего не найдено», хотя таких шуб в каталоге два десятка.
Типичные провалы штатного поиска:
- Нет морфологии. «Сапоги», «сапог», «сапогами» — для простого поиска это три разных слова.
- Нет терпимости к опечаткам. Одна лишняя или пропущенная буква — и выдача пустая.
- Неверная раскладка. Человек забыл переключить язык и набрал «irfa». Он видит ноль и решает, что шкафов у вас нет.
- Ищет только по названию. Артикул, бренд, цвет и размер лежат в характеристиках, и поиск их не видит.
- Нет ранжирования. Товары без остатка стоят первыми, аксессуары выше основных товаров, порядок случайный.
- Медленно на большом каталоге. Поиск перебирает таблицу целиком, и на десятках тысяч позиций ответ идёт секундами.
Каждая такая ошибка выглядит мелочью, но человек, который ввёл запрос, был в шаге от покупки. Пустая страница для него означает «товара нет», и он идёт искать к соседям.
Что вводят в поиск магазина на самом деле?
Совсем не то, что в поисковую систему. В магазине пишут коротко: название товара, бренд, артикул или номер детали, иногда свойство — цвет, размер, сечение. Длинные вопросы встречаются редко. Поэтому поиску важнее точно понять два-три слова, чем разбирать фразы.
Если выгрузить запросы любого магазина за месяц, почти всегда видны одни и те же группы:
- Название категории своими словами. «Болгарка» вместо «УШМ», «пуховик» вместо «куртка утеплённая».
- Бренд или модель. Часто латиницей, кириллицей и с ошибками одновременно.
- Артикул или код. У оптовых покупателей и в запчастях это основной способ: человек держит в руках старую деталь или счёт от поставщика.
- Товар плюс свойство. «Графит 48», «чёрный матовый», «кабель 3х2,5».
- То, чего у вас нет. Такие запросы — подсказка для закупки, их стоит смотреть отдельно.
Отсюда главный совет: прежде чем менять поиск, соберите реальные запросы. Пятьдесят самых частых и пятьдесят «пустых» покажут, что чинить первым.
Что должен уметь поиск: чек-лист
Минимум — словоформы, опечатки, раскладку, артикул в любом написании и поиск по характеристикам. Дальше по ситуации: синонимы, кросс-номера, подсказки при вводе и ранжирование с учётом наличия. Проверить каждый пункт можно самому, вводя запросы из таблицы ниже.
Как это устроено технически, коротко:
- Словоформы. Слова запроса и названия товаров приводятся к основе: «шубы», «шубой», «шуба» становятся одним словом.
- Опечатки. Сравнение по похожести, а не по точному совпадению. Популярный способ — разбить слова на тройки букв (триграммы) и искать товары, у которых таких троек больше всего общих с запросом.
- Раскладка. Если по запросу ничего не нашлось, его перекодируют из латинской раскладки в русскую и ищут снова, а покупателю показывают «Показаны результаты по запросу “шкаф”».
- Артикулы. Перед поиском из артикула убирают дефисы, точки и пробелы и приводят буквы к одному регистру — и в запросе, и в базе. Точное совпадение по артикулу ставится первым.
- Синонимы. Словарь, который ведёт менеджер: «болгарка = УШМ». Его пополняют по пустым запросам, а не придумывают заранее.
- Ранжирование. Товары в наличии выше товаров под заказ, точное совпадение названия выше совпадения в описании.
- Подсказки при вводе. После двух-трёх букв — категории и пара товаров с фото. Это экономит покупателю набор и сразу показывает, как у вас называется товар.
Отдельная история — кросс-номера в запчастях, сантехнике, расходниках. Покупатель вводит номер детали другого производителя, а у вас аналог под своим артикулом. Работает это только при наличии таблицы соответствий: её получают от поставщика или из каталога производителя и загружают в магазин. В выдаче аналог стоит помечать именно как замену, чтобы человек не решил, что это оригинал.
| Умение | Пример запроса | Что должно найтись |
|---|---|---|
| Словоформы | «шубы норковые», «норковой шубы» | Те же товары, что по «шуба из норки» |
| Опечатки | «норак», «сапоги зимнии» | Норка и зимние сапоги, а не пустая страница |
| Неверная раскладка | «irfa» вместо «шкаф» | Шкафы, с подсказкой «Возможно, вы искали…» |
| Латиница и транслит | «блэкглама», «bosch» и «бош» | Один и тот же бренд при любом написании |
| Артикул с разделителями и без | «AB-1234», «ab1234», «AB 1234» | Ровно этот товар первым |
| Кросс-номера и аналоги | Номер детали другого производителя | Товар-аналог с пометкой, что это замена |
| Свойство в запросе | «графит 48», «кабель 3х2,5» | Товары с этим цветом и размером, сечением |
| Синонимы и сленг | «пуховик» и «куртка пуховая», «болгарка» и «УШМ» | Одинаковая выдача по обоим словам |
| Бессмыслица | «ывапролд» | Честное «ничего не найдено» с выходом в каталог |
Фильтры: откуда брать характеристики?
Из учётной системы, где уже живёт номенклатура: чаще всего из 1С или МоегоСклада. Если характеристики там заполнены единообразно, фильтры строятся автоматически при каждой выгрузке. Если нет — сначала чистка справочников, иначе в фильтре окажутся «Красный», «красн.» и «red» как три разных цвета.
При обмене с 1С по стандартному протоколу CommerceML на сайт приходят свойства товаров и их значения, а для товаров с вариантами — характеристики вроде размера и цвета. Что из этого станет фильтром, решают при проектировании каталога. Подробно про сам обмен — в статье о магазине с обменом 1С.
Что важно заложить в фильтры с самого начала:
- Свой набор фильтров для каждой категории. У шуб — длина и капюшон, у кабеля — сечение и число жил. Общий список «на все товары» превращает панель в простыню.
- Числа как числа. Цена, размер, мощность — диапазоном или ползунком, а не списком из сотни значений.
- Счётчики без нулей. Рядом со значением — сколько товаров останется после выбора, а значения с нулём скрыты или неактивны. Тонкость: счётчик значений внутри одного фильтра не должен учитывать уже выбранное в этом же фильтре, иначе после выбора одного цвета все остальные цвета покажут ноль.
- Наличие отдельным фильтром. Часто это первый фильтр, который нажимают.
- Выбранное видно и снимается одним касанием. Особенно на телефоне, где панель фильтров открывается поверх каталога.
- Фильтр не сбрасывается при возврате. Покупатель открыл карточку, вернулся — его выбор и место в списке на месте.
Пример из нашей практики — магазин шуб AleksFurs. Там фильтры по наличию, скидке, капюшону, цене, размеру 38–60, виду меха, цвету, фасону и длине работают в любом сочетании, и счётчик у значения не учитывает свой же фильтр: выбрав канадскую норку, покупатель видит, сколько моделей у скандинавской и американской, а не нули. Поиск построен на триграммном индексе PostgreSQL без отдельного движка: «норак» находит норку, «графит 48» — графитовые шубы 48-го размера, «блэкглама» — мех Blackglama, записанный латиницей, а бессмыслица честно даёт ноль.
Что показывать, если ничего не найдено?
Не пустую страницу. Пустая выдача должна признать, что совпадений нет, и сразу дать выход: исправленный запрос, похожие товары, популярные категории, телефон или форму «найдём под заказ». Для товара, которого нет, это ещё и сигнал закупщику.
Что поставить на страницу «ничего не найдено»:
- Строку поиска с введённым запросом, чтобы его легко поправить.
- «Возможно, вы искали…» — вариант после исправления опечатки или раскладки.
- Результаты по части запроса: если «шуба норка 64» пусто, покажите норку без размера.
- Ссылки на 4–6 ходовых категорий.
- Предложение оставить запрос: «Не нашли нужное? Напишите, подберём». Для B2B и запчастей это ещё один путь к заявке.
И обратное правило: не надо любой ценой что-то показывать. Если на запрос «ывапролд» магазин выдаёт сотню случайных товаров, покупатель теряет доверие к поиску вообще. Честный ноль с понятными выходами полезнее мусора.
Готовый поисковый сервис или своя доработка?
Подключаемый сервис поиска удобен, если платформа магазина популярная и нужно быстро. Своя доработка выгоднее, когда каталог связан с 1С, нужны особые правила выдачи и не хочется платить подписку и держать копию каталога у третьей стороны. Для каталога в несколько тысяч товаров часто хватает возможностей самой базы данных.
Варианты своей доработки, от простого к сложному:
- Средствами базы данных. Полнотекстовый поиск с морфологией и триграммный индекс в PostgreSQL закрывают словоформы, опечатки и артикулы. Нет отдельного сервера и второй копии данных.
- Отдельный поисковый движок с открытым кодом (например, Elasticsearch, OpenSearch или Meilisearch) на вашем сервере. Оправдан на крупных каталогах, при сложном ранжировании и высокой нагрузке, но это ещё один сервис, который надо обновлять и синхронизировать с каталогом.
Цены подключаемых сервисов не приводим: у каждого свой тариф, и зависит он от числа товаров или запросов — сверяйте на сайте сервиса на дату решения. Главное — посчитать стоимость за два-три года, а не за первый месяц, и спросить, как выгрузить свои настройки и синонимы, если решите уйти.
| Подключаемый сервис поиска | Своя доработка | |
|---|---|---|
| Как платите | Ежемесячная подписка, часто зависит от числа товаров или запросов | Разово за разработку, дальше — поддержка |
| Скорость запуска | Быстро, если ваша платформа поддерживается | Зависит от объёма каталога и правил |
| Управление выдачей | В рамках настроек сервиса | Любые правила: наличие, маржа, сезон |
| Где данные каталога | Копия каталога у стороннего сервиса | Только на вашем сервере |
| Связь с 1С и фильтрами | Через выгрузку фида или модуль | Те же данные, что в каталоге, без второй копии |
| Риск | Сервис поднимет цену или закроется | Нужен разработчик, который разберётся в коде |
Как проверить качество поиска по Метрике?
Проще всего, если запрос попадает в адрес страницы результатов, например /search/?q=шуба. Тогда фразы видны в отчёте Метрики «По параметрам URL», а для замера пустой выдачи и кликов добавляют цель с параметрами. Отдельной разработки для этого не нужно — только цель и небольшой код на странице результатов.
Порядок действий по справке Яндекс Метрики:
- Запросы. Откройте Отчёты → Содержание → «По параметрам URL» и найдите параметр поиска. Там видно, что и как часто ищут. В этом отчёте нельзя использовать цели, поэтому для конверсии нужен следующий шаг.
- Пустая выдача. Пусть страница результатов при нуле найденных отправляет цель, например «search_empty», с параметром — текстом запроса. Код описан в справке об отчёте «Параметры целей»: ym(номер_счётчика, 'reachGoal', 'search_empty', {query: '…'}). Сами фразы смотрите там же: Отчёты → Содержание → «Параметры целей».
- Клик из выдачи. Вторая цель — переход из результатов поиска в карточку. Доля поисков с кликом показывает, насколько выдача попадает в ожидания.
- Заказы. Сравните конверсию в заказ у визитов с поиском и без него. Если с поиском она ниже, поиск мешает, а не помогает.
Что считать раз в месяц: долю пустых выдач, долю поисков без клика и полсотни самых частых «пустых» запросов. По последнему списку пополняется словарь синонимов и видно, какие товары спрашивают, но не находят.
Если поиск работает без смены адреса, например только скриптом в окне подсказок, запросы в отчёт по параметрам URL не попадут — их придётся передавать целью с параметрами с самого начала.
Когда это не нужно и какие ошибки встречаются чаще всего?
Если в магазине три десятка товаров и пять категорий, сложный поиск не нужен: покупатель найдёт всё через меню, а деньги разумнее вложить в фото и описания. Поиск с опечатками, синонимами и фильтрами оправдан там, где товаров сотни и тысячи и где покупают по артикулу.
Ошибки, которые встречаются чаще всего:
- Чинят поиск, не посмотрев запросы. Делают словарь синонимов «из головы», а покупатели ищут совсем другими словами.
- Фильтры из грязных справочников. Три варианта одного цвета, размеры «XL», «xl» и «50-52» вперемешку.
- Все свойства — в фильтры. Двадцать фильтров на категорию, половиной из которых никто не пользуется.
- Фильтры перезагружают страницу и сбрасываются. На телефоне это особенно раздражает.
- Нет наличия в ранжировании. Первым в поиске стоит товар, который нельзя купить.
- Поиск без замера. Никто не знает, сколько запросов заканчиваются нулём, и проблема годами не видна.
Сколько стоит доработка?
В новом магазине поиск и фильтры входят в тариф: каталог с категориями, фильтрами, поиском и карточками есть в составе интернет-магазина от 104 000 ₽ и от 5 дней. Доработку поиска в работающем магазине оцениваем отдельно — после того как посмотрим код, платформу и выгрузку запросов.
Что влияет на цену доработки:
- Платформа. В своём коде доработать проще, чем в чужой CMS с закрытыми модулями.
- Объём каталога и характеристик. Тысяча товаров и сто тысяч — разные задачи по скорости и индексам.
- Состояние справочников в 1С. Если их нужно чистить, это отдельная работа, часть которой остаётся на вашей стороне.
- Кросс-номера и аналоги. Нужна таблица соответствий и правила её обновления.
- Замер. Цели и отчёты в Метрике под поиск — небольшая, но отдельная задача.
Если поиск и фильтры потом надо развивать — пополнять синонимы, добавлять фильтры под новые категории, — это удобно делать в рамках поддержки от 7 900 ₽ в месяц. Состав тарифа магазина и что в него не входит — на странице разработки интернет-магазина; итоговую цену и срок называем после брифа и фиксируем в договоре, оплата — 50 % после подписания договора и 50 % после подписания акта.
Короткие ответы на частые вопросы
Нужен ли отдельный поисковый движок для небольшого магазина?
Чаще нет. Для каталога в несколько тысяч товаров опечатки, словоформы и артикулы закрываются средствами самой базы данных, например триграммным индексом PostgreSQL. Отдельный движок оправдан при больших каталогах, сложном ранжировании и высокой нагрузке.
Почему поиск не находит товар по артикулу?
Обычно артикул в базе записан с дефисом или пробелом, а покупатель вводит его слитно, или поиск ищет только по названию. Помогает нормализация: перед поиском убрать разделители и привести буквы к одному регистру и в запросе, и в данных.
Откуда взять синонимы для поиска?
Из самих запросов покупателей. Выгрузите фразы, по которым поиск вернул ноль или по которым ушли без клика, и найдите там другие названия ваших товаров. Это надёжнее любого готового словаря.
Можно ли сделать фильтры, если в 1С характеристики заполнены как попало?
Можно, но сначала придётся навести порядок в справочниках: «Красный», «красн.» и «red» станут тремя разными значениями фильтра. Обычно часть чистки делают скриптом при загрузке, остальное — руками в 1С.
Сколько стоит доработать поиск в готовом магазине?
Зависит от платформы, объёма каталога и того, что именно сломано. Мы смотрим код и выгрузку запросов, после этого называем цену и срок и фиксируем их в договоре.
Услуги и кейсы по теме: интернет-магазины · кейс AleksFurs · цены и сроки
Пришлите адрес магазина и десяток запросов, на которые поиск отвечает плохо, — разберём причины и назовём цену и срок доработки до старта.
Рассчитать проект →Оценку срока и цены по брифу делаем бесплатно, обычно отвечаем в течение часа в рабочее время. Типовой договор — посмотреть до оплаты.
