你一小时前更新了定价页,可 ChatGPT 报出来的还是上个月的数字。问题出在抓取延迟:搜索引擎按自己的节奏发现改动,有时要等好几天。IndexNow 就是用来消掉这段延迟的——页面一变,你就主动推一条通知,让 Bing 和 Yandex 在几分钟内重新抓取,而不是几天。由于 Bing 的索引正是 ChatGPT 网页浏览和 Microsoft Copilot 的数据来源,更快的索引会直接影响你的品牌在 AI 回答里显得有多新。
本文带你走完整套流程:生成密钥、托管密钥文件、用 GET 和 POST 提交 URL、在发布时自动提交,以及验证它是否真的生效。
核心要点
- IndexNow 是一个开放协议,Microsoft Bing 与 Yandex 支持它;一次提交就通知所有参与引擎,Cloudflare 等平台还能代你提交。 - 它对 GEO 有意义,是因为 Bing 索引支撑着 ChatGPT 网页浏览和 Microsoft Copilot,把新页面快速送进 Bing,就更可能被 AI 用当前信息引用。 - 配置分三步:生成密钥(十六进制,8–128 位),托管到 `https://yourdomain.com/<key>.txt`,再把 URL 提交到 `https://api.indexnow.org/indexnow`。 - IndexNow 通知的是 Bing 和 Yandex,不是 Google;它加快抓取,但不保证被索引,更不保证立刻出现在任何 AI 回答里。 - 真正的价值在于把「每次发布或更新即提交」自动化,再用 Bing Webmaster Tools 验证。
步骤 1:生成 IndexNow 密钥
密钥是一段共享密文,用来证明网站归你所有。它必须是十六进制字符串(`a`–`f` 和 `0`–`9`),长度在 8 到 128 位之间。
用命令行生成:
- macOS 或 Linux:`openssl rand -hex 16` - 用 Node:`node -e "console.log(require('crypto').randomBytes(16).toString('hex'))"`
你也可以用 Bing Webmaster Tools 里的密钥生成器,它会帮你创建并注册。把值保存好,后面到处都要用。一个典型密钥长这样:`a1b2c3d4e5f60718293a4b5c6d7e8f90`。
步骤 2:托管密钥文件
搜索引擎通过抓取一个以密钥命名的文本文件来验证所有权。创建一个名为 `<你的密钥>.txt` 的文件,文件内容就是密钥本身,放到网站根目录:
- 文件名:`a1b2c3d4e5f60718293a4b5c6d7e8f90.txt` - 内容:`a1b2c3d4e5f60718293a4b5c6d7e8f90` - 位置:`https://yourdomain.com/a1b2c3d4e5f60718293a4b5c6d7e8f90.txt`
继续之前先确认它可以公开访问:
`curl https://yourdomain.com/a1b2c3d4e5f60718293a4b5c6d7e8f90.txt`
返回的正文必须恰好是密钥,状态码 `200`,类型 `text/plain`。如果愿意,你也可以把密钥托管在域名的其他路径下,再在 POST 载荷里用 `keyLocation` 指向它,不过放根目录最省事。
步骤 3:用 GET 提交单个 URL
最快的测试方式是发一个 GET 请求,把域名和密钥换成你自己的:
`curl "https://api.indexnow.org/indexnow?url=https://yourdomain.com/blog/new-pricing&key=a1b2c3d4e5f60718293a4b5c6d7e8f90"`
返回 `200` 或 `202` 就表示提交被接受。GET 适合临时单发——比如刚发完一篇文章顺手推一下——但一次只能带一个 URL。
步骤 4:用 POST 批量提交
批量更新时,向同一个端点发一个带 JSON 正文的 POST。这也是接进构建流程或 CMS 的方式。
`curl -X POST "https://api.indexnow.org/indexnow" -H "Content-Type: application/json" -d '{ "host": "yourdomain.com", "key": "a1b2c3d4e5f60718293a4b5c6d7e8f90", "keyLocation": "https://yourdomain.com/a1b2c3d4e5f60718293a4b5c6d7e8f90.txt", "urlList": [ "https://yourdomain.com/blog/new-pricing", "https://yourdomain.com/products/flagship", "https://yourdomain.com/about" ] }'`
`urlList` 里的每个 URL 都必须属于你声明的 `host`——没验证过的域名不能替它提交。批量控制在合理范围内(协议规定每次请求最多 10,000 个 URL),而且只提交真正变动过的页面。
步骤 5:在发布和更新时自动提交
手动 ping 撑不起规模。目标是每次发布或有意义的编辑都自动触发一次提交。
- CMS webhook:在「文章已发布」或「文章已更新」事件上触发一个小的无服务器函数,把变动的 URL POST 到 `https://api.indexnow.org/indexnow`。 - Cloudflare:在 Cloudflare 控制台启用 IndexNow 集成,让 Cloudflare 依据你的站点地图和抓取信号代你提交——你这边完全不用碰密钥。 - Shopify:用一个应用或在 `products/update`、`articles/update` 上挂 webhook,提交受影响的商品页和博客 URL。 - 静态站点:在 CI 流水线里加一个部署钩子,从构建结果读出变动路径,部署后提交。
只在真有改动时 ping。反复提交没变的 URL 既浪费额度,也容易被当成垃圾请求。
常见坑
- 密钥对不上:文件内容必须和请求里的密钥完全一致,多一个换行或大小写不同都会验证失败。 - host 写错:提交的 URL 域名和 `host` 字段不符,整批会被拒。 - 用了 HTTP 而非 HTTPS:提交用户实际看到的规范 HTTPS URL,别提交跳转前的地址。 - 过度提交:不管有没有变都定时 ping 同一批页面,是最快被限流的做法。 - 指望 Google:IndexNow 不通知 Google。Google 靠站点地图和常规抓取;IndexNow 覆盖的是 Bing、Yandex 以及建在 Bing 之上的 AI 工具。
如何验证
验证分两层:ping 有没有送达,以及它有没有带来改变。
- 确认接受:API 返回 `200`/`202`,说明请求格式正确、密钥解析成功。 - 查 Bing Webmaster Tools:IndexNow 板块会显示已提交的 URL 及其状态,URL 检查工具会显示最近一次抓取日期。ping 之后抓取日期往前走了,就说明生效了。 - 看服务器日志:提交后不久,留意来自 `bingbot` 对这些路径的访问。
快速进 Bing 只是第一步。对 GEO 真正重要的,是 AI 引擎之后到底有没有引用这个新页面。这正是 GEOly 的位置。GEOly 是一个以行业情报洞察为核心的 GEO 数据平台:更新内容在 Bing 上线后,你可以在 ChatGPT、Copilot 等引擎上追踪自己的引用率和 AIGVR(它的 AI 生成可见度评分),并用信源分析看清 AI 实际是从你哪些 URL 取内容的。GEOly 还集成了 Cloudflare Analytics,可以把抓取活跃度和引用增长对齐来看。你可以在 `app.geoly.ai` 免费试用 3 天。想了解平台全貌,可以读[什么是 GEOly AI](/zh/blog/what-is-geoly-ai)。
爬虫策略有两面——放谁进来、以及让它们多快看到改动——把本文和[为什么品牌现在就该审计 AI 爬虫访问权限](/zh/blog/why-brands-audit-ai-crawler-access-now)、[提升 AI 抓取与引用的最佳实践](/zh/blog/best-practices-increase-ai-crawling-citations)搭配来看。如果你同时在收紧哪些机器人能访问你,可以参考如何[为 AI 爬虫配置 robots.txt](/zh/blog/configure-robots-txt-ai)。本文由 [GEOly AI 编辑团队](/zh/blog/author/geoly-ai)出品。
常见问题
IndexNow 会把我的页面提交给 Google 吗?
不会。IndexNow 通知的是 Bing 和 Yandex。Google 通过自己的站点地图和抓取来发现内容。但由于 ChatGPT 和 Copilot 依赖 Bing 索引,即便不支持 Google,IndexNow 对 AI 可见度依然有价值。
IndexNow 能让我的内容立刻进 ChatGPT 吗?
它加快的是抓取,不是回答。IndexNow 能在几分钟内把新页面送进 Bing,这是 ChatGPT 浏览时能看到它的前提——但 AI 到底引不引用你,取决于相关性、权威度和内容的可提取性,光靠一次 ping 不行。
同一个 URL 能多久提交一次?
只在页面有实质变化时提交。反复 ping 没变的 URL 既浪费额度,又可能触发限流。定时重复提交一个静态页面没有任何好处。
一个密钥能覆盖多个子域名吗?
你提交的每个 `host` 都必须有一个可验证的密钥文件。最简单的做法是在每个要提交的域名或子域名根目录托管密钥文件。
如果 Cloudflare 已经在处理 IndexNow,我还需要自己做吗?
启用了 Cloudflare 的 IndexNow 集成后,Cloudflare 会代你提交,你就不必自己管理密钥。只有当你想精确控制到底哪些 URL、在什么时候被 ping 时,才值得在此之上再跑一套自己的提交。



