什么时候用这个工具
IndexNow 密钥是所有权证明:你在自己的主机上发布一个随机字符串,让搜索引擎确认提交来自控制该主机的人。以下几种情况需要新密钥。
接入新主机
每个提交 URL 的主机名都需要能对外提供自己的密钥文件。预发域名和生产域名属于两个不同的主机。
出问题后轮换
密钥本身是公开的,但如果密钥文件同时存在于你无法控制的域名上,它就失去意义了。生成新密钥并删除旧文件。
区分环境
每个环境用不同的密钥,事后查日志时能一眼看出是哪个系统提交的批次。
替换弱密钥
过短或可猜测的密钥要么不满足协议的 8–128 位规则,要么容易被复现。生成的密钥两个问题都避免。
如何生成并部署密钥
密钥不会离开浏览器:它由 Web Crypto API 生成,下载文件也在本地组装。
- 1
生成密钥
会得到一个 32 位十六进制字符串——远在协议 8–128 位限制之内,且只包含 IndexNow 接受的字符。
- 2
下载文本文件
文件名为 <密钥>.txt,内容只有密钥本身。多余内容是导致 403 最常见的原因。
- 3
上传到主机根目录
以 text/plain 提供在 https://你的主机/你的密钥.txt。确认它没有被鉴权、跳转或人机验证挡住。
- 4
先校验,再提交
首次提交前用密钥校验器对线上地址跑一遍。通过之后,把同一个密钥填进提交表单。
常见坑
文件里不只有密钥
末尾换行没问题,但模板包裹、JSON 或 HTML 页面都不行。文件正文必须等于密钥本身。
主机返回软 404
很多框架对未知路径返回 200 加应用外壳。搜索引擎读到的就是 HTML 而不是密钥,批次会被拒绝。
把密钥当机密处理
把文件放在鉴权之后或在 robots 里屏蔽,会让它失去作用——验证过程是一次无鉴权的 HTTP 抓取。
多主机复用密钥但不放文件
每个主机都必须提供自己的那份副本。在 example.com 上通过验证的密钥不会授权 blog.example.com。
常见问题
- IndexNow 密钥应该多长?
- 8 到 128 位字符,可用字母、数字和短横线。本工具生成 32 位十六进制字符——足够难猜,同时在日志里仍然可读。
- 可以自己写密钥吗?
- 可以。只要符合字符和长度规则的字符串都行。用生成的密钥只是为了避免不小心选了过短或容易预测的值。
- 文件名必须和密钥一致吗?
- 只有使用默认位置时才需要。如果放在别处,提交时用 keyLocation 指定该地址即可——但它仍必须在同一个主机上。
- 生成密钥时会发给 submitnow 吗?
- 不会。生成和下载完全在浏览器内完成,全程没有任何网络请求。
- 密钥要多久轮换一次?
- 没有有效期。只有在需要作废旧文件时才轮换,并记得同时删除之前的密钥文件。