这个坑值得记一笔。脚本向 api.indexnow.org 推了 500 条新文地址,接口返回 200,响应体是 code 200 和 message OK。三天过去,Bingbot 的日志里一条对应请求都没有,站长后台的 URL 提交记录也是空的。重新推了一遍,又换了一个 key,结论一样。
刚开始盯着「推的是 301 之前的旧地址,Bing 收到后跟着跳转就丢弃了」,折腾了半个多小时,排掉了。
真正麻烦的地方在于,几个原因的现象几乎一样。key 文件放在站点根目录但被伪静态规则吞了,实际返回 404;提交里的 host 写的是裸域,站点证书和后台验证的是 www,两边对不上;站点在 Bing 站长后台还没验证,提交只是进队列,不保证抓取。
动手时先确认 key 文件能直接访问且类型正确
curl -sI https://www.example.com/8f3c2a1b9d.txt | grep -i -E 'HTTP/|content-type'
直接调接口看返回体里的完整信息
curl -s -X POST https://api.indexnow.org/indexnow -H 'Content-Type: application/json' -d '{"host":"www.example.com","key":"8f3c2a1b9d","keyLocation":"https://www.example.com/8f3c2a1b9d.txt","urlList":["https://www.example.com/p/1024"]}'
然后核对提交地址与当前线上最终地址是否一致
curl -sI https://www.example.com/p/1024 | head -2
末了在站长后台完成站点验证后再提交一批小样本
别只看报错消失,验证要多做一步。key 文件返回 200 且类型是 text/plain,小样本提交后 24 小时内日志里出现 Bingbot 抓取,后台记录里状态变成已发现。
提醒一点。接口返回 200 只代表请求格式正确,不代表蜘蛛会来,key 校验失败时它同样回 200,必须自己去看文件能不能访问。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
