Парсер ключей Озон нужен всем, кто зависит от органического трафика с поиска маркетплейса: продавцам, которые сами ведут карточки, и агентствам, которые настраивают рекламу на десятки магазинов сразу. Вручную подобрать релевантные фразы для сотни SKU нереально, а сервисы аналитики закрывают выгрузку частотности платной подпиской. Дальше показываю, откуда Ozon берет данные для автодополнения в поиске, как собрать их скриптом на Python и на что обратить внимание, чтобы скрипт не блокировали через день после запуска.
Зачем продавцу собственная база поисковых фраз Ozon
Карточка на Ozon ранжируется по тем же принципам, что и страница сайта в поиске: заголовок, характеристики и описание должны содержать слова, которые реально вбивают покупатели. Я смотрел статистику по десятку карточек разных продавцов и почти всегда вижу одно и то же: в заголовке стоит красивое название бренда, а слово, по которому товар ищут чаще всего, туда не попало вообще.
Свой список поисковых фраз закрывает три задачи сразу:
- заголовки и характеристики карточек - под конкретные запросы, а не под интуицию
- ставки в Трафарете и Поиске - без слива бюджета на фразы, по которым никто не ищет
- кластеризация конкурентов - видно, какими словами описывают тот же товар другие продавцы
На практике 30-40 собранных и отфильтрованных фраз для одной товарной позиции хватает, чтобы закрыть и SEO карточки, и первую рекламную кампанию.
Откуда Ozon отдает данные для сбора семантики
У Ozon нет открытого аналога Вордстата, но данные, из которых складывается семантика, доступны в нескольких местах:
- автодополнение в строке поиска - подсказки, которые Ozon показывает при вводе запроса
- блок «С этим товаром покупают» и «Похожие запросы» на карточке товара
- количество найденных позиций в выдаче по запросу - косвенный индикатор популярности фразы
- категории и фильтры каталога - названия фильтров часто совпадают с реальными запросами
Все это открытые данные, которые видит любой посетитель сайта без авторизации. Задача парсера ключевых запросов Ozon - не изобретать доступ туда, где его нет, а автоматизировать то, что вручную занимает часы: перебор десятков сидовых фраз через автодополнение и сохранение результата в таблицу.
Готовые сервисы аналитики или свой парсер: что выбрать
На рынке есть сервисы вроде MPSTATS и Moneyplace, которые уже собирают семантику Ozon и продают доступ по подписке. У них хорошая база и готовые отчеты, но есть ограничения, с которыми я регулярно сталкиваюсь у клиентов.
| Критерий | Готовый сервис аналитики | Свой парсер под задачу |
|---|---|---|
| Глубина данных | только то, что заложено в интерфейс | любой источник, который отдает Ozon: подсказки, фильтры, категории |
| Скорость обновления | по расписанию сервиса, обычно раз в сутки | по своему расписанию, вплоть до нескольких раз в день |
| Интеграция с рабочими процессами | выгрузка в Excel вручную | автоматическая запись в базу, уведомление в Telegram, запуск по крону |
| Порог входа | минимальный, регистрация и оплата | нужна разработка под конкретный набор категорий |
Подписки на такие сервисы на рынке стоят от 3000 до 15000 ₽ в месяц в зависимости от тарифа и числа магазинов - это не моя цена, а ориентир по рынку. Свой скрипт я делаю разово, дальше он работает без ежемесячной платы за чужой сервис.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Как собрать парсер ключевых запросов Ozon на Python
Забираю подсказки автодополнения
Логика простая: беру список сидовых фраз, широкие категорийные запросы вроде «кроссовки мужские» или «чехол для телефона», по каждой дергаю подсказки автодополнения и получаю набор более узких фраз с хвостами.
import requests
import time
import random
import csv
SEED_QUERIES = ["кроссовки мужские", "чехол для телефона", "повербанк"]
USER_AGENTS = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15",
]
def get_suggestions(query):
url = "https://www.ozon.ru/api/entrypoint-api.bx/page/json/v2"
params = {"url": f"/search/suggest?text={query}"}
headers = {"User-Agent": random.choice(USER_AGENTS)}
response = requests.get(url, params=params, headers=headers, timeout=10)
response.raise_for_status()
return response.json().get("suggestions", [])
results = []
for seed in SEED_QUERIES:
for phrase in get_suggestions(seed):
results.append({"seed": seed, "phrase": phrase})
time.sleep(random.uniform(1.5, 3.5))
with open("ozon_keywords.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=["seed", "phrase"])
writer.writeheader()
writer.writerows(results)
Структура ответа у Ozon меняется без предупреждения, поэтому в реальном проекте я оборачиваю парсинг подсказок в отдельную функцию с обработкой на случай, если ключ в JSON пропал или сервер вернул другой формат.
Считаю частотность и группирую фразы
У Ozon нет прямой цифры «частотность в месяц», как в Вордстате. Я использую два косвенных показателя: позицию фразы в списке подсказок, чем выше, тем чаще ищут, и число товаров в выдаче по этому запросу. После сбора 800‑1200 фраз для одной категории через пандас группирую их по совпадающим словам и оставляю 60-80 самых частотных и релевантных, остальное в заголовок и характеристики карточки все равно не поместится.
Делаю скрипт устойчивым к банам
Без этого пункта половина парсеров умирает на третий день работы. Что реально помогает:
- пауза между запросами 1,5-3,5 секунды со случайным разбросом, а не фиксированный интервал
- ротация IP через пул прокси, если объем сбора большой
- рандомизация User-Agent и заголовков между запросами
- соблюдение общего лимита запросов в минуту, чтобы не перегружать сервер
Задача не в том, чтобы притвориться кем-то другим, а в том, чтобы скрипт вел себя как обычный посетитель с браузером, а не как бот, отправляющий сотню запросов в секунду.
Что делать с собранной семантикой ключей Ozon
Дальше список фраз превращается в конкретные правки:
- в заголовок карточки - 1-2 самые частотные фразы, без переспама
- в характеристики и описание - остальные релевантные фразы естественным текстом
- в рекламный кабинет - фразы с высокой частотой и явным коммерческим смыслом идут в Поиск, широкие - в Трафарет
- в отдельный список минус-фраз - все, что нашлось случайно и не относится к товару
На одном проекте с категорией «автомобильные аксессуары» пересборка заголовков под собранную семантику подняла позиции карточек в поиске Ozon по 15 из 40 ключевых фраз в течение трех недель, без изменения цены и без вложений в рекламу.
Автоматизация сбора: расписание, база и уведомления
Разовый сбор семантики устаревает за месяц-два: конкуренты меняют заголовки, появляются новые товары, сезонность двигает частотность. Я обычно ставлю сбор на регулярную основу:
- сам скрипт запускается по крону или через настройку автоматизации сбора данных в n8n, без ручного запуска раз в неделю
- результаты пишутся в PostgreSQL на сервере в РФ, а не в Google Таблицы - так проще хранить историю по неделям и не гонять коммерческие данные через зарубежное облако
- бот на aiogram раз в сутки присылает в Telegram сводку: сколько новых фраз, что выросло в выдаче, что пропало
Такая связка снимает с меня и с клиента рутину: не нужно помнить про запуск скрипта, отчет сам падает в чат.
Частые вопросы
Законно ли парсить ключевые запросы Ozon?
Да, если собираете открытые данные, которые видит любой посетитель сайта без авторизации: подсказки поиска, названия категорий, количество товаров в выдаче. Проблемы начинаются, если парсер работает через закрытые разделы личного кабинета продавца с чужими учетными данными - это уже не про сбор ключевых слов, а другая история.
Как часто нужно обновлять собранную семантику?
Для активных категорий, одежда и электроника, я пересобираю ключи раз в месяц, для нишевых товаров с низкой конкуренцией хватает раза в квартал. Резкий скачок конкуренции или новый сезон - повод пересобрать вне графика.
Сколько стоит разработка парсера ключевых слов под Ozon?
Разработка парсинга и автоматизации на Python у меня - от 20 000 ₽, итоговая цена зависит от числа источников данных (только подсказки или еще и категории с фильтрами) и от того, нужна ли интеграция с базой и уведомлениями в Telegram.
Можно ли использовать Ozon Seller API вместо парсинга ключевых фраз?
Seller API отдает статистику по вашим собственным товарам и рекламным кампаниям, но не показывает поисковые подсказки и семантику по категории в целом. Для сбора ключевых фраз это разные источники, и на практике я использую оба: API для своей статистики, парсер подсказок - для внешней семантики.