← Назад к вопросам

В 10% случаев покупатель не находит товар в поиске. Каковы возможные причины?

2.3 Middle🔥 211 комментариев
#Гипотезы и валидация#Исследования пользователей#Продуктовые кейсы

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI29 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Возможные причины: 10% покупателей не находят товар в поиске

Когда 10% покупателей не находят товар — это серьёзная проблема, которая стоит 5-10% выручки. Нужно найти root cause. Я использую структурированный подход.

Метод анализа: Top-Down + Bottom-Up

Top-Down (гипотезы):

  1. Проблема в поисковом алгоритме
  2. Проблема в индексировании товаров
  3. Проблема в поведении пользователя
  4. Проблема в данных о товаре (description, keywords)

Bottom-Up (данные):

  1. Analytics: какие поиски приводят к "товар не найден"
  2. Logs: что показывает backend
  3. User interviews: почему они не нашли?

Гипотеза 1: Проблема в поисковом алгоритме (40% вероятность)

Симптомы:

  • Товар есть в системе, но не показывается в поиске
  • Пользователь ищет "красная рубашка", товар есть, но не показывается

Возможные причины:

  1. Poor ranking — товар есть, но он на 5-й странице результатов (пользователь не ищет так глубоко)
  2. Bad relevance matching — алгоритм не понимает, что "красная рубашка" = "рубашка красная"
  3. Synonym matching — ищет "кроссовки", товар помечен как "sneakers", алгоритм не делает перевод
  4. Typo tolerance — ищет "рубашка", опечатка "рубшка", алгоритм не исправляет
  5. Fuzzy search — очень строгое совпадение, не работает близкий поиск

Как проверить:

SELECT search_query, count(*) as searches, 
       (SELECT product_id FROM products 
        WHERE MATCH(title, description) 
        AGAINST(search_query)) as found_products
FROM search_logs
WHERE found_products IS NULL
GROUP BY search_query
ORDER BY searches DESC
LIMIT 20

Это покажет самые частые "не найдено" запросы.

Гипотеза 2: Проблема в индексировании товаров (25% вероятность)

Симптомы:

  • Новый товар добавлен, но поиск его не находит (задержка индекса)
  • Товар потом появляется в поиске через несколько часов

Возможные причины:

  1. Реальная задержка — индекс обновляется каждый час, товар был добавлен за минуту до поиска
  2. Товар не в индексе — из-за ошибки в коде товар не попал в indexed_products
  3. Конфликт версий индекса — старые данные не обновляются на новый индекс
  4. Timeout при индексировании — товар частично проиндексирован (есть title, но нет description)

Как проверить:

SELECT product_id, indexed_at, updated_at, 
       DATEDIFF(MINUTE, updated_at, indexed_at) as delay_minutes
FROM products
WHERE indexed_at < updated_at
LIMIT 100

Если delay > 5 минут — есть проблема в очереди индексирования.

Гипотеза 3: Проблема в данных товара (20% вероятность)

Симптомы:

  • Товар есть в каталоге, но заполнен плохо
  • Ищет "зелёная рубашка", товар есть, но в description только "рубашка", цвет не указан

Возможные причины:

  1. Пустые поля — description = "", только title заполнено
  2. Ошибки в категоризации — товар не в нужной категории, скрыт фильтром
  3. Wrong language — товар добавлен на английском, поиск на русском
  4. Inconsistent data — один товар "рубашка", другой "сорочка", алгоритм не связывает
  5. Short description — description слишком короткий, алгоритм не понимает контекст

Как проверить:

SELECT COUNT(*) as products_without_description
FROM products
WHERE description = '' OR description IS NULL

SELECT title, COUNT(*) as duplicates
FROM products
GROUP BY title
HAVING COUNT(*) > 5
-- может быть одна вещь под разными названиями

Гипотеза 4: Проблема в поведении пользователя (15% вероятность)

Симптомы:

  • Товар в поиске, но пользователи ищут по неправильным ключевым словам
  • Ищут "кроссовки", товар помечен как "спортивная обувь"

Возможные причины:

  1. Wrong mental model — пользователь не знает правильного названия
  2. Regional differences — в России "кроссовки", в Украине "кроссовки", в Беларуси "спортивна абутель"
  3. Slang terms — пользователи ищут "кроссовки", в данных "athletic shoes"
  4. Typos — пользователи часто опечатываются

Как проверить:

SELECT search_query, COUNT(*) as searches
FROM search_logs
WHERE found_products = 0
ORDER BY searches DESC
LIMIT 50

Посмотреть на топ 50 не найденных поисков. Там будут паттерны.

Гипотеза 5: Проблема в фильтрах/категориях (10% вероятность)

Симптомы:

  • Товар в поиске, но скрыт из-за фильтра
  • Ищет "красная рубашка", товар есть, но в фильтре по цвету выбран "синий"

Возможные причины:

  1. Фильтры по цене — пользователь поискал дешёвые товары, товар дорогой
  2. Фильтры по размеру — нет размера XL в наличии
  3. Фильтры по статусу — товар "out of stock" и скрыт
  4. Фильтры по рейтингу — товар новый, нет рейтинга

Метод диагностики

Шаг 1: Определить тип проблемы (1 день)

Я беру 100 случаев, когда "товар не найден" и вручную проверяю:

  • Товар вообще существует? (database query)
  • Почему он не в результатах? (search query analysis)
  • Алгоритм игнорирует? (check relevance score)
  • Это фильтры? (check filter state)

Шаг 2: Собрать данные (2-3 дня)

Запросить от backend/analytics:

  • Top 50 поисков, которые вернули 0 результатов
  • Какие товары подходили бы для каждого поиска? (manual check)
  • Есть ли товары в системе? (если да → проблема алгоритма)

Шаг 3: A/B тест (7-14 дней)

Для каждой гипотезы:

  1. Разработка (2-3 дня)
  2. A/B тест (7 дней)
  3. Анализ (2 дня)

Пример: улучшение relevance алгоритма

  • Control: текущий алгоритм
  • Test: новый алгоритм с fuzzy matching
  • Метрика: % пользователей, которые нашли товар / конверсия

Возможные решения

Если проблема в алгоритме:

  • Добавить fuzzy search (typo tolerance)
  • Улучшить ranking (boosting для популярных товаров)
  • Добавить synonyms (crochet = кроссовки)
  • Добавить ngram indexing (поиск по части слова)

Если проблема в индексировании:

  • Увеличить frequency обновления индекса (с часа на 10 минут)
  • Добавить real-time indexing
  • Добавить health check для индекса

Если проблема в данных:

  • Автоматически заполнять поля (description из категории)
  • Требовать заполнение перед публикацией
  • Добавить валидацию для качества данных

Если проблема в поведении:

  • Добавить suggest/autocomplete (пока пользователь печатает)
  • Добавить "Did you mean?" (может быть вы имели в виду "рубашка"?)
  • Улучшить категоризацию и фильтры

Прибыль от исправления

Если 10% покупателей не находят товар:

  • Выручка за них = X
  • После исправления (найдут 90% вместо 100%) = +X * 0.1 = +10% выручки

Это огромный ROI для 2-недельного проекта.

Итог

Не нужно гадать. Нужно:

  1. Собрать данные из analytics и logs
  2. Вручную проверить 50-100 примеров
  3. Выявить pattern
  4. Гипотезу разработать в A/B тесте
  5. Масштабировать решение