这类问题我又碰上了一次。站点四万条地址,想全量核对索引状态,脚本跑到两千次开始返回 429,后面的请求全部失败。

原因不止一个,得分开看。每个资源每天两千次查询,按项目共享额度;脚本并发太高,触发每分钟的调用限速;失败后立即重试,把剩余额度耗得更快。

第一件事是看返回的状态码与错误体

curl -s -o /dev/null -w '%{http_code}' 'https://searchconsole.googleapis.com/v1/urlInspection/index:inspect'

随后按优先级只查重点页

SELECT ID FROM wp_posts ORDER BY post_modified DESC LIMIT 1900;

失败后做指数退避

sleep $((2**n))

每天留一百次余量

curl -s 'https://searchconsole.googleapis.com/v1/urlInspection/index:inspect' -H 'Authorization: Bearer $TOKEN' | head -3

排查用的命令都是临时敲的,没有写成脚本,事后才整理。

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

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

恢复的判定其实很直接。脚本不再出现 429,每天稳定查完两千条,控制台可见剩余额度,重点页覆盖完整。

两千次看着多,四万条要跑二十天,日常只查新发布和改动过的页面就够。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189