Коротко
Как поисковик узнаёт о новой странице?
Обычный путь медленный. Поисковый робот обходит сайт по своему расписанию: популярные сайты чаще, новые и маленькие реже. Новая статья может ждать визита робота днями, хотя она уже опубликована и стоит в карте сайта.
Карта сайта помогает, но тоже не мгновенно. Файл со списком адресов и датами обновления робот перечитывает время от времени, и между выходом статьи и чтением карты проходит неизвестно сколько.
Для блога, где статьи выходят каждый день, эта задержка заметна. Тема горячая сегодня, а робот придёт через неделю.
Что такое IndexNow простыми словами?
Ключ нужен, чтобы никто чужой не мог слать уведомления от имени твоего сайта. Ты придумываешь ключ, кладёшь файл с ним в корень сайта, и поисковик сверяет: если в запросе тот же ключ, что в файле, запрос пришёл от владельца.
Удобная деталь протокола: поисковики, которые его поддерживают, договорились делиться полученными адресами друг с другом. Отправил один раз - узнают все участники. За один запрос можно передать до 10 000 адресов.
Яндекс в своей справке честно пишет, что такой способ не гарантирует индексацию переданных страниц. Это приглашение роботу, а не пропуск в поиск.
38 статей моего блога: через сколько приходит робот
Статьи на моём блоге выходят по календарю: в 10:00, 13:00 и 16:00 по Москве. Движок блога в момент публикации отправляет адрес статьи в IndexNow. А отдельный счётчик визитов роботов записывает, когда какой робот пришёл на страницу.
Сверка выглядит так:
| Статья вышла | Визит YandexBot | Задержка |
|---|---|---|
| 05.10, 10:00 | 05.10, 10:01 | около минуты |
| 05.10, 16:00 | 05.10, 16:00 | в ту же минуту |
| 06.10, 10:00 | 06.10, 10:11 | одиннадцать минут |
| 06.10, 13:00 | 06.10, 13:01 | около минуты |
Без уведомления такой скорости не бывает: робот не обходит маленький блог раз в минуту. Минуты задержки - это ровно время, за которое Яндекс принимает уведомление и отправляет робота.
С Google картина другая. За месяц Googlebot заходил на весь сайт несколько десятков раз, а из 38 новых статей добрался до одной. IndexNow ему ничего не сообщает: Google протокол не поддерживает. Для Google нужен свой путь, о нём ниже.
Как подключить IndexNow к своему сайту?
Придумать ключ
Строка от 8 до 128 символов: латинские буквы, цифры и дефис. Проще всего попросить агента сгенерировать случайную.
Положить файл с ключом на сайт
Файл с именем вида «ключ.txt» в корне сайта, внутри - тот же ключ. Проверить: адрес сайт/ключ.txt должен открываться в браузере.
Отправлять уведомление при публикации
В момент, когда статья становится видна читателям, сайт отправляет запрос с адресом страницы, адресом сайта и ключом. Если статьи выходят по расписанию, уведомление ставится туда же, где расписание публикует статью.
Записывать ответ
Код ответа сохранить в журнал: 200 - принято, 202 - принято, ключ ещё проверяется, 403 - ключ не найден или не совпал, 422 - адрес не принадлежит сайту, 429 - слишком много запросов.
Проверить на одной статье
Опубликовать статью и посмотреть, пришёл ли робот. На моём блоге это видно в счётчике роботов, в остальных случаях - в логах сервера или в Яндекс Вебмастере.
Когда задачу ставит ИИ-агенту человек без опыта разработки, важно описать не код, а момент: «уведомление уходит тогда, когда статья стала видна читателю, а не когда я сохранил черновик». Если отправить черновик, робот придёт на страницу, которая отдаёт ошибку, и потратит визит впустую.
Почему два из 38 сообщений пропали молча?
Нашёл я это не в коде, а сверкой: выписал все статьи за две недели, рядом поставил визиты YandexBot и увидел две пустые строки. Дальше уже в коде нашлось, что результат запроса никуда не пишется. Ошибки сети ловятся, а ответ «ключ не принят» или «слишком много запросов» проходит как успех.
Урок шире, чем IndexNow. Любой вызов внешнего сервиса, который сайт делает «в фоне», должен оставлять след: что отправили, что ответили. Иначе первым о сбое узнаёт не владелец, а отсутствие результата через месяц. Похожую историю с фоновыми задачами я разбирал в статье автозадачи: агент работает без тебя.
Правка статьи - тоже повод сообщить
Для блога, который обновляет старые статьи, это важно. Поправил цену в статье месячной давности, а в поиске ещё неделю висит старая версия. Уведомление при сохранении изменений уже опубликованной статьи решает это одной строкой в том же месте кода.
Для случаев, когда уведомление не сработало, у Яндекса есть второй канал - переобход страниц в Вебмастере. Там адрес ставится в очередь робота вручную или через API, в пределах суточной квоты сайта. Я собрал для себя инструмент, который отправляет пачку адресов на переобход и через неделю проверяет, попали ли они в поиск.
Пределы IndexNow: Google, индексация, качество
Для Google рабочий путь такой: добавить сайт в Search Console, подтвердить права и отправить туда карту сайта. Отдельного API для обычных статей у Google нет: его API индексации официально только для вакансий и трансляций. Этот шаг для моего блога ещё впереди, и цифры выше - честная картина до него.
Для нейросетей с поиском IndexNow полезен косвенно. Многие из них собирают свежий ответ из поисковой выдачи, и страница, которая быстрее попала в индекс Яндекса или Bing, быстрее становится возможной опорой ответа. Как сделать, чтобы нейросети вообще видели сайт, я разбирал в статье про сайт на JavaScript и нейросети, а про машиночитаемый слой - в статье llms.txt для сайта.
Частые вопросы
Частые вопросы
Главный вывод
Для Яндекса и Bing это самый дешёвый способ ускорить индексацию. Для Google он не работает, там нужна Search Console.
Практический шаг: открой адрес своего сайта с /sitemap.xml и проверь, есть ли там свежие статьи с датами. Если карта есть, следующий шаг - IndexNow.
Сколько времени сейчас проходит между выходом статьи на твоём сайте и визитом поискового робота?
Источники
- IndexNow documentation - формат ключа, лимиты и коды ответов, IndexNow.org
- Поддержка протокола IndexNow, Яндекс Вебмастер
- IndexNow - история протокола и позиция Google, Wikipedia
- Sitemaps XML format - протокол карты сайта и поле lastmod, sitemaps.org
- Краткое руководство по Indexing API - для каких страниц Google разрешает API индексации, Центр Google Поиска
- Что такое файл Sitemap - карта сайта для Google, Центр Google Поиска
