ГлавнаяБлог
IndexNow: мгновенная индексация страниц

IndexNow: мгновенная индексация страниц

IndexNow: мгновенная индексация страниц — иллюстрация к статье блога SEO Мастера
Автор: SEO Мастера · агентство продвижения с 2005 года Дата: 21 июля 2026 Время чтения: 23 мин

Классическая схема обхода устроена так: вы что-то поменяли на сайте и ждёте, пока робот сам догадается зайти. Ждать можно от нескольких часов до нескольких недель — в зависимости от того, насколько поисковик считает ваш сайт важным. IndexNow переворачивает эту логику: вместо ожидания вы отправляете поисковой системе HTTP-запрос «вот эти адреса изменились, приходите». Протокол открытый, бесплатный, поддерживается Яндексом и Bing, внедряется за час и не требует ни модерации, ни квот в привычном смысле. При этом вокруг него накопилось столько мифов — от «это ускоряет индексацию в десять раз» до «это вообще не работает», — что разбираться приходится с нуля. В этой статье: как устроен протокол, как правильно поставить ключ, чем отправка отличается от переобхода в Вебмастере, как автоматизировать процесс и на каких ошибках теряют весь эффект. Всё в контексте практической работы по SEO-продвижению сайтов.

Коротко

  • IndexNow — открытый протокол push-уведомлений для поисковиков: вы сообщаете об изменении URL, а не ждёте, пока робот придёт сам.
  • Из значимых для рунета систем протокол поддерживают Яндекс и Bing; Google его не использует и работает по своей модели обхода.
  • Внедрение сводится к трём вещам: сгенерировать ключ, положить текстовый файл с ключом в корень сайта, научить CMS дёргать API при публикации и обновлении.
  • Уведомление ускоряет обход, но не гарантирует индексацию: страница всё равно проходит обычный отбор по качеству и дублям.
  • Отличие от переобхода в Вебмастере — в масштабе и автоматизации: переобход это ручная точечная заявка с квотой, IndexNow — постоянный поток машинных уведомлений.
  • Главный антипаттерн — слать весь сайт целиком и по любому чиху: поисковик снижает доверие к источнику, который сообщает об изменениях там, где ничего не менялось.
  • Эффект нужно измерять по логам сервера: разница между временем отправки и временем первого обхода — единственная честная метрика.

Что такое IndexNow и какую проблему он решает

Стандартная модель работы поисковой системы — pull: робот сам решает, какие URL и как часто обходить. Он опирается на историю сайта, частоту обновлений, ссылочные сигналы, данные из sitemap.xml и десяток внутренних эвристик. Владелец сайта в этой схеме — пассивная сторона. Он может подсказать (картой сайта, перелинковкой, lastmod), но не может сказать «зайди сюда сейчас».

IndexNow добавляет к этому push-канал. Вы отправляете простой HTTP-запрос на публичный эндпоинт и передаёте список изменившихся адресов. Поисковик получает сигнал в момент изменения, а не через несколько дней, когда до вашей страницы дойдёт очередь. Протокол был анонсирован Microsoft и Яндексом как открытый стандарт, и его спецификация намеренно сделана примитивной — ни OAuth, ни токенов с истечением срока, ни SDK. Подтверждение владения сайтом реализовано через файл с ключом в корне домена: если вы смогли положить туда файл, значит домен ваш.

Экономический смысл для поисковика очевиден: обходить сайты вслепую дорого. Если владелец сам сообщает, где произошли изменения, робот не тратит запросы на проверку неизменившихся страниц. Это прямая экономия краулингового бюджета — причём обоюдная: и поисковик экономит ресурсы, и ваш сервер получает меньше бессмысленных обращений.

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

Три сценария, где выигрыш максимален

Протокол даёт разный эффект в зависимости от типа проекта. Больше всего он помогает там, где контент часто меняется и где ценность страницы быстро тает:

  • Интернет-магазины с живым ассортиментом. Изменилась цена, появилось наличие, добавилась новая карточка — робот узнаёт об этом в тот же день, а не через две недели. Для e-commerce это напрямую конвертируется в актуальный сниппет и корректные данные о товаре в выдаче. Подробнее о специфике — в материале про SEO для интернет-магазина.
  • Новостные разделы и блоги с высокой частотой публикаций. Здесь счёт идёт на часы: материал, попавший в индекс на второй день, теряет большую часть возможного трафика.
  • Крупные каталоги с сотнями тысяч URL. На таких проектах полный цикл обхода растягивается на недели. Точечное уведомление позволяет вытащить конкретные изменившиеся страницы из общей очереди, не дожидаясь, пока робот доберётся до них по обычному расписанию.

И обратная сторона: если у вас корпоративный сайт на 40 страниц, которые меняются раз в квартал, IndexNow не изменит вашу жизнь. Он не повредит, настроить его стоит, но ожидать роста позиций от него не нужно — робот и так успевает обходить такой сайт целиком.

Кто реально поддерживает протокол

Это первый вопрос, на котором большинство статей даёт неточный ответ. Разберём честно.

Поисковая системаСтатус поддержкиЧто это значит на практике
Яндекс Полная поддержка, собственный эндпоинт Ключевая система для рунета. Уведомления попадают в очередь обхода наравне с другими сигналами
Bing Полная поддержка, один из авторов протокола Статистика отправок видна в Bing Webmaster Tools — удобный контрольный канал
Seznam Поддерживается Чешский поиск, для рунета не актуален
Naver Поддерживается Корейский поиск, релевантен только при работе на этот рынок
Сервисы на индексе Bing Косвенная выгода Отдельно ничего слать не нужно: они опираются на индексы систем, которые протокол уже поддерживают
Google Не использует Заявлял о тестировании, но в рабочий процесс не внедрил. Для Google работают sitemap, перелинковка и общая скорость сайта

Важнейшая техническая деталь протокола: достаточно отправить уведомление на один эндпоинт. Участники обмениваются полученными списками между собой. То есть отправка на общий адрес api.indexnow.org доставит сигнал и в Яндекс, и в Bing, и в остальные системы-участники. Дублировать один и тот же список по всем адресам не нужно и вредно — вы просто увеличиваете нагрузку и рискуете нарваться на ограничение по частоте.

При этом на практике мы часто настраиваем отправку напрямую на эндпоинт Яндекса для проектов, ориентированных исключительно на рунет: так короче цепочка и проще диагностировать проблемы. Для Google параллельно работают традиционные инструменты — корректный sitemap.xml с честным lastmod и Google Search Console. О различиях в подходах двух систем мы писали в отдельном материале про SEO под Google.

ВАЖНО ПОНИМАТЬ

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

Как устроен протокол: ключ, файл, эндпоинт

Ключ

Ключ — произвольная строка длиной от 8 до 128 символов. Допустимы латинские буквы в любом регистре, цифры и дефис. Никакой криптографии за ним не стоит: это просто общий секрет, доказывающий, что отправитель имеет доступ к файловой системе сайта. Практика — брать UUID без дефисов или 32-символьную hex-строку; читаемых слов лучше избегать, чтобы ключ нельзя было подобрать перебором.

Файл с ключом

Файл называется {ключ}.txt и содержит ровно тот же ключ обычным текстом. То есть если ключ — a1b2c3d4e5f60718293a4b5c6d7e8f90, то по адресу https://site.ru/a1b2c3d4e5f60718293a4b5c6d7e8f90.txt должна открываться страница с этим же значением внутри. Требования к файлу:

  • Код ответа 200, без редиректов на пути.
  • Тип содержимого text/plain. HTML-обёртка от CMS или JSON недопустимы — некоторые движки любят отдавать «красивую» страницу вместо простого текста.
  • Содержимое — только ключ. Ни BOM, ни лишних строк, ни комментариев.
  • Доступность по тому же протоколу и хосту, что и отправляемые URL. Для https-сайта — обязательно https. О том, почему протокол вообще должен быть один, — в статье про переход на HTTPS.
  • Файл не должен быть закрыт в robots.txt. Это редкая, но убийственная ошибка на сайтах с агрессивным Disallow для корневых txt-файлов.

Область действия ключа

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

Отдельно про поддомены: каждый хост — отдельная сущность. Файл ключа на site.ru не авторизует URL на shop.site.ru. Если у вас региональная сетка поддоменов, ключевой файл нужно раскатать на каждый из них. То же касается пары «с www» и «без www» — формально это разные хосты, и хотя один из них обычно редиректит на другой, файл лучше сделать доступным на обоих. Логика выбора структуры разбиралась в материале про поддомены или подпапки.

Пошаговое внедрение

1

Сгенерировать ключ

Возьмите 32-символьную случайную hex-строку. Сгенерировать можно чем угодно — от openssl rand -hex 16 до любого генератора UUID. Сохраните значение в конфиге проекта или в переменных окружения, а не в коде: ключ придётся менять, если он утечёт.

2

Положить файл в корень

Создайте файл {ключ}.txt в корневой директории сайта с содержимым, равным ключу. Проверьте отдачу через curl: код 200, тип text/plain, тело совпадает с ключом байт в байт. Файл должен пережить деплой — добавьте его в репозиторий или в шаблон выкладки.

3

Проверить доступность из внешней сети

Откройте файл в браузере в режиме инкогнито и через любой внешний сервис проверки заголовков. На сайтах за CDN и WAF корневые txt-файлы иногда попадают под правила блокировки или отдаются с задержкой кэширования — это выясняется только внешней проверкой. Нюансы работы прокси-слоя разбирали в статье про CDN и SEO.

4

Отправить первый тестовый URL

Простым GET-запросом отправьте один реальный адрес и посмотрите код ответа. 200 — всё сработало, 202 — ключ принят в проверку, всё остальное разбираем по таблице ниже. Не начинайте с массовой отправки: сначала убедитесь, что конфигурация корректна на одном URL.

5

Встроить отправку в CMS

Повесьте вызов на события публикации и существенного обновления материала. Ключевое слово — «существенного»: смена счётчика просмотров, лайка или порядка блоков поводом не является. Для типовых движков есть готовые модули, для самописных — два десятка строк кода в обработчике сохранения.

6

Сделать отправку асинхронной

Никогда не отправляйте уведомление синхронно внутри запроса пользователя. Внешний API может отвечать медленно или не отвечать вовсе — и редактор будет смотреть на крутящийся спиннер при сохранении статьи. Кладите URL в очередь, отправляйте фоновым воркером или по крону.

7

Настроить логирование ответов

Пишите в лог: что отправили, когда, каким методом, какой код ответа получили. Без этого журнала любая диагностика превращается в гадание, а через полгода никто не вспомнит, работает интеграция вообще или тихо отваливается с ошибкой 403.

8

Снять контрольный замер по логам сервера

Через 2–4 недели сопоставьте журнал отправок с логами обращений робота. Вас интересует медиана задержки между отправкой уведомления и первым обходом URL. Методика разбора — в материале про анализ логов сервера.

Два способа отправки: GET и POST

Протокол предусматривает две формы запроса. Выбор между ними определяется тем, сколько URL вы отправляете за раз.

GET — один URL

Простейший вариант: обычная ссылка вида https://api.indexnow.org/indexnow?url=https%3A%2F%2Fsite.ru%2Fpage%2F&key=ВАШ_КЛЮЧ. Отправляемый адрес обязан быть URL-энкодирован, иначе параметры «поедут» на первом же амперсанде или кириллическом символе. Такой формат удобен для отладки, для точечных отправок и для встраивания в простые CMS-хуки.

POST — до 10 000 URL за раз

Для пакетной отправки используется POST с JSON-телом и заголовком Content-Type: application/json; charset=utf-8. Структура тела:

Поле JSONОбязательноеЧто содержитТиповые ошибки
host Да Хост без протокола: site.ru Указывают с https:// или со слешем на конце — запрос отклоняется
key Да Тот же ключ, что лежит в txt-файле Расхождение в регистре или пробел, прилипший из буфера обмена
keyLocation Нет Полный URL файла ключа, если он лежит не в корне Указывают, когда файл и так в корне, — лишний источник рассинхрона
urlList Да Массив полных URL с протоколом, до 10 000 штук Смешивают адреса разных хостов в одном запросе — весь пакет уходит в отказ

Все URL в одном POST-запросе обязаны принадлежать хосту, указанному в поле host. Если вы управляете сетью поддоменов, каждому нужен свой запрос со своим host и своим ключом. Лимит в 10 000 адресов на запрос щедрый, но не воспринимайте его как приглашение отправлять по 10 000 URL ежедневно — об этом ниже, в разделе про подводные камни.

Коды ответа: читаем то, что вернул сервер

Интеграция, которая не проверяет коды ответа, — это интеграция, которая рано или поздно молча перестанет работать. Разбор возможных ответов:

КодЗначениеЧто произошлоДействие
200 OK URL приняты, ключ проверен и валиден Ничего, записать в лог успех
202 Accepted URL приняты, ключ ещё проверяется Норма для первых отправок. Если 202 держится днями — проверьте доступность файла ключа
400 Bad request Некорректный формат запроса: битый JSON, нет обязательного поля, невалидный URL Проверить структуру запроса и энкодинг адресов
403 Forbidden Ключ не найден или не совпадает с содержимым файла Открыть файл ключа запросом, сравнить посимвольно, проверить тип содержимого
422 Unprocessable Entity URL не принадлежат указанному хосту либо ключ не соответствует схеме или хосту Проверить http/https, www и без www, отсутствие чужих доменов в urlList
429 Too Many Requests Слишком частые обращения, поведение расценено как спам Снизить частоту, включить экспоненциальный бэк-офф, объединять URL в пакеты

Про 429 стоит сказать отдельно. Формальных публичных лимитов частоты протокол не декларирует, но защита от злоупотреблений на стороне поисковика есть, и она реагирует не только на число запросов в секунду, но и на осмысленность отправок. Разумная схема для большинства проектов: агрегировать изменения и отправлять пакетом раз в 5–15 минут, а не дёргать API на каждое сохранение записи. При получении 429 — не повторять запрос немедленно, а откладывать с удвоением интервала.

ТИПОВАЯ ЛОВУШКА С 403

Самая частая причина 403 — не опечатка в ключе, а сервер, который отдаёт файл с неправильным типом содержимого. Часть CMS перехватывает все запросы через фронт-контроллер и возвращает ключ внутри HTML-обёртки с типом text/html. Формально код 200, глазами в браузере всё выглядит правильно, а протокол ключ не принимает. Проверяйте не браузером, а запросом с выводом заголовков ответа.

IndexNow против переобхода в Вебмастере: в чём разница

Это главный источник путаницы. У Яндекса есть инструмент «Переобход страниц» в Яндекс.Вебмастере, есть API Вебмастера с той же функцией, и есть поддержка IndexNow. Все три канала делают формально похожую вещь — просят робота зайти на URL, — но живут по разным правилам.

ПараметрIndexNowПереобход в ВебмастереSitemap.xml с lastmod
Модель Push: вы уведомляете в момент изменения Push: заявка вручную или через API Pull: робот приходит и читает сам
Охват систем Яндекс, Bing и другие участники сразу Только Яндекс Все поисковики
Ограничения До 10 000 URL в запросе, защита от спама Суточная квота, зависящая от размера сайта 50 000 URL и 50 МБ на один файл
Подтверждение прав Файл с ключом в корне Подтверждённый сайт в аккаунте Вебмастера Не требуется
Автоматизация Тривиальная: один HTTP-запрос без авторизации Через API Вебмастера с OAuth-токеном Генерация файла на стороне сайта
Типичное применение Поток изменений: новые товары, обновления цен, публикации Точечно: важная посадочная, срочная правка, проверка после фикса Базовый слой: полная карта сайта с датами
Можно ли отказаться Можно, но теряете скорость Можно, но теряете ручной рычаг Нельзя, нужен всегда

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

Отдельно про Google: у него есть Indexing API, но он официально предназначен только для страниц с разметкой вакансий и трансляций. Использовать его как универсальный ускоритель индексации нельзя — это прямое нарушение условий использования. Для Google остаётся классика: чистая структура, быстрая отдача сервера, честный lastmod и внутренние ссылки на новые страницы с часто обходимых узлов.

Что отправлять, а что не отправлять

Список отправляемых URL — не «все страницы сайта», а «страницы, которые действительно изменились и должны быть в индексе». Эта дисциплина определяет, будет ли поисковик доверять вашим уведомлениям.

Отправлять

Новые страницы

Опубликованная статья, новая карточка товара, новый раздел каталога. Момент отправки — сразу после того, как страница стала публично доступна и отдаёт код 200.

Отправлять

Существенные обновления

Изменилась цена, наличие, характеристики, переписан текст, обновлены изображения. Всё, что меняет смысл страницы для пользователя или содержимое сниппета.

Отправлять

Удалённые страницы

URL, который стал отдавать 404 или 410, тоже стоит отправить: это ускоряет выпадение из индекса. Протокол это явно допускает.

Отправлять

Изменившиеся редиректы

После склейки старых адресов или смены структуры отправьте старые URL, чтобы робот быстрее увидел новый 301-редирект и перенёс сигналы.

Не отправлять

Технические изменения

Счётчики просмотров, ротация блока «похожие товары», обновление даты в подвале, пересборка кэша. Для поисковика страница не изменилась.

Не отправлять

Закрытые от индексации URL

Адреса под Disallow, с noindex, неканонические варианты, страницы фильтров и служебные разделы. Уведомление о них — чистый шум.

Не отправлять

Весь сайт разом

Массовая выгрузка всех URL «на всякий случай» — самый быстрый способ обесценить свои же уведомления. Исключение — единоразовая отправка при миграции.

Не отправлять

Черновики и стейджинг

Страницы со статусом «черновик», превью-ссылки, адреса тестового контура. Классическая утечка, когда хук висит на любом сохранении.

Отдельная дисциплина — неканонические адреса. Если страница доступна по нескольким URL, отправлять нужно только канонический вариант. Уведомление о неканоническом адресе не приведёт к его индексации, но добавит вам мусора в статистике, а роботу — бессмысленных обходов. Механику разбирали в статье про canonical и дубли страниц.

Автоматизация: как это делают на реальных проектах

Архитектура интеграции

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

  1. Событие. CMS фиксирует изменение сущности и кладёт URL в очередь с меткой времени и типом изменения. Никаких сетевых вызовов в этот момент.
  2. Фильтрация. Перед отправкой URL проходит проверки: страница публична, отдаёт 200, не закрыта в robots.txt, не имеет noindex, канонический адрес совпадает с самим собой.
  3. Дедупликация. Если один и тот же URL менялся пять раз за десять минут, в отправку уходит один экземпляр. Дедуп по URL в окне 10–15 минут снимает основную массу дублей.
  4. Троттлинг. Ограничение на число уведомлений в сутки по домену. Разумный потолок задаётся исходя из реальной частоты изменений: если сайт объективно меняет 300 страниц в день, отправка 5 000 — это сигнал о баге, а не о продуктивности.
  5. Пакетирование. Накопленные URL уходят одним POST-запросом раз в несколько минут. Это и экономнее, и безопаснее с точки зрения лимитов.
  6. Повторы. При ошибках 5xx и таймаутах — повтор с экспоненциальной задержкой. При 400 и 422 повторять бессмысленно: это ошибка в данных, её нужно чинить, а не ретраить.
  7. Журнал. Каждая отправка пишется в таблицу: URL, время, код ответа, номер попытки. Этот журнал — основа для последующего анализа эффективности.

ПРАВИЛО ОЧЕРЁДНОСТИ

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

Готовые решения по платформам

Писать интеграцию с нуля нужно далеко не всегда — для популярных CMS протокол уже поддерживается на уровне плагинов и модулей.

  • WordPress. Поддержка встроена в основные SEO-плагины, есть и отдельный плагин от Bing. Настройка сводится к генерации ключа в интерфейсе — файл создаётся автоматически. Проверьте только, что он реально отдаётся с диска, а не генерируется на лету и не ломается при включении кэширующего плагина. Общие настройки движка — в материале про SEO на WordPress.
  • 1С-Битрикс. В маркетплейсе есть готовые модули, но на нагруженных магазинах мы чаще пишем собственный обработчик на событиях изменения элементов инфоблоков — так контролируется фильтрация и пакетирование. Специфика платформы разобрана в статье про SEO на 1С-Битрикс.
  • MODX, OpenCart и прочие движки. Обычно проще всего повесить отправку на системное событие сохранения ресурса или товара плюс отдельный крон-скрипт, вычитывающий изменения за период из базы.
  • Уровень CDN. У части провайдеров есть механизм, который сам отправляет IndexNow-сигналы, определяя изменения на уровне кэша. Включается одним переключателем, но контроля над тем, что именно отправляется, у вас почти нет. Для сайтов без своей интеграции это лучше, чем ничего; для крупных проектов предпочтительнее собственный конвейер.
  • Самописные и headless-проекты. Отправка встраивается в CI/CD или в вебхук CMS. Здесь как раз проще всего сделать всё правильно: очередь, фильтры, батчи, логи.

Для проектов с генерацией страниц по шаблонам — а это типичная история programmatic SEO — интеграция с IndexNow практически обязательна: без неё робот месяцами добирается до вновь сгенерированных разделов. Общие подходы к обвязке SEO-процессов скриптами описаны в статье про автоматизацию SEO через API.

Подводные камни и как их обходить

Собрали проблемы, которые встречаются на аудитах чаще всего, вместе с причинами и решениями.

ПроблемаПричинаРешение
Постоянный 403 на отправке Файл ключа отдаётся с типом text/html или содержит лишние символы Отдавать файл статикой напрямую с диска, проверить заголовки запросом, убрать BOM
Файл ключа исчезает после деплоя Лежит только на проде, не в репозитории; выкладка перезаписывает корень Положить файл в репозиторий или в шаблон деплоя, добавить проверку в смоук-тесты
Ошибка 422 на части URL В пакет попали адреса другого поддомена, http-версия или www-вариант Нормализовать URL перед отправкой, группировать пакеты по хосту
Робот приходит и получает 404 Уведомление отправлено раньше, чем инвалидировался кэш и страница стала доступна Перенести отправку в конец пайплайна публикации, добавить проверку доступности перед отправкой
Отправки идут, эффекта нет Отправляется всё подряд, включая неизменившиеся страницы и мусорные URL Ужесточить фильтры: только реальные изменения, только канонические и индексируемые адреса
Ошибка 429 после релиза Массовая перегенерация контента породила лавину уведомлений Троттлинг по домену, суточный потолок, очередь с равномерной отправкой
В индекс попали черновики Хук висит на любом сохранении сущности, без проверки статуса публикации Фильтр по статусу и по коду ответа, отдельный белый список разделов
Интеграция тихо отвалилась Ключ поменяли, конфигурация CDN изменилась, воркер упал — никто не заметил Алерт на долю неуспешных ответов и на отсутствие отправок за сутки
Отправка тормозит админку Синхронный HTTP-вызов внутри обработчика сохранения Вынести в очередь и фоновый воркер, таймаут не более 2–3 секунд
Уведомления шлются с поддоменов без ключа Файл раскатан только на основном домене Раскатать ключ на все хосты сети или выдать отдельные ключи на каждый

Отдельно предупредим о безопасности: ключ лежит в открытом доступе в корне сайта, и это нормально по замыслу протокола — но именно поэтому им может воспользоваться кто угодно, кто его нашёл. Практических рисков немного: чужой отправитель сможет только уведомить поисковик о ваших же URL. Тем не менее, если вы видите в логах странную активность или подозреваете злоупотребление, ключ меняется за минуту: генерируете новый, кладёте новый файл, обновляете конфиг, старый файл удаляете.

Как измерить эффект и не обмануть себя

Проблема оценки IndexNow в том, что он влияет на промежуточную метрику, а не на конечную. Позиции и трафик зависят от сотни факторов, и приписывать их изменение внедрению протокола нечестно. Измерять нужно то, на что он действительно влияет.

Три корректные метрики

Задержка «отправка → первый обход». Основная метрика. Берёте журнал отправок, берёте логи сервера с обращениями верифицированных роботов, соединяете по URL, считаете медиану разницы во времени. Сравниваете с медианой до внедрения по тем же типам страниц. Именно эта цифра показывает, работает механизм или нет.

Доля отправленных URL, обойдённых за 24 и 72 часа. Дополняет медиану: медиана может выглядеть хорошо, а хвост — плохо. Если 30% отправленных адресов робот не посетил и за трое суток, значит фильтрация отправляемых URL требует пересмотра либо у сайта общая проблема с доверием.

Задержка «публикация → появление в индексе». Конечная метрика для контента. Снимается по проверке индексации выборки новых URL. Она медленнее и шумнее, но именно её понимает бизнес.

Чего не надо делать: измерять эффект по общему росту числа страниц в индексе. Этот показатель меняется по десятку причин, и приписать его IndexNow нельзя. Точно так же бессмысленно сравнивать «до и после» на разных периодах с разной интенсивностью публикаций — сравнивайте сопоставимые окна и однотипные страницы. Общая логика построения измеримых метрик описана в статье про KPI в SEO.

ЧЕГО ЖДАТЬ РЕАЛИСТИЧНО

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

IndexNow в типичных сценариях из практики

Миграция сайта

Единственный случай, когда массовая отправка большого списка URL оправдана. При смене структуры или переезде на новый домен старые адреса начинают отдавать 301, и чем быстрее робот это увидит, тем быстрее перенесутся сигналы. Схема: после переключения отправляем пакетами старые URL (чтобы робот увидел редиректы) и новые URL (чтобы он их обошёл), растягивая отправку на несколько дней, а не вываливая всё за час. Полный чек-лист переезда — в материале про миграцию сайта без потери трафика.

Массовое обновление цен

Типичная ситуация в e-commerce: ночная выгрузка изменила цены на 15 000 карточках. Отправлять все 15 000 не нужно — отфильтруйте те, где изменение существенное (например, цена изменилась более чем на несколько процентов или изменилось наличие), и отправьте их. Косметические изменения на копейку смысла не имеют, а объём отправок раздувают кратно.

Исправление технической ошибки

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

Восстановление после просадки

Соблазн после падения трафика отправить весь сайт в IndexNow велик, но бесполезен. Если страницы выпали из-за качества, дублей или санкций, ускоренный обход только быстрее подтвердит поисковику текущее состояние. Сначала чините причину, потом уведомляете об изменениях — порядок именно такой. Разбор причин просадок — в статье про то, почему сайт упал в выдаче.

Запуск нового сайта

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

Чек-лист внедрения и приоритеты

Сводная таблица работ: что делать, в каком порядке и сколько это реально занимает.

ШагПриоритетТрудозатратыПризнак, что сделано правильно
Сгенерировать ключ и разместить файл Критический 15 минут Запрос возвращает 200, тип text/plain, тело равно ключу
Проверить, что файл не закрыт robots.txt и защитой Критический 10 минут Файл открывается из внешней сети и в режиме инкогнито
Тестовая отправка одного URL Критический 10 минут Ответ 200 или 202
Хук на публикацию новых страниц Высокий 2–4 часа разработки Новая страница уходит в отправку в течение минут после публикации
Фильтрация: статус, robots, noindex, canonical Высокий 2–3 часа В журнале отправок нет черновиков и закрытых URL
Очередь, батчи и асинхронность Высокий 4–8 часов Сохранение материала в админке не замедлилось
Логирование ответов и алерты Средний 2–3 часа Есть отчёт по кодам ответа за период, приходит алерт при сбое
Дедупликация и суточный потолок Средний 2 часа Число отправок в сутки соответствует реальному числу изменений
Замер эффекта по логам сервера Средний 3–4 часа плюс 2–4 недели ожидания Известна медиана задержки «отправка → обход»
Раскатка на поддомены По ситуации 1 час на хост Каждый хост отвечает 200 на свой файл ключа

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

Частые вопросы

Google учитывает IndexNow?

Нет. Google заявлял, что тестирует протокол, но в рабочий процесс индексации его не внедрил. Для Google работают традиционные механизмы: корректный sitemap.xml с честными датами lastmod, внутренние ссылки с часто обходимых страниц, быстрый ответ сервера и общее качество сайта. Indexing API у Google существует, но официально предназначен только для страниц с разметкой вакансий и прямых трансляций — использовать его как универсальный ускоритель нельзя.

Нужно ли отправлять уведомления на все эндпоинты сразу?

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

Гарантирует ли IndexNow попадание страницы в индекс?

Нет. Протокол доставляет сигнал «этот URL изменился» и влияет на скорость постановки адреса в очередь обхода. Дальше страница проходит обычный отбор: качество контента, отсутствие дублей, соответствие директивам, ценность для пользователя. Если страница низкого качества или дублирует существующую, уведомление ничего не изменит — она просто быстрее получит отказ. Ускорение доставки сигнала и решение об индексации — две независимые вещи.

Сколько URL можно отправлять в сутки?

Жёстко декларированного суточного лимита нет: ограничение указано на один запрос — до 10 000 URL в POST. Но защита от злоупотреблений на стороне поисковиков есть, и она смотрит не только на объём, но и на осмысленность: если вы ежедневно шлёте десятки тысяч адресов, а реально меняются сотни, доверие к источнику снижается. Практическое правило — отправлять столько, сколько реально изменилось. Если ваша интеграция систематически превышает разумный для сайта объём, это почти всегда баг фильтрации, а не польза.

Что делать, если приходит ошибка 403?

403 означает, что поисковик не смог подтвердить ключ. Порядок проверки: открыть файл ключа запросом с выводом заголовков и убедиться, что код 200, тип содержимого text/plain, редиректов нет; сравнить содержимое файла с ключом в запросе посимвольно, включая регистр; проверить, что файл доступен по тому же протоколу и хосту, что и отправляемые URL; убедиться, что txt-файлы не закрыты в robots.txt и не режутся защитой на уровне CDN или WAF. В подавляющем большинстве случаев причина — неправильный тип содержимого или файл, отдаваемый через фронт-контроллер CMS внутри HTML-обёртки.

Можно ли отправлять URL удалённых страниц?

Да, и это полезно. Протокол допускает уведомление об URL, который стал отдавать 404 или 410: робот быстрее увидит, что страницы больше нет, и быстрее уберёт её из индекса и из очереди обхода. То же касается адресов, на которые поставили 301-редирект после перестройки структуры. Единственное условие — не путать удаление со временной недоступностью: если страница отдаёт 503 из-за технических работ, отправлять её не нужно.

IndexNow заменяет sitemap.xml?

Нет, это разные слои. Sitemap — полная статическая карта сайта, к которой робот обращается сам и по которой сверяет структуру целиком; она нужна всем поисковикам, включая Google. IndexNow — поток событийных уведомлений об изменениях, работающий только для систем-участников. Отключать карту сайта после внедрения протокола нельзя ни при каких условиях: вы потеряете базовый канал обнаружения страниц, а для Google — вообще единственный управляемый.

Стоит ли внедрять IndexNow небольшому сайту?

Настроить стоит — это час работы и никаких рисков. Но ожидать заметного эффекта не нужно: сайт на 50–200 страниц робот и так обходит целиком за приемлемое время, и краулинг там не узкое место. Реальный выигрыш появляется там, где есть поток изменений: магазины с большим ассортиментом, новостные разделы, каталоги от нескольких тысяч URL, проекты с автоматической генерацией страниц. Для маленького сайта в приоритете совсем другие вещи — структура, тексты, коммерческие факторы и скорость загрузки.

SEO-продвижение сайтов с 2005 года

Настроим IndexNow и уберём всё, что тормозит индексацию вашего сайта

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

  • Пакет «Старт» от 55 000 ₽/мес
  • Пакет «Стандарт» 75 000 ₽/мес
  • Пакет «Премиум» 95 000 ₽/мес
  • Бесплатный аудит и прогноз
  • Договор с гарантией результата
  • Отчёты каждую неделю

Комментарии (14)

Виталий

Спасибо за разбор про text/plain. Полгода ловил 403 и грешил на опечатку в ключе, а оказалось, что фронт-контроллер отдавал файл в HTML-обёртке. В браузере всё выглядело идеально.

Ирина П.

Не совсем поняла таблицу сравнения с переобходом в Вебмастере. Если IndexNow всё равно работает, зачем тогда вообще тратить суточную квоту на переобход?

AdminSEO Мастер

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

dev_anton

Пункт про асинхронность — золото. У нас редакторы жаловались на тормоза в админке, а причина была ровно та: синхронный вызов API прямо в обработчике сохранения. Вынесли в очередь, проблема ушла.

Ольга Смирнова

А что если сайт на WordPress с агрессивным кэширующим плагином? Файл ключа генерируется на лету, отдаётся вроде нормально, но я не уверена, что он переживёт сброс кэша.

AdminSEO Мастер

Ольга, самый надёжный вариант — положить физический txt-файл в корень и убедиться, что он отдаётся с диска, а не через PHP. Тогда ни сброс кэша, ни отключение плагина ключ не сломают. Проверьте заголовки запросом с выводом ответа, а не глазами в браузере — это ровно та ловушка, о которой в статье написано в блоке про 403.

Ренат

Честно про Google порадовало. В половине статей пишут, что он «вот-вот внедрит», и люди зря ждут.

Максим_магазин

У нас магазин, ночная выгрузка каждый день трогает почти весь каталог. Раздел про массовое обновление цен прямо про нас: слали всё подряд и удивлялись, почему 429 прилетает пачками. Сейчас фильтруем по существенности изменения цены и наличия.

kirill_dev

Вопрос по keyLocation. У нас разные разделы ведут разные команды, хочется выдать каждой свой ключ. Правильно понимаю, что тогда файл кладём в подкаталог и ключ будет работать только внутри него?

AdminSEO Мастер

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

Наталья В.

Забрала себе чек-лист внедрения с трудозатратами, очень удобно показывать разработчикам. Обычно на «настрой IndexNow» смотрят как на неопределённую задачу, а тут по часам расписано.

Егор

Скептически отношусь ко всей этой истории. Внедрили полгода назад, отправки идут, коды 200, а по ощущениям индексация быстрее не стала.

AdminSEO Мастер

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

Светлана

Про черновики очень вовремя. У нас хук висел на любом сохранении, и в отправку улетали превью-ссылки. Хорошо, что заметили быстро.

pavel_bitrix

Согласен насчёт Битрикса: модуль из маркетплейса ставится за пять минут, но что именно он отправляет — чёрный ящик. На нагруженном магазине сами написали обработчик на событиях инфоблоков, зато видим весь поток.

Тимур

А что если у нас сеть региональных поддоменов, штук двадцать? Нужно двадцать разных ключей или можно один раскатать на все хосты?

AdminSEO Мастер

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

Алина_К

Не знала, что удалённые страницы тоже стоит отправлять. Логично, конечно, но интуитивно кажется наоборот.

Роман Ж.

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

Оставить комментарий

Спасибо! Ваш комментарий отправлен на модерацию и появится после проверки.