Статья:
IndexNow — протокол, по которому сайт сам пушит поисковику: «вот этот URL поменялся, обнови индекс». Поддерживают Яндекс, Bing, Yep, Naver, Seznam.cz. Google в 2026 году протокол по-прежнему игнорирует (почему и как это обходить ) — держите это в уме, если основная ставка на Google: там нужен отдельный канал.
Сразу оговорка, которая экономит вам нервы: ответ 200 от API IndexNow значит «запрос принят», а не «страница в индексе». Дальше решает поисковик. Ниже — как настроить, отправить и не наступить на грабли, которые встречаются в 90% внедрений.
Настройка за 15 минут
- Сгенерируйте ключ — строка 8–128 символов, подойдёт
openssl rand -hex 16или любой генератор паролей. - Положите файл
<ключ>.txtв корень сайта, содержимое файла = сам ключ. - Проверьте доступность командой:
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
Разбор кодов ответа: что делать с каждым
| Код | Что значит | Что делать |
|---|---|---|
| 200 | URL принят синхронно | Ничего, это успех на уровне протокола |
| 202 | Принят, обработка асинхронная | Ждать, не долблить повторными запросами |
| 400 | Битый формат запроса | Проверить JSON валидатором, чаще всего лишняя запятая или несовпадение полей |
| 403 | Ключ не найден/не совпадает | curl -IL по keyLocation — файл должен отдавать 200 и точное содержимое ключа |
| 422 | URL не принадлежит 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 дней в Яндекс.Вебмастере (Индексирование → Статистика обхода) страница всё ещё не появилась. Порядок диагностики:
- Проверьте robots.txt и meta robots на самой странице — если стоит
noindexили страница закрыта в robots.txt, IndexNow отправку примет, но поисковик её не проиндексирует и доверие к будущим уведомлениям с этого домена начнёт снижаться. - Проверьте, что страница реально отдаёт 200, а не редирект или 404 — отправка URL, который на самом деле ведёт на 301, тоже расходует «кредит доверия» впустую.
- Если с техникой всё чисто — зайдите в Яндекс.Вебмастер → Индексирование → Переобход страниц и добавьте URL туда вручную (квота обычно ограничена, до 20 URL в сутки на молодых доменах) — это второй, независимый канал, который иногда срабатывает быстрее, чем ожидание после IndexNow.
- Если страниц много и нужно быстро понять, какие из отправленных 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 ничего не вытянет — поисковик примет уведомление и всё равно решит по совокупности сигналов на своей стороне.
Связанные термины
- sitemap.xml — карта важных страниц, IndexNow её не отменяет (чем IndexNow отличается от sitemap.xml )
- robots.txt и noindex — правила обхода, IndexNow их не обходит
- Crawl budget — лимит на обход, IndexNow помогает Яндексу и Bing его экономить
- Google Indexing API — отдельный канал для Google, ограничен только JobPosting и BroadcastEvent
- IndexNow и AI-поиск: что доказано, а что нет
