Техническое SEO

IndexNow отвечал 200, а страницы не поданы: 6 файлов вместо 867 адресов

Со 2 августа по 3 сентября 2026 наш скрипт IndexNow подавал в Bing шесть адресов файлов карты сайта вместо страниц, и на каждую подачу приходило «успешно». Разбираем, почему код 200 ничего не доказал и как за 15 минут проверить, что именно подает ваш модуль.

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

2 августа 2026 мы добавили в проект скрипт, который подает страницы нашего сайта через IndexNow. 3 сентября 2026 выяснилось, что все это время он не подал ни одной страницы. И каждая подача выглядела успешной.

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

Скрипт делал простую вещь: открывал /sitemap.xml, выбирал все адреса из тегов <loc> и отправлял их в IndexNow.

Проблема в том, что наш /sitemap.xml — не карта страниц, а индекс карт. Внутри у него не адреса страниц, а ссылки на другие файлы: sitemap-pages.xml, sitemap-services.xml и еще четыре. Так что в Bing при каждом запуске уходило шесть адресов, и все шесть были адресами XML-файлов.

Вторая половина ошибки: /sitemap.xml описывает только украинскую версию сайта. Английская и русская имеют собственные индексы, /en/sitemap.xml и /ru/sitemap.xml, и все три объявлены отдельными строками Sitemap: в robots.txt. Скрипт знал только о первом.

Почему никто не заметил

Потому что IndexNow на каждую подачу отвечал кодом 200.

Документация протокола на indexnow.org описывает 200 как «URL submitted successfully» и отдельно уточняет: этот код означает лишь, что поисковая система получила ваши адреса. Ошибку протокол возвращает в конкретных случаях: 400 на неправильный формат запроса, 403 на недействительный ключ, 422 на адреса чужого домена или ключ, не соответствующий схеме, 429 на слишком частые подачи. Есть еще 202: адреса получены, ключ еще проверяется.

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

Это не особенность IndexNow. Так ведет себя любая точка приема, которая валидирует форму запроса, а не содержание: она говорит «запрос принят», а мы читаем «все сделано как надо».

Сколько адресов должно было быть

Когда 3 сентября 2026 мы исправили скрипт, он впервые посчитал, что на самом деле есть на сайте. Вот раскладка на тот день:

Источник Адресов
/sitemap.xml (6 дочерних карт) 355
/en/sitemap.xml 256
/ru/sitemap.xml 256
Всего уникальных 867

355 адресов украинского индекса состояли из 11 основных страниц, 6 страниц услуг, 15 работ портфолио, 19 статей блога, 257 страниц сети услуг и 47 страниц инструментов.

Отсюда видно, что это были две отдельные ошибки. Если бы скрипт научился раскрывать индекс, но по-прежнему читал только /sitemap.xml, он подавал бы 355 адресов из 867, то есть чуть больше трети сайта. Английская и русская версии остались бы вне подачи. На практике не было и этого: подавались только шесть файлов.

Сколько раз скрипт запускали между 2 августа и 3 сентября, мы не считали. Для вывода это и не важно: каждый запуск давал один и тот же результат.

Как проверить свой сайт за 15 минут

Если у вас стоит модуль или плагин IndexNow для OpenCart, WordPress или другой платформы, мы не знаем, есть ли в нем такая же ошибка: ни один модуль мы не тестировали. Но проверить это можно без доступа к коду.

1. Найдите все карты, которые вы объявляете.

curl -s https://ваш-сайт.com.ua/robots.txt | grep -i '^sitemap:'

Строк может быть несколько. У нас их три, и скрипт знал об одной.

2. Для каждой карты посмотрите корневой тег.

curl -s https://ваш-сайт.com.ua/sitemap.xml | grep -o -m1 '<sitemapindex\|<urlset'

<urlset> означает обычную карту страниц. <sitemapindex> означает индекс: адреса в нем ведут на другие XML-файлы, а не на страницы. Ориентируйтесь на тег, а не на название файла: название может быть любым.

3. Посчитайте реальное количество страниц. Для индекса нужно открыть каждую дочернюю карту:

for s in $(curl -s https://ваш-сайт.com.ua/robots.txt | grep -i '^sitemap:' | awk '{print $2}' | tr -d '\r'); do
  curl -s "$s" | grep -o '<loc>[^<]*' | sed 's/<loc>//'
done | sort -u > level1.txt

grep '\.xml$' level1.txt | while read child; do
  curl -s "$child" | grep -o '<loc>[^<]*' | sed 's/<loc>//'
done | sort -u > pages.txt

grep -vc '\.xml$' level1.txt; wc -l < pages.txt

Первое число — страницы, которые лежали прямо в картах верхнего уровня, второе — страницы из дочерних карт. Если дочерние карты сами являются индексами, повторите шаг еще раз для них.

4. Сравните с тем, что подает модуль. Откройте журнал модуля или статистику подач в разделе IndexNow в Bing Webmaster Tools. Если среди поданных адресов есть такие, что заканчиваются на .xml, — это именно наша ошибка. Если подано заметно меньше, чем в шаге 3, модуль, вероятно, не видит части карт, чаще всего языковых.

5. Не ищите этого в Google. Search Console о подачах IndexNow ничего не покажет, потому что Google протокол не использует. Для Google карты сайта подаются там отдельно.

Если сами карты вызывают сомнения — дубли, пустой файл, один язык вместо двух, — об этом есть отдельный разбор карт сайта. Проверить robots.txt и карту онлайн можно нашим бесплатным инструментом.

Что мы изменили

Скрипт теперь отличает индекс от обычной карты по корневому тегу <sitemapindex> и раскрывает индексы рекурсивно, не глубже трех уровней, чтобы кольцевая ссылка между картами не зациклила обход. Источников стало три: украинская, английская и русская карта.

После исправления 3 сентября 2026 скрипт подал 867 адресов из 867. Подача идет партиями по 500 адресов, так что получилось две партии, и обе получили 200. На этот раз 200 означал то, что мы хотели, но знаем мы это не из кода ответа, а из того, что перед подачей перечислили, какие именно адреса в ней лежат.

В тот же день мы перешли на ключ IndexNow, выданный самим Bing Webmaster Tools, чтобы статистика подач в панели Bing привязывалась именно к нему. Предыдущий, сгенерированный нами ключ оставили на сайте: подачи, сделанные ранее в тот день, Bing мог проверять еще какое-то время, и без файла ключа они не прошли бы проверку владения.

Чего это не исправило

Подача через IndexNow не означает индексации. Протокол лишь сообщает поисковику, что адрес существует или изменился, а брать его в индекс или нет, решает он сам.

Эффект от исправления мы не измеряли. Данных Bing Webmaster Tools до и после у нас нет, поэтому утверждать, что страницы после 3 сентября 2026 попали в Bing быстрее, мы не можем.

На Google это не повлияло никак. Для него индексация большого сайта — это карты в Search Console, внутренние ссылки и то, на что робот тратит обход. О последнем мы писали в разборе куда тратится обход сайта, а для каталогов на тысячи позиций есть отдельная услуга по индексации большого каталога.

Главное, что мы вынесли: ответ «принято» от любой точки приема проверяет форму запроса, а не то, что в нем лежит. Чтобы знать, что подано, нужно смотреть на сам перечень адресов.

Теги

SEOE-commerce

Вам понравилась статья?

Ваше мнение помогает нам создавать лучший контент

Поделитесь с друзьями

Нашли что-нибудь полезное?

Помогите другим узнать это — поделитесь статьей в социальных сетях

Спасибо, что помогаете нам расти

Основатель LIONEX

Владислав Чистяков

Пишет о том, что делает руками: интернет-магазины на OpenCart, приложения на Next.js, интеграции и скорость сайтов. В статьях — замеры и проверки, которые читатель может повторить на своём проекте, а не общие советы. Коммерческая разработка с 2015 года.

Вопросы

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

Ответы на популярные вопросы по теме

Поможет ли IndexNow быстрее попасть в Google?

Нет. Google IndexNow не использует, поэтому для него остаются карта сайта в Search Console и ручной запрос на индексацию. IndexNow принимают Bing и еще несколько поисковых систем, и поданный адрес расходится между всеми участниками протокола.

Что означает ответ 200 от IndexNow?

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

Как понять, что мой /sitemap.xml — это индекс карт?

Откройте его и посмотрите на корневой тег. Если там <sitemapindex>, файл содержит ссылки на другие карты, а не на страницы. Если <urlset> — это обычная карта страниц. Ориентируйтесь на тег, а не на название файла.

Мой модуль IndexNow для OpenCart или WordPress содержит такую же ошибку?

Мы этого не знаем: ни один модуль мы не тестировали. Проверьте сами: посчитайте адреса во всех картах, объявленных в robots.txt, и сравните с тем, что показывает журнал модуля или статистика подач в Bing Webmaster Tools. Адреса на .xml среди поданных — признак именно этой ошибки.

Гарантирует ли подача через IndexNow, что страницу проиндексируют?

Нет. IndexNow лишь сообщает поисковику об адресе, а решение, брать ли его в индекс, остается за ним. Эффект от исправления подачи мы не измеряли: данных Bing Webmaster Tools до и после у нас нет.

Получайте лучшие статьи на почту

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

Мы уважаем вашу конфиденциальность. Отписаться можно в любой момент.

Ещё в блоге

Похожие статьи

Мы потеряли собственный магазин вместе с доменом: что об этом знает веб-архивТехническое SEO

Мы потеряли собственный магазин вместе с доменом: что об этом знает веб-архив

17 сентября 2026 мы пересчитали по веб-архиву, как выглядела потеря собственного магазина вместе с доменом: 2 378 снимков главной в марте 2022, первый 301 первого апреля, последний снимок нашего содержимого 18 мая. Показываем, что из архива восстанавливается, а что нет.

Читать дальше
Первый экран прыгает: как мы искали сдвиг от шрифта и что не сработалоБыстродействие сайта

Первый экран прыгает: как мы искали сдвиг от шрифта и что не сработало

17.08.2026 аудит показал CLS 0,2283 на десктопной главной нашего сайта. Причиной оказался шрифт: единица ch в абзаце и наклоненная декоративная полоса. Разбираем, какие советы по замерам не помогли, что дало 0,0056 и как проверить свой сайт.

Читать дальше
Prom, Хорошоп или OpenCart: что видно извне в 43 магазинахE-commerce и бизнес

Prom, Хорошоп или OpenCart: что видно извне в 43 магазинах

15 сентября 2026 мы извне измерили 43 магазина на Prom, Хорошопе и OpenCart. По дороге нашли две ловушки измерения: HEAD-запрос, из-за которого Prom казался самым быстрым, и страницу проверки, которую 21 из 22 магазинов Хорошопа отдают клиенту без браузера.

Читать дальше