记录一下那天晚上的排查过程。用普通收录接口推新文章,返回 {“error”:400,”message”:”over quota”},当天只推了十条就停,后台一天更新三十篇,剩下的全靠蜘蛛自己发现,新文要等一周才收录。

原因不止一个,得分开看。接口配额按站点权重分配,新站默认只有每天十条。还有一种是推送脚本对失败码没有退避,反复重试把配额耗得更快。

不容易想到的是,整站推送把老文章也塞进去,真正的新文反而排不上。

动手时先看接口返回的原始错误

curl -s "http://data.zz.baidu.com/urls?site=https://www.example.com&token=xxx" -H "Content-Type: text/plain" -d "https://www.example.com/post/1"

脚本里只推当天新发布的文章

wp post list --post_status=publish --after="$(date +%F) 00:00:00" --field=url

失败时按指数退避而不是立刻重试

sleep $((2 ** attempt))

改完先别撤,确认这几项。接口返回 remain 字段大于零,新文章推送成功率回到十成,新文收录时间从一周缩短到两天内。

容易忽略的是,配额是按天重置的,别在零点后集中猛推,分散到发布时推一条更稳。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189