先看现象。脚本每天向 IndexNow 推两千条 URL,接口一直返回 202,Bing 的抓取日志里对应地址一周内一条都没有,收录毫无变化。

这类报错背后常见的原因有几处,逐个排除就行。返回 202 只代表接收成功,不代表进入抓取队列。还有一种是key 文件与提交的 host 不匹配,请求被静默丢弃。

少数情况下是提交的 URL 不在该 key 声明的域名下。

上来先核对 key 文件能否访问

curl -s https://www.example.com/8f3a2b.txt

再往下用单条 URL 重新提交看响应

curl -s -X POST https://api.indexnow.org/indexnow -H 'Content-Type: application/json' -d '{"host":"www.example.com","key":"8f3a2b"}'

等前面都确认过,再确认提交的地址与 sitemap 一致

curl -s https://www.example.com/sitemap.xml | head -3

手上没有现成的复现脚本,就照着线上请求手工拼了一个。

报错是间歇性的,我蹲守了半小时才抓到一次完整现场。

白天有业务在跑,能验证的部分都压到了晚上做。

恢复的判定其实很直接。修正 host 和 key 后重新提交,Bing 在两天内抓取了其中大部分地址。

提醒一点。202 是接收回执不是抓取承诺,key 文件和 host 必须严格对应提交的域名。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189