break_domain: проверка позиций в разы дешевле
· позиции · экономия
Типовая проверка позиций устроена расточительно. Чтобы узнать, что сайт стоит на седьмом месте, парсер выкупает всю сотню результатов: девяносто три строки уходят в мусор, а деньги за них списаны. Умножьте на тысячу запросов в ежедневном мониторинге, и станет понятно, куда утекает бюджет.
Параметр break_domain решает это в лоб: вы передаёте домен, и как только он встретился в выдаче,
парсинг останавливается. Платите только за страницы, которые реально были просмотрены. Работает
в /api/yandex, /api/google и /api/bing одинаково.
Откуда берётся переплата
Выдача отдаётся страницами по 10 результатов, страница стоит 0.01 ₽. Когда нужен весь топ-100, скажем для анализа конкурентов, вы честно платите 0.10 ₽ и забираете сотню документов. Вопросов нет.
Но у мониторинга позиций сценарий другой. Из всей сотни вас интересует одна строка: где стоит ваш сайт. При этом большинство отслеживаемых запросов сидит в топ-30, а продвигаемые вообще на первой-второй странице. Получается, что в среднем от 70 до 90% купленных результатов никто даже не читает.
Что делает break_domain
Воркер идёт по выдаче постранично. Забрал первую страницу, проверил, есть ли там ваш домен. Если есть,
всё: ответ отдан, списана одна страница. Если нет, идёт дальше, и так до потолка, который вы задали параметром
pages.
Сколько это в деньгах, проще показать таблицей. Сценарий: проверяем топ-100, то есть
pages=10.
| Позиция сайта | Просмотрено страниц | С break_domain | Без него |
|---|---|---|---|
| 3 | 1 | 0.01 ₽ | 0.10 ₽ |
| 14 | 2 | 0.02 ₽ | 0.10 ₽ |
| 47 | 5 | 0.05 ₽ | 0.10 ₽ |
| нет в топ-100 | 10 | 0.10 ₽ | 0.10 ₽ |
Худший случай: сайт не найден, тогда цена совпадает с обычной. Во всех остальных вы платите меньше, и чем лучше позиции, тем заметнее разница. Для семантики, где ядро в основном в топ-20, счёт за мониторинг падает в четыре-пять раз.
Как это выглядит в запросе
Один дополнительный параметр, больше ничего менять не надо:
https://jsonseo.ru/api/yandex?key=ВАШ_КЛЮЧ&text=купить+ноутбук&lr=213&pages=10&break_domain=example.com
В ответе будут все результаты с просмотренных страниц, включая тот, ради которого запускалась проверка. Позицию
считаете по порядковому номеру. Домен сравнивается без учёта www, так что example.com
поймает и www.example.com.
Регион задаётся как обычно: lr=213 для Москвы, 2 для Санкт-Петербурга,
54 для Екатеринбурга. Как снимать позиции сразу по нескольким городам, разбирали в
отдельной статье.
В Google то же самое, только параметры свои:
https://jsonseo.ru/api/google?key=ВАШ_КЛЮЧ&q=купить+ноутбук&pages=10&break_domain=example.com
Логика идентичная: воркер листает выдачу, пока не наткнётся на домен или не упрётся в лимит страниц. Bing работает по тому же принципу через /api/bing.
Обратите внимание на pages: это потолок расхода на запрос. Если проверяете только топ-30,
ставьте pages=3, и даже при полном отсутствии сайта в выдаче запрос обойдётся максимум
в 0.03 ₽.
Позиции через MCP
Тот же механизм встроен в наш MCP-сервер. Инструменты
yandex_position, google_position и bing_position принимают запрос
и домен, а возвращают только номер позиции, без простыни из ста результатов, которая забивает контекст
модели. Внутри они работают через тот же break_domain, так что экономия та же.
Практический сценарий с Claude Code («проверь позиции сайта по этим двадцати запросам и сведи в таблицу») описан в статье про проверку позиций через Claude Code.
Когда break_domain не нужен
Если вы собираете выдачу целиком (парсите заголовки конкурентов, считаете, сколько агрегаторов в топе, строите отчёт по видимости всех сайтов ниши), параметр только помешает: парсинг оборвётся на первом вхождении домена, а вам нужны все страницы. Для таких задач просто не передавайте его.
И ещё нюанс: break_domain останавливает поиск на первом совпадении. Если сайт встречается в выдаче дважды, второе вхождение в ответ не попадёт. Для проверки позиций это ровно то, что нужно, а вот для анализа уже нет.
Попробовать на своих запросах
Прикинем месяц мониторинга. Ядро на 500 запросов, съём раз в день, глубина до топ-100. Без break_domain это 500 × 10 страниц × 30 дней = 150 000 страниц, или 1500 ₽. Если ядро в среднем сидит в топ-20, с break_domain уйдёт около 30 000 страниц, примерно 300 ₽. Одна и та же задача, разница в пять раз, и никакой магии: вы просто перестали покупать страницы, которые не читаете.
При регистрации на баланс падают 10 ₽, это тысяча страниц выдачи. Если сайт в среднем в топ-20, одна проверка позиции съедает две страницы, то есть бесплатных запросов хватит примерно на 500 проверок. Достаточно, чтобы прогнать заметный кусок ядра и сравнить цифры с текущим сервисом. Ключ лежит в личном кабинете, а если вы переезжаете с XMLRiver или XMLStock, посмотрите инструкцию по переезду, там есть таблица соответствия параметров.