记录一下那天晚上的排查过程。新文发布后脚本调用 IndexNow 接口,返回 200 和 requestId,可三天过去必应日志里没有一条对应 URL 的请求,后台的已提交列表倒是正常显示。
真正麻烦的地方在于,几个原因的现象几乎一样。提交的 URL 与 key 文件所在主域不一致,记录被丢弃。还有一种是站点在必应那边抓取频次极低,提交只是进了排队队列。
少数情况下是接口返回 200 只代表收到请求,不代表已经安排抓取。
第一件事是确认 key 文件可公开访问且内容一致
curl -s https://www.example.com/8f3a2c9d1e.txt
再往下核对提交体里的 host 与 URL 主域
curl -s -X POST https://api.indexnow.org/indexnow -H 'Content-Type: application/json' -d '{"host":"www.example.com","key":"8f3a2c9d1e","urlList":["https://www.example.com/p/1"]}'
随后在必应后台查该 URL 的索引状态
site:www.example.com/p/1
补一次 sitemap 提交作为兜底
curl -sI https://www.example.com/sitemap.xml
别只看报错消失,验证要多做一步。第四天日志里出现 Bingbot 对目标 URL 的请求,索引状态从已发现变成已编入,同批提交的另外九条也在两天内陆续被抓。
提醒一点。IndexNow 是加速通道不是保证通道,新站或低频站提交后仍要靠 sitemap 和站内更新频率把蜘蛛养回来。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。
