现场是这样的。两个同模板站点做对照,A 站每小时推 50 条,B 站每天 7 点一次性推 2000 条。两周后 A 站新增页面收录 68%,B 站只有 21%,B 站接口每天都能看到几次 429,后台没有报错提示。
中间走过弯路,把「B 站提交的地址里三成是标签页和分页」当成主因,改完现象没变。
把日志和配置对完,能解释这个现象的基本就这几处。批量提交触发配额限制 超出部分被静默丢弃;短时间大量 URL 被判定为噪声 抓取优先级整体下调;提交没有按内容更新时间排序 旧页先占了配额。
上来先按天统计接口的 429 次数
Select-String -Path indexnow.log -Pattern '429' | Measure-Object
然后把提交拆成每批 100 条
for ($i=0; $i -lt $urls.Count; $i+=100) { $batch = $urls[$i..([Math]::Min($i+99,$urls.Count-1))] }
只推当天新增和实质修改的页面
SELECT ID FROM wp_posts WHERE post_modified > CURDATE() - INTERVAL 1 DAY;
末了记录每批的 requestId 便于回溯
Select-String -Path indexnow.log -Pattern 'requestId' | Select-Object -Last 5
恢复的判定其实很直接。接口不再出现 429,Bing 日志里新页面的首次抓取集中在发布后 24 小时内。
配额按天算,分散提交既省额度又让抓取更均匀,堆量只会在 429 上浪费。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
