Перейти к содержимому
SEO/Опубликовано 29 августа 2026 г./5 мин

IndexNow: переобход в Яндексе за минуту и почему Bing отвечает 403

Как устроен IndexNow, чем он отличается от sitemap.xml и очереди Вебмастера, почему на исправный ключ приходит 403 UserForbiddedToAccessSite и как отличить эту ошибку от поломки.

IndexNow: переобход в Яндексе за минуту и почему Bing отвечает 403
С
Команда NEXFORCE
SEO-эксперт NEXFORCE

IndexNow — это способ сказать поисковику «вот этот адрес изменился» в момент выкладки, не дожидаясь, пока робот дойдёт до страницы сам. Один HTTP-запрос, никакой авторизации, ключ лежит файлом в корне сайта. У нас он отправляется автоматически при каждом деплое, и вот что мы про него выяснили за неделю возни, включая ошибку, из-за которой три дня казалось, что ключ не работает.

Чем IndexNow отличается от карты сайта

Оба решают одну задачу — донести до робота новое на сайте, — но с разных сторон. Разница в том, кто делает первый шаг и по какому поводу: карта ждёт, когда за ней придут, уведомление уходит само и по конкретной правке.

sitemap.xmlIndexNow
Кто начинаетробот приходит самсайт отправляет сам
Что передаётвесь список адресовтолько изменившиеся
Когда сработаеткогда робот дойдётсразу после запроса
Обратная связьв Вебмастере, с задержкойкод ответа сразу

Карта сайта — опись: 191 страница у нас на сегодня, каждая с датой последнего изменения. Робот сверяется с ней в своём темпе. IndexNow — это стук в дверь по конкретному поводу.

Одно другого не отменяет. Без sitemap.xml поисковик не узнает о страницах вне ссылок; без уведомлений правка на живой странице пролежит незамеченной неделями. Что такое карта сайта и как она устроена — в словаре, проверить свою можно бесплатной проверкой.

Как выглядит заявка

Минимальный вариант — обычный GET, его удобно запускать руками для проверки:

https://yandex.com/indexnow?url=https://example.ru/page/&key=<ключ>

Пакетный — POST с JSON, до 10 000 адресов за раз:

{
  "host": "example.ru",
  "key": "<ключ>",
  "keyLocation": "https://example.ru/<ключ>.txt",
  "urlList": ["https://example.ru/a/", "https://example.ru/b/"]
}

Ключ — произвольная шестнадцатеричная строка от 8 до 128 знаков. Владение доменом подтверждает файл: по адресу https://example.ru/<ключ>.txt отдаётся тот же ключ. Других процедур нет.

Что означают коды ответа:

  • 200, 202 — принято, адреса встали в очередь;
  • 403 — права на домен не подтверждены на стороне приёмника;
  • 422 — ключ пока не прочитан с сайта или адрес не с того домена;
  • 429 — слишком часто.

Отдельная грабля с ключевым файлом. У нас их какое-то время было два: второй завёлся по ошибке и остался лежать в public/. Скрипт брал первый по алфавиту и слал не тот ключ, который был указан в теле запроса. Ответ приходил осмысленный, заявка не работала. Ключ должен быть один.

Почему Bing отвечает 403 на исправный ключ

Самая дорогая по времени часть истории. Протокол задуман как общий: отправляешь на api.indexnow.org, он раздаёт участникам. На практике общий приёмник пересылает заявку в Bing и возвращает его отказ, если домен там не подтверждён.

Замер сегодня, 29 августа 2026, один и тот же адрес и один и тот же ключ на три приёмника:

yandex.com        → 200
www.bing.com      → 403
api.indexnow.org  → 403

Тело ответа у Bing и у общего приёмника совпадает дословно:

{"errorCode":"UserForbiddedToAccessSite",
 "message":"User is unauthorized to access the site.
            Please verify the site using the key and try again"}

Отсюда два вывода. Первый: общий приёмник — не независимая инстанция, а прокси, его отказ о протоколе не говорит ничего. Второй, важнее: сообщение «verify the site using the key» вводит в заблуждение. Оно предлагает починить ключ, а ключ исправен: тот же ключ в ту же секунду принимает Яндекс, а файл https://nexforce.ru/<ключ>.txt отдаётся с кодом 200. Дело в неподтверждённом домене на стороне Bing.

Проверка, которая разводит эти два случая за пятнадцать секунд:

for host in yandex.com www.bing.com; do
  curl -o /dev/null -w "$host %{http_code}\n" "https://$host/indexnow?url=<адрес>&key=<ключ>"
done

Яндекс 200 и Bing 403 — права в Bing. Оба 403 — смотреть на ключевой файл.

Честная часть: у нас Bing Webmaster подключён 22 августа импортом прав из Search Console, bingbot сайт обходит — 72 обращения в логах, — а IndexNow оттуда по-прежнему 403. Прошло 7 дней, ничего не изменилось. Поэтому наш скрипт шлёт напрямую на приёмник Яндекса, а Bing ждёт отдельной регистрации ключа.

Что считать изменившимся

Отправлять весь сайт при каждой выкладке нельзя — шум, поисковик его игнорирует. Значит, нужен ответ на вопрос «что изменилось с прошлого раза». У нас два способа, оба живут в репозитории.

По содержимому сборки. Скрипт обходит собранные страницы, считает по каждой хеш содержимого и сравнивает с сохранённым состоянием прошлой выкладки. Разошёлся хеш — адрес в отправку. Способ не знает про исходники и ловит любое изменение, включая случайное.

По изменённым файлам. Второй скрипт смотрит git diff с предыдущим коммитом и превращает пути в адреса: content/blog/*.md/blog/<слаг>/ и так далее. Быстрее, но со слепым пятном, на котором мы обожглись: правка в общем модуле меняет десятки страниц, а в список не попадёт ни одна. Девять новых страниц однажды уехали на боевой, не сообщив о себе никому, — с тех пор такие адреса передаются явно.

Предохранитель. Если после пересборки «изменилось» больше 50% сайта, отправка пропускается. Почти всегда это правка шаблона или сбитое состояние, а не работа над страницами; слать такой пакет вредно. Нужно всё равно — отдельный флаг, осознанно. Первый запуск при пустом состоянии тоже молчит: иначе уедут все страницы разом.

IndexNow не заменяет очередь Вебмастера

Это два разных сигнала, и подменять один другим — ошибка, стоившая нам нескольких недель ожидания.

Первый из них — широковещательное уведомление. Его принимают несколько поисковиков, никакой очерёдности они не обещают и о судьбе конкретного адреса не отчитываются. Ответ 200 означает «получили», а не «поставили в план обхода».

Очередь переобхода в Яндекс.Вебмастере — именная заявка роботу на конкретный адрес. У неё квота 150 адресов в сутки, у каждой заявки есть идентификатор, и по нему видно, забрал робот страницу или нет. Что такое переобход и когда его заказывать — в словаре; остальные разделы Вебмастера, которые обычно пролистывают, разобраны в отдельной статье.

Поэтому после каждой выкладки у нас идут оба шага подряд: сначала IndexNow по изменившимся адресам, потом очередь Вебмастера по тем же. Один шаг дешёвый и без гарантий, второй с квотой и с обратной связью. Квота при этом не жмёт: 150 страниц в сутки на обычной выкладке не выбираются и наполовину — за раз меняются единицы адресов.

Чего IndexNow не делает

Ускоряет обход. Не ускоряет попадание в поиск.

Мы померили это на себе 10 августа: сравнили все страницы сайта с выборкой Вебмастера и искали отличия попавших в поиск от непопавших. Объём текста не объясняет ничего — у страниц вне поиска он местами даже больше. Входящие ссылки не объясняют ничего: у страниц в поиске их медиана 9, у страниц вне поиска — 12, то есть наоборот. Выборку разделил начисто только возраст. Восемь терминов словаря вне поиска оказались ровно теми восемью, что добавлены тем же утром; двадцать восемь, добавленных двумя днями раньше, были в поиске все до одного. Один шаблон, один автор, разница только в двух сутках.

Отсюда правило: судить о новой странице раньше 48 часов нельзя. IndexNow сокращает время до визита робота, а не время до решения о включении в поиск. Ждать позиций на следующее утро после отправки — способ потерять время и переписать нормальный текст.

Порядок для своего сайта

  1. Придумать ключ — шестнадцатеричная строка, 8–128 знаков. Подойдёт вывод openssl rand -hex 16.
  2. Положить файл <ключ>.txt в корень сайта, внутри — тот же ключ. Убедиться, что он отдаётся с кодом 200 по прямой ссылке.
  3. Проверить приёмники руками — одним GET на Яндекс и одним на Bing. Так вы сразу узнаете, где у вас подтверждены права, и не будете потом чинить исправный ключ.
  4. Слать только изменившееся. Нужен любой способ ответить «что поменялось» — хеши сборки или разбор коммита.
  5. Поставить предохранитель на массовую отправку, иначе одна правка шаблона однажды выльется в пакет из сотен адресов.
  6. Добавить второй сигнал — очередь переобхода в Вебмастере по тем же адресам.
  7. Не мерить результат раньше двух суток.

Первые четыре шага занимают 30 минут и делаются один раз. Дальше — строчка в скрипте выкладки, о которой можно не помнить.

Вопросы и ответы

FAQ по теме

Что такое IndexNow простыми словами?+
Протокол, которым сайт сам сообщает поисковику, что конкретный адрес изменился. Отправляется список адресов и ключ, лежащий файлом в корне сайта. Это уведомление о правке, а не заявка на индексацию: карта сайта перечисляет всё и ждёт, когда робот дойдёт, IndexNow называет несколько адресов сразу.
Почему IndexNow отвечает 403 UserForbiddedToAccessSite?+
Так отвечает Bing, когда домен не подтверждён в его кабинете. Ключ при этом может быть полностью исправным. Проверка простая: отправить тот же адрес с тем же ключом на приёмник Яндекса. Если оттуда приходит 200, дело не в ключе, а в правах на стороне Bing.
IndexNow заменяет переобход в Яндекс.Вебмастере?+
Нет, это два разных сигнала. IndexNow — уведомление «адрес изменился», без очерёдности и без обратной связи. Очередь переобхода Вебмастера — именная заявка роботу с квотой 150 адресов в сутки и идентификатором задачи, по которому видно, забрал он страницу или нет. Мы шлём оба.
Сколько адресов можно отправлять за раз?+
Технически до 10 000 в одном запросе. Практически слать весь сайт при каждой выкладке бессмысленно и вредно: пакет из сотен адресов читается как попытка продавить переобход. У нас в скрипте стоит предохранитель — если «изменилось» больше половины сайта, отправка пропускается.