IndexNow

Справочник запросов API IndexNow

Ask AI about this page

2 мин чтения

API намеренно сделан компактным: один эндпоинт, два метода.

Один URL — GET

GET https://yandex.com/indexnow?url=<String>&key=<String>[&keyLocation=<String>]

url и key обязательны; keyLocation только когда файл ключа находится не в корне. URL должен соответствовать стандарту RFC 3986.

Справочник запросов API IndexNow

Множество URL — POST

POST https://yandex.com/indexnow
Content-Type: application/json; charset=utf-8

{ "host": "www.example.com",
  "key": "…",
  "keyLocation": "https://www.example.com/key.txt",
  "urlList": [ "https://www.example.com/url1", … ] }

До 10 000 URL за запрос. host, key и urlList обязательны.

Коды ответов, которые стоит обрабатывать

  • 200 OK — принято.
  • 202 Accepted — новый ключ ожидает проверки. Это не ошибка; продолжайте отправку.
  • 400 — неверные параметры в теле запроса.
  • 403 Неверный ключ — ключ не удалось загрузить или он не соответствует отправленным URL. Для ключа с ограничением по каталогу это обычно нарушение области видимости, а не неверный ключ.
  • 405 — поддерживаются только GET и POST.
  • 422 — большое семейство: неверное расположение ключа, неверный URL, слишком короткий или слишком длинный ключ, недопустимые символы, отсутствие ключа, хоста или URL, более 10 000 URL, urlList не является массивом или пуст.
  • 429 Too Many Requests — превышен лимит запросов с одного IP.

Ограничение частоты запросов (rate limiting)

Яндекс заявляет, что нет лимита на количество запросов и что его алгоритмы предотвращают чрезмерную отправку — при этом документируя 429. В совокупности: отправляйте данные по мере изменений, объединяйте в пакеты, где это возможно, и воспринимайте 429 как сигнал перегрузки, требующий повторной отправки с задержкой, а не как ошибку.

Примечания по реализации

Различайте 202 и 200 в логах, чтобы новый ключ не был ошибочно принят за нерабочий; рассматривайте 422 как постоянную ошибку, требующую исправления, а не повторного запроса; и объединяйте изменения в один запрос POST вместо отправки GET для каждой страницы, что обычно и вызывает ошибку 429 на активно обновляемом сайте.

Справочник запросов API IndexNow — 2
Alien Road

Как мы это применяем

The three response codes to handle properly are 202, 422 and 429, and integrations routinely treat all non-200 responses as failure. That produces two bad behaviours: regenerating a valid key during its verification window, and retrying a malformed request forever. We batch into POST for anything above a handful of URLs, which also avoids most rate limiting.

Связанные услуги

Поделиться