Экспертиза

Что такое IndexNow и как им пользоваться

Что такое IndexNow и как им пользоваться
Содержание

Статья:

IndexNow — протокол, по которому сайт сам пушит поисковику: «вот этот URL поменялся, обнови индекс». Поддерживают Яндекс, Bing, Yep, Naver, Seznam.cz. Google в 2026 году протокол по-прежнему игнорирует (почему и как это обходить ) — держите это в уме, если основная ставка на Google: там нужен отдельный канал.

Сразу оговорка, которая экономит вам нервы: ответ 200 от API IndexNow значит «запрос принят», а не «страница в индексе». Дальше решает поисковик. Ниже — как настроить, отправить и не наступить на грабли, которые встречаются в 90% внедрений.

Настройка за 15 минут

  1. Сгенерируйте ключ — строка 8–128 символов, подойдёт openssl rand -hex 16 или любой генератор паролей.
  2. Положите файл <ключ>.txt в корень сайта, содержимое файла = сам ключ.
  3. Проверьте доступность командой:
curl -IL https://example.com/7890ce5948f053bcab4e7fbe4217df87.txt

Ожидаемый результат — HTTP/2 200 и content-type: text/plain. Если 404 — файл не выложился в корень (частая причина: CDN кеширует старую версию корня, или файл случайно попал в подпапку). Если 200, но при этом сервер возвращает content-type: text/html — некоторые статические генераторы заворачивают .txt в HTML-обёртку через middleware, и поисковик получит не тот контент. Это надо проверять именно так, а не «на глаз» в браузере — браузер не покажет заголовки.

Один URL — GET-запрос

https://api.indexnow.org/indexnow?url=https%3A%2F%2Fexample.com%2Fpage%2F&key=7890ce5948f053bcab4e7fbe4217df87

Подходит для точечной отправки: поправили одну страницу — сразу дёрнули урл руками или скриптом. Для регулярной работы это неудобно — переходите на batch. Если хотите подробнее узнать, как правильно оформить запрос, см. Как сообщить Яндексу и Bing о новой странице через IndexNow .

Пакетная отправка — POST-запрос

curl -X POST https://api.indexnow.org/indexnow \
  -H "Content-Type: application/json" \
  -d '{
    "host": "example.com",
    "key": "7890ce5948f053bcab4e7fbe4217df87",
    "keyLocation": "https://example.com/7890ce5948f053bcab4e7fbe4217df87.txt",
    "urlList": [
      "https://example.com/posts/article-1/",
      "https://example.com/posts/article-2/",
      "https://example.com/posts/article-3/"
    ]
  }'

Лимит одного батча — 10 000 URL. У Bing есть свой отдельный URL Submission API с лимитом 500 URL за раз и более жёсткой суточной квотой — если у вас крупный e-commerce с ежедневными обновлениями цен, ориентируйтесь на квоту Bing, а не на общий лимит IndexNow, иначе упрётесь в 429 именно на стороне Bing.

Практический совет для тех, кто ведёт контентный проект с частыми публикациями: повесьте отправку batch на хук деплоя (post-build скрипт, GitHub Actions job после сборки). Ручная отправка забывается уже на третьей неделе.

Куда слать: общий endpoint или напрямую

api.indexnow.org — прокси сразу на все системы протокола, это стандартный выбор. Прямые адреса на случай, если хотите продублировать или подозреваете задержку у прокси:

  • Яндекс: https://yandex.com/indexnow
  • Bing: https://www.bing.com/indexnow

Разбор кодов ответа: что делать с каждым

КодЧто значитЧто делать
200URL принят синхронноНичего, это успех на уровне протокола
202Принят, обработка асинхроннаяЖдать, не долблить повторными запросами
400Битый формат запросаПроверить JSON валидатором, чаще всего лишняя запятая или несовпадение полей
403Ключ не найден/не совпадаетcurl -IL по keyLocation — файл должен отдавать 200 и точное содержимое ключа
422URL не принадлежит hostСверить host в JSON и домен в urlList посимвольно, включая www.
429Превышены лимитыСделать backoff минимум на час, не слать повторно немедленно

Самая частая ошибка на практике — рассинхрон host и urlList: в JSON стоит "host": "example.com", а в списке урлы вида https://www.example.com/.... Протокол считает это разными хостами и вернёт 422. Правило простое: host должен быть точной строкой из домена в URL, без исключений.

Сценарий: страница висит без индексации после IndexNow — что делать

Отправили batch, получили 202, но через 5–7 дней в Яндекс.Вебмастере (Индексирование → Статистика обхода) страница всё ещё не появилась. Порядок диагностики:

  1. Проверьте robots.txt и meta robots на самой странице — если стоит noindex или страница закрыта в robots.txt, IndexNow отправку примет, но поисковик её не проиндексирует и доверие к будущим уведомлениям с этого домена начнёт снижаться.
  2. Проверьте, что страница реально отдаёт 200, а не редирект или 404 — отправка URL, который на самом деле ведёт на 301, тоже расходует «кредит доверия» впустую.
  3. Если с техникой всё чисто — зайдите в Яндекс.Вебмастер → Индексирование → Переобход страниц и добавьте URL туда вручную (квота обычно ограничена, до 20 URL в сутки на молодых доменах) — это второй, независимый канал, который иногда срабатывает быстрее, чем ожидание после IndexNow.
  4. Если страниц много и нужно быстро понять, какие из отправленных URL реально попали в индекс, а какие зависли — массовая ручная проверка через операторы site: не масштабируется дальше десятка страниц. Для пакетной проверки статуса индексации по списку URL используют Rush Analytics — там же можно поставить список на регулярный мониторинг и увидеть просадку без ручного пересчёта каждый раз.

Отдельная история — индексация чужих страниц и бэклинков

IndexNow работает только для страниц, которыми вы владеете и можете подтвердить ключом. Для чужих URL — например, бэклинков, которые вы получили на биржах или через аутрич — этот протокол не подходит в принципе: у вас нет доступа положить файл-ключ в корень чужого домена.

Именно для этой задачи существуют отдельные сервисы-индексаторы, которые не полагаются на IndexNow, а используют собственные механизмы прогона (краулинг через сеть, RSS-пинги, синтетические переходы). Если ведёте линкбилдинг и получаете ссылки на биржах вроде miralinks или gogetlinks, добавленную ссылку стоит прогонять через индексатор бэклинков — например, SpeedyIndex или IndexMeNow — иначе купленная ссылка может месяцами висеть непроиндексированной и не передавать вес. Подробнее о подобных сервисах читайте в IndexMeNow: обзор сервиса индексации Google с оплатой за результат .

Чего избегать

  • Не долбите API по 1000 URL каждые 5 минут — быстро поймаете 429, а на репутационном уровне поисковик может начать хуже доверять сигналам с домена.
  • Не отправляйте закрытые в robots.txt или noindex страницы — конфликт снижает доверие к последующим уведомлениям.
  • Не гоняйте весь сайт раз в неделю «на всякий случай» — IndexNow про новые/изменённые страницы, а не про периодический пинг всего домена. Это читается как попытка накрутки сигнала.
  • Не путайте 200 с фактом индексации. Проверяйте реальный статус в Яндекс.Вебмастере или через массовую проверку, а не по коду ответа API.
  • Не теряйте ключ без плана ротации. При компрометации — генерируйте новый ключ, кладите новый файл, старый оставьте активным ещё несколько дней, чтобы не ловить 403 на уже отправленные ранее URL.

Что реально даёт IndexNow в 2026 году

Для зрелого сайта с нормальным sitemap и без структурных проблем — это несколько процентов ускорения попадания в индекс Яндекса и Bing, заметнее всего на проектах с частым обновлением большого числа страниц (цены, новости, статусы). Для молодого домена с тонким контентом или слабой перелинковкой IndexNow ничего не вытянет — поисковик примет уведомление и всё равно решит по совокупности сигналов на своей стороне.

Связанные термины