
Запушил пост в main - через 2 минуты Bing и Yandex уже знают про новую страницу. Google - нет. С ним сложнее.
Три недели назад я публиковал по 2-3 статьи в неделю и вручную шёл в Google Search Console, Yandex Webmaster, Bing Webmaster Tools. Копировал URL, жал “Request indexing”. На 15 страниц сайта - терпимо. Но блог рос, а процедура бесила.
Что собрал
GitHub Actions workflow, который стартует на каждый push в main. Логика в одном скрипте - seo-pipeline.mjs, 378 строк.
Шаг 1: Ждём Vercel
sleep 90 - грубо, но работает. Vercel деплоит сайт за 30-60 секунд, даю буфер. Потратил 40 минут на попытки поллить Vercel API на статус деплоя - оказалось лишним. 90 секунд хватает с запасом.
Шаг 2: Парсим sitemap
Скрипт забирает sitemap-0.xml, вытаскивает все <loc>. Сравнивает с тем, что хранится в Upstash Redis. Новые URL - в очередь на submit.
Шаг 3: IndexNow
Отправляю новые URL одним POST-запросом на api.indexnow.org. IndexNow - протокол от Microsoft Bing и Yandex, запущенный в октябре 2021. Один submit уходит сразу в Bing и Yandex (они шарят данные).
HTTP 200 или 202 - принято. Bing обычно индексирует за часы, иногда за минуты.
Шаг 4: Yandex Webmaster API
IndexNow для Yandex работает, но я добавил прямой recrawl через их API. Quota - 20 URL в день. Скрипт проверяет остаток, отправляет новые страницы в очередь на переобход. Task ID сохраняется для трекинга.
Шаг 5: Google Search Console API
Облом. Google не поддерживает IndexNow. Совсем. По состоянию на февраль 2026 - не поддерживает и не планирует.
У Google есть Indexing API, но он официально работает только для JobPosting и BroadcastEvent schema. Для обычного контента - бесполезен.
Search Console API (urlInspection.index.inspect) - read-only. Проверяет статус: indexed, discovered, crawled. Submit через API - нельзя. Только руками через Search Console UI.
Потратил 2 часа на попытки обойти. Пробовал Indexing API с обычным контентом - Google принимает запрос, но тихо его игнорирует. Десятки форумных тредов подтверждают то же.
Скрипт проверяет статус всех URL через GSC API и сохраняет verdicts. Видно, какие страницы Google проиндексировал, а какие висят в “Discovered - currently not indexed”. Не автоматизация submit, но хотя бы мониторинг.
Шаг 6: Sync в Upstash
Все результаты уходят в Upstash Redis через API-эндпоинт сайта. Serverless, per-request pricing, нет idle cost. На моих объёмах - бесплатный tier.
Дашборд /seo
React-компонент SeoTracker тянет данные из Upstash и показывает табличку: каждый URL, статус по Google/Yandex/Bing, дата последней проверки. Лог действий пайплайна. Видно, что Bing проиндексировал за час, а Google “discovered but not indexed” уже третий день.
Результат
Каждый push в main запускает полный цикл. Yandex и Bing получают уведомление автоматически. Google - только проверка статуса (submit по-прежнему руками).
Из 15 страниц: Bing - все 15 проиндексированы за сутки после настройки. Yandex - 13 из 15 за двое суток. Google - 9 из 15 после ручного submit, остальные висят в очереди.
Что понял
IndexNow решает проблему индексации для всех поисковиков кроме Google. Одним протоколом. Собрать GitHub Action под него - вечер работы, часа три с тестами.
У Google нет API для submit обычного контента. Indexing API - только для structured data. Единственный путь - Search Console руками + ждать. Пока не нашёл способ это автоматизировать. Если кто-то нашёл - напишите, буду рад.
Выбрал Upstash вместо SQLite/JSON-файлов потому что serverless API из GitHub Actions - один fetch, без драйверов. Смотрел ещё на Turso и PlanetScale, но для 15 ключей Redis проще. Trade-off: vendor lock на Upstash. Но при бесплатном тарифе и 15 ключах - не критично.