Логотип seo-prodvizhenie-biznesa.ru
+7 (921) 333-77-45

IndexNow — моментальная индексация сайта от Яндекс

Влияние IndexNow на ранжирование сайта
Анатолий Кузнецов
Анатолий Кузнецов
SEO-оптимизатор с 20-летним стажем. Автор блога seo-prodvizhenie-biznesa.ru о продвижении и доработке сайтов.

IndexNow отучил меня обновлять выдачу и гадать, когда же поисковый робот доберётся до свежей статьи: сайт теперь сам стучится в поиск через несколько секунд после публикации, а первые заходы из Яндекса на новый адрес я вижу в тот же день. До внедрения свежая страница блога ждала робота от двух суток до полутора недель, после — типичный срок сократился до нескольких часов. Ниже — весь путь внедрения на реальном проекте: как устроен протокол, какой код я держу в теме, где спрятана ловушка, из-за которой половина страниц не отправляется, и как понять, что всё работает, а не просто «вроде бы настроено».

Что меняется в схеме «сайт — поисковик»

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

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

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

Кто участвует в протоколе, а кто нет

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

Поисковая система Поддержка IndexNow Что делать на практике
Яндекс Да, один из авторов протокола Основной получатель уведомлений для рунета
Bing Да, один из авторов протокола Отправлять обязательно, обход ускоряется заметно
Seznam Да Актуально для чешского рынка
Naver Да Актуально для корейского рынка
Yep Да Небольшая система, влияния почти нет
Google Нет Только карта сайта, внутренняя перелинковка и запрос индексирования в панели
Mail.ru, DuckDuckGo Нет собственного приёма Косвенно получают данные партнёров, отдельно отправлять некуда

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

Как это устроено технически

Механика простая до неприличия, и в этом её главное достоинство. Нужны три вещи.

  • Ключ. Произвольная строка из латинских букв, цифр и дефисов длиной от 8 до 128 символов. Ключ придумываете вы сами, никто его не выдаёт и не подтверждает.
  • Файл с ключом в корне сайта. Обычный текстовый файл, имя которого совпадает с ключом, а внутри лежит тот же самый ключ и больше ничего. Это доказательство, что вы владеете сайтом: раз вы смогли положить файл в корень, значит доступ у вас есть.
  • Запрос на эндпоинт. POST со списком адресов или GET с одним адресом в параметрах.

Файл ключа выглядит так — адрес и содержимое:

https://example.ru/abc123def456abc123def456.txt

содержимое файла:
abc123def456abc123def456

Простейший вариант уведомления — один адрес обычным GET-запросом:

https://yandex.com/indexnow?url=https://example.ru/blog/statya/&key=abc123def456abc123def456

Рабочий вариант — POST с телом в JSON, куда можно положить сразу список адресов:

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

{
  "host": "example.ru",
  "key": "abc123def456abc123def456",
  "keyLocation": "https://example.ru/abc123def456abc123def456.txt",
  "urlList": [
    "https://example.ru/blog/pervaya-statya/",
    "https://example.ru/blog/vtoraya-statya/",
    "https://example.ru/uslugi/"
  ]
}

То же самое из консоли, чтобы проверить руками, не дожидаясь плагина:

curl -X POST "https://api.indexnow.org/indexnow" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"host":"example.ru","key":"abc123def456abc123def456","keyLocation":"https://example.ru/abc123def456abc123def456.txt","urlList":["https://example.ru/blog/statya/"]}' \
  -i

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

Что означают коды ответа

Сразу после отправки вы получаете HTTP-код. Он не говорит «страница проиндексирована», он говорит только «уведомление принято или отклонено». Разница принципиальная, и на ней спотыкаются чаще всего.

Код Что означает Действие
200 Уведомление принято, ключ проверен Ничего, всё в порядке
202 Принято, ключ ещё проверяется Убедиться, что файл ключа отдаётся по прямой ссылке
400 Некорректный запрос: битый JSON, нет обязательного поля Проверить тело запроса и заголовок Content-Type
403 Ключ не найден или не совпадает с содержимым файла Открыть файл ключа в браузере и сверить строку символ в символ
422 Адреса не принадлежат указанному хосту или не совпадает схема Проверить http/https, www и адрес хоста в поле host
429 Слишком много запросов, сработало ограничение частоты Снизить темп, слать пачками с паузой

Отдельно про 403. Девять случаев из десяти — это не «не работает протокол», а закрытый доступ к txt-файлу. Кэширующий плагин отдаёт вместо файла HTML-страницу 404, nginx перехватывает запрос по маске, хостинг подставляет свою заглушку. Первое, что нужно сделать после создания ключа, — открыть его прямую ссылку в браузере и убедиться, что видна голая строка, а не оформленная страница.

Два эндпоинта и зачем слать на оба

Формально участники протокола пересылают уведомления друг другу, и достаточно одной точки. Фактически я держу отправку на две.

Если нужны детали, смотрите «От чего зависит позиция сайта в Яндекс ».

  • https://yandex.com/indexnow — точка Яндекса. Для рунета это главный получатель, и я хочу, чтобы сигнал попадал к нему напрямую, без промежуточных звеньев и без зависимости от чужой пересылки.
  • https://api.indexnow.org/indexnow — общая точка протокола, откуда уведомление расходится по остальным участникам, включая Bing.

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

Чего делать не надо — так это дёргать эндпоинт по кругу, отправляя одни и те же неизменённые адреса каждый час «на всякий случай». Толку ноль, а ограничение частоты вы поймаете.

упоминания Яндексом в вебмастере о проблемах связанных с картой сайта Sitemap.xml

Лимиты и массовая заливка

За один POST-запрос разрешено передать до 10 000 адресов. Это очень много: у среднего блога столько статей нет вообще. Но при массовых операциях лимит становится актуальным.

Помогу с продвижением: заказать продвижение сайта — вывожу сайты в топ Яндекса белыми методами.

Типичный случай — переклейка структуры, смена адресов, массовое обновление сотен карточек товара или, как было у меня, серия SQL-патчей по блогу сразу на несколько сотен страниц. Здесь важны не только лимиты на объём, но и здравый смысл.

  • Резать список пачками по 500–1000 адресов, а не гнать десять тысяч одним куском: так проще ловить ошибку и понимать, какая именно пачка не ушла.
  • Ставить паузу в 2–5 секунд между пачками, чтобы не словить 429.
  • Не отправлять всё разом в первый же час после большой правки: если правки затронули 3000 страниц, растяните уведомления на сутки-двое. Резкий всплеск нагрузки от робота на слабом хостинге сам по себе может уронить сайт, и вместо ускоренной индексации вы получите пятисотые ошибки в момент обхода.
  • Проверять, что все адреса в пачке принадлежат одному хосту и одной схеме. Смешали http и https или основной домен с поддоменом — получите 422 на всю пачку целиком.

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

Подключение на WordPress: плагин или свой код

Развилка, на которой стоит остановиться. Оба пути рабочие, выбор зависит от того, насколько вам нужен контроль.

Критерий Готовый плагин Свой код в теме
Время внедрения 10 минут 1–2 часа с отладкой
Нагрузка на сайт Плюс один плагин в стеке Ничего лишнего
Контроль над списком адресов Ограничен настройками плагина Полный: любые фильтры и исключения
Лог отправок Есть не у всех, формат чужой Свой формат, свои поля
Отправка на два эндпоинта Часто только один Сколько нужно
Работа с правками через базу Не видит их вообще Можно вызвать вручную из скрипта
Риск при обновлении Обновление плагина может сломать логику Код меняете только вы

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

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

Как выглядит собственная реализация

Логика делится на две части: функция отправки и хуки, которые её дёргают. Функция принимает массив адресов, режет на пачки и шлёт на оба эндпоинта.

<?php
function my_indexnow_ping( array $urls ) {
    $key  = 'abc123def456abc123def456';
    $host = 'example.ru';
    $endpoints = array(
        'https://yandex.com/indexnow',
        'https://api.indexnow.org/indexnow',
    );

    $urls = array_values( array_unique( array_filter( $urls ) ) );
    if ( empty( $urls ) ) {
        return;
    }

    foreach ( array_chunk( $urls, 500 ) as $chunk ) {
        $body = wp_json_encode( array(
            'host'        => $host,
            'key'         => $key,
            'keyLocation' => 'https://' . $host . '/' . $key . '.txt',
            'urlList'     => $chunk,
        ) );

        foreach ( $endpoints as $endpoint ) {
            $res  = wp_remote_post( $endpoint, array(
                'timeout' => 10,
                'headers' => array( 'Content-Type' => 'application/json; charset=utf-8' ),
                'body'    => $body,
            ) );
            $code = is_wp_error( $res ) ? $res->get_error_message() : wp_remote_retrieve_response_code( $res );
            my_indexnow_log( $endpoint, $code, $chunk );
        }
    }
}

Дальше — точки вызова. В WordPress достаточно двух хуков: смена статуса записи и явное обновление.

<?php
add_action( 'transition_post_status', function ( $new, $old, $post ) {
    if ( 'publish' !== $new ) {
        return;
    }
    if ( ! in_array( $post->post_type, array( 'post', 'page' ), true ) ) {
        return;
    }
    if ( 'publish' === $old && $new === $old ) {
        return;
    }
    my_indexnow_ping( array( get_permalink( $post->ID ) ) );
}, 10, 3 );

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

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

Подробнее об этом — в статье «Гарантии продвижения сайта в Яндекс — это 100% обман».

Требования к ключу верификации IndexNow

Главная ловушка: дата изменения

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

А теперь ситуация из жизни. Нужно поправить перелинковку сразу в четырёхстах статьях. Делается это одним UPDATE по базе — быстро, предсказуемо, без риска сломать вёрстку редактором. Контент меняется, страницы на сайте выглядят по-новому, всё замечательно. Только вот post_modified остался прежним. Никаких хуков SQL-запрос не вызывает, никакая автоматика о правке не узнаёт, IndexNow молчит, и поисковик обнаружит изменения через месяц, когда придёт по своему расписанию.

Правило, которое я теперь соблюдаю без исключений: любой SQL-патч обязан менять дату модификации.

UPDATE wp_posts
SET post_content = REPLACE(post_content, 'старый фрагмент', 'новый фрагмент'),
    post_modified = NOW(),
    post_modified_gmt = UTC_TIMESTAMP()
WHERE post_type = 'post'
  AND post_status = 'publish'
  AND post_content LIKE '%старый фрагмент%';

Обратите внимание: обновляются оба поля, и локальное, и по Гринвичу. Обновите одно — и у вас появится рассинхрон, на который потом будут странно реагировать и плагины, и выгрузки. И не забывайте про wp_cache_flush либо сброс объектного кэша после массовых правок, иначе сайт какое-то время будет отдавать старую версию, а робот придёт как раз в этот момент.

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

Лог отправок: без него вы ничего не докажете

Самая частая ситуация в переписке с клиентом: «страница не в индексе, вы вообще её отправляли?» Без лога ответить нечего. С логом ответ занимает десять секунд.

Мой формат минимальный, одна строка на одну отправку:

2026-08-14 11:42:07 | yandex.com | 200 | 1 url | /blog/uskorennaya-indeksacziya/
2026-08-14 11:42:08 | api.indexnow.org | 202 | 1 url | /blog/uskorennaya-indeksacziya/
2026-08-14 18:03:55 | yandex.com | 200 | 500 urls | batch: perelinkovka-avgust
2026-08-14 18:04:02 | yandex.com | 429 | 500 urls | batch: perelinkovka-avgust (retry)

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

Если нужна помощь по теме — настройка Яндекс Директа.

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

Что лог даёт в реальной работе:

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

Что проверить после внедрения

Что проверяем Как Правильный результат
Файл ключа доступен Открыть прямую ссылку в браузере в режиме инкогнито Голый текст с ключом, код 200
Ключ совпадает Сверить строку в файле и в коде посимвольно Полное совпадение, без пробелов и переносов
Файл не режется кэшем Запросить с параметром и без него Одинаковый ответ в обоих случаях
Уведомление уходит при публикации Опубликовать тестовую запись, посмотреть лог Две строки, коды 200 или 202
Уходит при обновлении записи Изменить текст существующей статьи Новые строки в логе
SQL-патчи меняют дату Проверить post_modified после патча Дата равна моменту правки
Черновики не отправляются Сохранить черновик и запланированную запись В логе пусто
Адреса канонические Сверить отправленные адреса со ссылкой rel=canonical Совпадают, без слеша-разнобоя и параметров
Сохранение записи не тормозит Замерить время сохранения в редакторе Без заметной задержки

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

Тему разбирал отдельно: «Яндекс Директ понижает позиции сайта когда его отключаешь».

Как разместить ключ IndexNow к себе на сайт

IndexNow против переобхода в панели вебмастера

Инструмент переобхода в Яндекс.Вебмастере решает похожую задачу, но это не одно и то же. Их удобнее не сравнивать «что лучше», а использовать вместе.

Параметр IndexNow Переобход в панели вебмастера
Кто получает сигнал Яндекс, Bing, Seznam, Naver Только та система, в чьей панели работаете
Суточный лимит До 10 000 адресов в запросе Обычно десятки адресов в сутки
Автоматизация Полная, встраивается в публикацию Руками или через отдельный API
Скорость реакции Часы, иногда минуты Часы или сутки
Подтверждение прав Файл с ключом в корне Полноценная верификация сайта
Обратная связь Только код ответа Видно статус страницы после обхода
Для чего подходит Поток обновлений, рутина Точечные важные страницы

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

Чего IndexNow не делает

Ожидания стоит приземлить, иначе разочарование будет неизбежным.

  • Не поднимает позиции. Уведомление не является фактором ранжирования. Страница, попавшая в индекс быстрее, ранжируется ровно так же, как попавшая туда медленно.
  • Не гарантирует индексацию. Робот придёт, посмотрит и может решить, что страница малополезна, дублирует другую или не отвечает требованиям. Тогда её просто не возьмут — быстрее, но не возьмут.
  • Не чинит технические проблемы. Если страница закрыта в robots.txt, отдаёт noindex, ведёт на редирект или возвращает 404, уведомление ничего не изменит. Вы лишь быстрее сообщите поиску о неработающем адресе.
  • Не заменяет карту сайта. Sitemap остаётся базовым способом донести структуру, особенно для Google, которому уведомления не приходят вовсе.
  • Не улучшает содержимое. Пустая или скопированная страница останется пустой и скопированной. Скорость доставки к качеству отношения не имеет.
  • Не влияет на краулинговый бюджет магическим образом. Если сайт медленный и робот тратит время на ожидание ответа сервера, приоритет очереди не спасёт.

Как измерить эффект честно

Измерять «на глазок» нельзя — субъективное ощущение «вроде быстрее стало» не аргумент. Метрика простая: время от публикации до появления страницы в поиске.

Порядок действий такой:

  1. До внедрения набираете базу: 15–20 последних публикаций, для каждой фиксируете дату публикации и дату первого показа в поиске. Дату первого показа удобно брать из статистики поисковых запросов в панели вебмастера или из отчёта по страницам входа в системе аналитики.
  2. Считаете медиану, а не среднее. Одна статья, провисевшая три недели, перекосит среднее и обманет вас.
  3. Внедряете протокол, ждёте месяц-полтора и набираете такую же выборку по новым публикациям.
  4. Сравниваете медианы. Дополнительно смотрите разброс: часто важнее не то, что медиана упала с трёх суток до шести часов, а то, что исчезли хвосты по две недели.
Показатель Где смотреть Что считается улучшением
Время до первого показа Статистика запросов в панели вебмастера Сокращение медианы в разы
Доля страниц в индексе Раздел страниц в поиске Рост доли, но эффект косвенный
Скорость подхвата правок Сохранённая копия страницы в выдаче Копия обновляется за дни, а не за недели
Обход роботом Отчёт по обходу в панели вебмастера Рост числа загруженных страниц после отправок
Пропуски отправок Собственный лог Ноль изменённых страниц без строки в логе

Мой результат по блогу: медиана времени до первого показа в Яндексе упала с трёх суток до примерно четырёх часов, а самые долгие случаи с двух недель сжались до полутора суток. По Google, как и ожидалось, не изменилось ничего — там всё по-прежнему решают карта сайта и внутренние ссылки.

Кому протокол даёт больше всего

Выгода распределяется очень неравномерно. Есть проекты, где эффект бросается в глаза, и есть те, где его не заметишь.

  • Блоги и медиа с частыми публикациями. Чем чаще выходит контент, тем дороже каждый день ожидания. Если тема сезонная или новостная, разница между «в индексе сегодня» и «в индексе через неделю» равна разнице между трафиком и его отсутствием.
  • Интернет-магазины с меняющимися ценами и наличием. Самый показательный случай. Устаревшая цена в сниппете — это не просто неточность, это отказы: человек кликает на одну сумму, видит другую и уходит. То же с наличием: попасть на «нет в наличии» после клика по товару из выдачи — верный способ потерять покупателя.
  • Новостные проекты. Здесь счёт вообще идёт на часы, и любой инструмент ускорения работает в плюс.
  • Сайты, где идёт активная переработка. Переписали двести старых статей — хотите, чтобы поиск увидел новую версию не через квартал.
  • Крупные каталоги. Когда страниц десятки тысяч, робот физически не успевает обходить всё часто. Точечные уведомления по изменённым адресам расставляют приоритеты за него.

Кому эффект будет минимальным: сайту-визитке из семи страниц, которые не менялись два года; проекту, у которого весь трафик из Google; сайту с техническими проблемами индексации, где страницы не берут не из-за скорости обхода, а из-за качества. В последнем случае внедрение только чётче покажет проблему: уведомления уходят с кодом 200, робот приходит, а страниц в индексе как не было, так и нет.

Ошибки, на которых теряют время

  • Считать код 200 подтверждением индексации. Это подтверждение приёма уведомления, не более.
  • Слать неканонические адреса. Разнобой со слешем, схемой, www и параметрами превращает отправку в уведомление о дублях.
  • Слать черновики и запланированные записи. Проверка статуса в коде обязательна, иначе робот придёт на 404.
  • Забыть про SQL-правки. Самая дорогая ошибка: правки есть, уведомлений нет, и вы неделями не понимаете, почему выдача показывает старое.
  • Держать ключ только в коде, забыв про файл. Получите стабильный 403 и решите, что протокол не работает.
  • Потерять файл ключа при переезде. Файл лежит в корне, а корень при миграции переносят не всегда. Внесите проверку в чек-лист переезда.
  • Отправлять всё подряд каждый день. Сигнал обесценивается, а вы упираетесь в ограничение частоты.
  • Не вести лог. Потом невозможно понять, что уходило, а что нет.
  • Держать отправку синхронной в момент сохранения. Редактор начинает тормозить, и авторы жалуются на «зависший» сайт.

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

Нужно ли получать ключ у Яндекса или Microsoft?
Нет. Ключ вы придумываете сами: любая строка из латинских букв, цифр и дефисов длиной от 8 до 128 символов. Никакой регистрации и подтверждения не требуется. Единственное доказательство прав — файл с этим ключом в корне сайта, доступный по прямой ссылке.

Можно ли получить санкции за слишком частые уведомления?
Фильтров и наказаний за это нет, но есть ограничение частоты: при избыточном темпе вы начнёте получать код 429, и часть уведомлений просто не будет принята. Кроме того, регулярная отправка неизменённых страниц снижает доверие к вашему потоку сигналов. Отправляйте только то, что действительно изменилось.

Заменяет ли протокол карту сайта?
Не заменяет. Sitemap описывает структуру целиком и остаётся основным каналом для Google, который в протоколе не участвует. IndexNow работает как оперативный сигнал о конкретных изменениях. Правильная схема — держать оба инструмента одновременно.

Что делать, если стабильно приходит 403?
В подавляющем большинстве случаев виноват файл ключа. Откройте его прямую ссылку в браузере в режиме инкогнито: должна открыться голая строка с ключом и код 200. Если видите оформленную страницу или 404, проблема в кэше, правилах сервера или в том, что файл лежит не в корне. Затем посимвольно сверьте строку в файле со строкой в коде — лишний пробел или перенос строки тоже дают отказ.

Влияет ли IndexNow на позиции сайта?
Напрямую нет, фактором ранжирования уведомление не является. Косвенная польза есть: страница раньше попадает в индекс и раньше начинает собирать трафик, а обновлённые цены и данные быстрее отражаются в сниппете, что улучшает поведенческие показатели. Но подняться в топ за счёт одной только скорости индексации нельзя.

Разбор живого сайта: что мешает ему продвигаться:

Коротко

  • Сайт сам сообщает поиску об изменённых адресах коротким POST-запросом с ключом — вместо ожидания робота по его расписанию.
  • Протокол поддерживают Яндекс, Bing, Seznam и Naver; Google в нём не участвует, и для него по-прежнему работают карта сайта и внутренние ссылки.
  • Для запуска нужны три вещи: ключ, текстовый файл с ключом в корне сайта и отправка списка адресов на эндпоинт; коды 200 и 202 означают, что уведомление принято.
  • Главная ловушка — правки напрямую в базе: они не меняют дату модификации, автоматика такие страницы не видит, поэтому каждый SQL-патч обязан обновлять post_modified и post_modified_gmt.
  • Лог отправок обязателен: без него не докажешь, что запрос ушёл, и не найдёшь пропущенные страницы; при этом ускоряется только обход, а качество страницы и её позиции протокол не меняет.

Настроить ускоренную индексацию вашего сайта помогу на SEO-консультации.

Увеличьте позиции и продажи вашего сайта

Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:

Анатолий Кузнецов — SEO-оптимизатор

Остались вопросы по продвижению?

Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.

Связаться со мной →

Комментарии

Дмитрий Ковалёв

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

Марина Соловьёва

У нас магазин, цены обновляются выгрузкой из 1С каждую ночь. Правильно ли я понимаю, что нужно слать только те карточки, где цена реально поменялась, а не весь каталог?

Анатолий Кузнецов автор

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

Игорь Пантелеев

Отдельное спасибо за честность про Google. В трёх статьях подряд читал, что «все крупные поисковики поддерживают», и уже собрался ждать чуда.

Ольга Терентьева

Скажите, а есть смысл отправлять повторно страницу, которую уже отправляли неделю назад, но она так и не появилась в поиске?

Анатолий Кузнецов автор

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

Алексей Жуков

Сделал по вашей схеме отправку на два эндпоинта, но вынес её в отложенную задачу. Сохранение записи перестало висеть по десять секунд, авторы довольны.

Наталья Бирюкова

Мы правим тексты пакетно через базу. После вашей статьи проверили — действительно, post_modified не менялся ни разу за полгода. Теперь понятно, почему выдача жила своей жизнью.

Роман Гущин

А как быть с многоязычным сайтом, где языковые версии на поддоменах? Один ключ на всё или для каждого поддомена свой?

Анатолий Кузнецов автор

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

Светлана Ермакова

Замерила по вашей методике до и после. Медиана упала с четырёх дней до примерно шести часов. Самое приятное — пропали случаи, когда статья висела вне индекса по две недели.

Виктор Лапшин

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

Анатолий Кузнецов автор

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

Егор Савельев

Переехали на новый сервер и забыли перенести txt-файл из корня. Три недели уведомления уходили в 403, и никто не заметил, потому что лога не было. Теперь есть.

Юлия Панкратова

Полезно про лимит переобхода в панели. Раньше тратила его на рядовые заметки блога, теперь оставляю только под посадочные страницы услуг. Правильно распределяю?

Анатолий Кузнецов автор

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

Станислав Черных

Код из статьи взял почти без правок, добавил только исключение для служебных типов записей. Работает третью неделю, в логе ровные двухсотые.

2 комментария к “IndexNow — моментальная индексация сайта от Яндекс”

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 Нажимая «оставить комментарий» вы принимаетеправила конфиденциальности 

Прокрутить вверх