什么时候用这个工具
IndexNow 返回 403,几乎总是意味着搜索引擎读不到你以为它能读到的密钥文件。这个校验会从你的网络之外复现那次抓取。
首次提交之前
先确认文件已经生效,而不是用一次批次去换来一个失败结论。
部署或迁移之后
路由、托管或 CDN 规则一变,静态文件很容易就丢了。
Bing 返回 403 或 422 时
这两个码通常都追溯到密钥文件或主机不匹配,而不是 URL 列表本身。
你能打开但爬虫打不开时
鉴权、WAF 规则和地域封锁会让一个在你浏览器里正常的文件,从外部完全不可见。
怎么执行校验
请求在服务端发出并跟随跳转,因此你看到的就是搜索引擎抓取器会看到的内容。
- 1
填写主机
填 URL 所在的主机名,不带协议和路径,例如 www.example.com。
- 2
填写密钥
与提交时使用的密钥字符串一致。如果文件不在默认路径,再补上密钥文件地址。
- 3
执行校验
服务端抓取文件、跟随跳转,并报告最终地址、状态码、Content-Type 和响应内容。
- 4
按提示修复
每条问题都会给出对应的修改方式。反复校验直到结果干净,再去提交批次。
常见坑
CDN 缓存
文件上传后,CDN 可能仍在返回旧的 404。清掉该路径的缓存再校验。
尾部空白或 BOM
UTF-8 的字节序标记会让正文与密钥不相等,哪怕在屏幕上看起来完全一样。
www 或 HTTPS 跳转
只要跳转改变了主机名就会导致验证失败,即使最终落在一个完全正确的文件上。
人机验证
挑战页面返回的是 200 加 HTML。对搜索引擎而言这是验证失败,而不是一层安全防护。
常见问题
- 为什么不能在浏览器里跑?
- 没有 CORS 响应头,浏览器读不到跨域响应,而密钥文件是以纯静态文本提供的。所以这次抓取必须在服务端完成。
- 你们会保存我校验的密钥吗?
- 不会。密钥只用于构造请求和比对响应,之后即丢弃,不会写入磁盘。
- 校验通过了,Bing 还是返回 403。
- 确认提交时填的密钥完全一致,并且你声明的主机与批次里每一条 URL 的主机相同。
- 可以校验预发域名上的密钥文件吗?
- 可以,只要该域名公网可达。放在 VPN 或 basic auth 之后的文件,搜索引擎同样无法验证。
- IndexNow 返回 202 是什么意思?
- 批次已被接收,但密钥还没验证。现在跑一次校验,就能提前知道那次验证会不会通过。