问题出现得很突然,日志倒是留得挺全。客户拿 site 查询的 2.3 万条来质疑收录,站长平台后台的索引量曲线只有 6800,两份数据差了三倍多,谁也说不清哪份能代表真实收录。

原因不止一个,得分开看。site 查询返回的是匹配结果估算值,包含标题摘要里出现域名的页面。还有一种是后台索引量按有效页面统计,被折叠的备用网页不计入。

少数情况下是查询时不带 www 和带 www 会被当成两个站分别估算。

固定查询写法再对比

site:www.example.com 与 site:example.com

然后在后台导出索引量明细

curl -s 'https://www.example.com/sitemap_index.xml'

再往下用日志统计蜘蛛实际抓到的唯一 URL 数

awk '{print $7}' access.log | sort -u | wc -l

末了把三份数据按目录对齐

awk -F/ '{print $2"/"$3}' urls.txt | sort | uniq -c | sort -rn | head

改完先别撤,确认这几项。按目录对齐后能看出差额集中在 tag 和搜索页,正文页两份数据只差 4%,此后对外只报后台索引量。

这里还有个坑。site 查询从来不是精确值,拿它做 KPI 会来回打架,真要核数就用日志里的唯一 URL 和后台明细。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189