IndexNow для Next.js: ускорение discovery для AI Search и Bing Copilot
Как внедрить IndexNow в Next.js для новых и обновлённых страниц: API routes, keys, sitemap, canonical URL и измерение GEO.
IndexNow - это push-механизм: вместо ожидания повторного обхода вы сообщаете участвующим поисковым системам, что URL изменился. Для GEO это важно, потому что некоторые AI search experiences опираются на web indexes и свежесть источников.
GEO Scout не требует IndexNow, но помогает проверить, коррелирует ли ускоренное discovery с AI-видимостью в geoscout.pro.
Что отправлять
Отправляйте canonical public URLs, когда они:
- созданы;
- существенно обновлены;
- перенаправлены;
- удалены;
- восстановлены после ошибки;
- важны для commercial prompts.
Хорошие candidates:
/features/*
/pricing
/docs/*
/blog/*
/compare/*
/customers/*
/case-studies/*
/securityНе отправляйте internal search, preview URLs, private dashboards и parameter duplicates.
Key file
Создайте key file в корне:
https://example.com/YOUR_KEY.txtВ Next.js статический файл:
public/YOUR_KEY.txtДля server-side submission храните значения в env:
INDEXNOW_KEY=your-key
SITE_URL=https://example.comSubmission route
Защитите route, который будет вызывать CMS или deployment process:
import { NextResponse, type NextRequest } from 'next/server'
export async function POST(request: NextRequest) {
const token = request.headers.get('authorization')
if (token !== `Bearer ${process.env.INDEXNOW_SUBMIT_TOKEN}`) {
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
}
const { urls } = (await request.json()) as { urls: string[] }
const host = new URL(process.env.SITE_URL!).host
const response = await fetch('https://api.indexnow.org/indexnow', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
host,
key: process.env.INDEXNOW_KEY,
keyLocation: `${process.env.SITE_URL}/${process.env.INDEXNOW_KEY}.txt`,
urlList: urls,
}),
})
return NextResponse.json({ ok: response.ok, status: response.status })
}Вызывайте route только из trusted systems.
CMS hook
Когда редактор публикует страницу:
- собрать canonical URL;
- обновить sitemap;
- revalidate страницу, если используется ISR;
- отправить URL в IndexNow;
- залогировать submission status.
Так discovery синхронизируется с publishing.
Canonical guardrails
Перед отправкой нормализуйте:
- protocol;
- host;
- trailing slash policy;
- locale prefix;
- lowercase slugs, если это правило сайта;
- удалённые query parameters;
- redirected legacy URLs.
Дубли вариантов URL размывают signals и усложняют логи.
Robots и rendering всё ещё важны
IndexNow не является обходом правил. Если submitted URL заблокирован или thin, пользы не будет.
Проверьте:
curl -A "Bingbot/2.0" -I https://example.com/features/reporting
curl -A "Bingbot/2.0" -s https://example.com/features/reporting | head -80Страница должна возвращать 200, canonical metadata, body content и JSON-LD в initial response.
Measurement
Логи показывают discovery:
- запрашивал ли Bingbot submitted URL;
- как быстро после submission;
- был ли response 200;
- попал ли он на canonical page.
GEO Scout показывает visibility:
- цитирует ли Bing Copilot или другие AI surfaces страницу;
- улучшились ли brand mentions по связанным prompts;
- снизилась ли source share у конкурентных pages.
IndexNow - это speed layer. GEO всё равно зависит от полезного контента, structured evidence и clean crawler access.
Частые вопросы
IndexNow напрямую обновляет ChatGPT или Claude?
IndexNow заменяет sitemap?
Где хранить IndexNow key в Next.js?
Как GEO Scout измеряет пользу IndexNow?
Похожие статьи
AI crawler logs в Vercel: как отладить GEO-доступ
Как использовать Vercel logs и headers для проверки GPTBot, ClaudeBot, PerplexityBot, Googlebot, Bingbot, robots.txt, redirects, rendering и AI crawler readiness.
Checklist AI Crawler Readiness: готов ли сайт к GPTBot, OAI-SearchBot и другим ботам
Технический чек-лист готовности сайта к AI-краулерам: robots.txt, sitemap, SSR, коды ответа, логи, CDN, rate limits, structured data и контент без блокировок.
llms.txt для Next.js: технический чеклист AI crawler readiness
Как добавить llms.txt, robots.txt, sitemap, canonical, структурированные данные и серверный рендеринг в Next.js для AI-краулеров.