В 10% случаев покупатель не находит товар в поиске. Каковы возможные причины?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Возможные причины: 10% покупателей не находят товар в поиске
Когда 10% покупателей не находят товар — это серьёзная проблема, которая стоит 5-10% выручки. Нужно найти root cause. Я использую структурированный подход.
Метод анализа: Top-Down + Bottom-Up
Top-Down (гипотезы):
- Проблема в поисковом алгоритме
- Проблема в индексировании товаров
- Проблема в поведении пользователя
- Проблема в данных о товаре (description, keywords)
Bottom-Up (данные):
- Analytics: какие поиски приводят к "товар не найден"
- Logs: что показывает backend
- User interviews: почему они не нашли?
Гипотеза 1: Проблема в поисковом алгоритме (40% вероятность)
Симптомы:
- Товар есть в системе, но не показывается в поиске
- Пользователь ищет "красная рубашка", товар есть, но не показывается
Возможные причины:
- Poor ranking — товар есть, но он на 5-й странице результатов (пользователь не ищет так глубоко)
- Bad relevance matching — алгоритм не понимает, что "красная рубашка" = "рубашка красная"
- Synonym matching — ищет "кроссовки", товар помечен как "sneakers", алгоритм не делает перевод
- Typo tolerance — ищет "рубашка", опечатка "рубшка", алгоритм не исправляет
- 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% вероятность)
Симптомы:
- Новый товар добавлен, но поиск его не находит (задержка индекса)
- Товар потом появляется в поиске через несколько часов
Возможные причины:
- Реальная задержка — индекс обновляется каждый час, товар был добавлен за минуту до поиска
- Товар не в индексе — из-за ошибки в коде товар не попал в indexed_products
- Конфликт версий индекса — старые данные не обновляются на новый индекс
- 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 только "рубашка", цвет не указан
Возможные причины:
- Пустые поля — description = "", только title заполнено
- Ошибки в категоризации — товар не в нужной категории, скрыт фильтром
- Wrong language — товар добавлен на английском, поиск на русском
- Inconsistent data — один товар "рубашка", другой "сорочка", алгоритм не связывает
- 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% вероятность)
Симптомы:
- Товар в поиске, но пользователи ищут по неправильным ключевым словам
- Ищут "кроссовки", товар помечен как "спортивная обувь"
Возможные причины:
- Wrong mental model — пользователь не знает правильного названия
- Regional differences — в России "кроссовки", в Украине "кроссовки", в Беларуси "спортивна абутель"
- Slang terms — пользователи ищут "кроссовки", в данных "athletic shoes"
- Typos — пользователи часто опечатываются
Как проверить:
SELECT search_query, COUNT(*) as searches
FROM search_logs
WHERE found_products = 0
ORDER BY searches DESC
LIMIT 50
Посмотреть на топ 50 не найденных поисков. Там будут паттерны.
Гипотеза 5: Проблема в фильтрах/категориях (10% вероятность)
Симптомы:
- Товар в поиске, но скрыт из-за фильтра
- Ищет "красная рубашка", товар есть, но в фильтре по цвету выбран "синий"
Возможные причины:
- Фильтры по цене — пользователь поискал дешёвые товары, товар дорогой
- Фильтры по размеру — нет размера XL в наличии
- Фильтры по статусу — товар "out of stock" и скрыт
- Фильтры по рейтингу — товар новый, нет рейтинга
Метод диагностики
Шаг 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 дней)
Для каждой гипотезы:
- Разработка (2-3 дня)
- A/B тест (7 дней)
- Анализ (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-недельного проекта.
Итог
Не нужно гадать. Нужно:
- Собрать данные из analytics и logs
- Вручную проверить 50-100 примеров
- Выявить pattern
- Гипотезу разработать в A/B тесте
- Масштабировать решение