问题出现得很突然,日志倒是留得挺全。sitemap 报告里已提交十二万条,已编入索引只有八百,比例低得离谱,站点却是正常运营的内容站。

真正麻烦的地方在于,几个原因的现象几乎一样。索引文件里混入大量参数页和筛选组合。还有一种是提交的是索引文件,子文件条数被算进总数。

还有一种情况,不少地址返回 200 但内容是空列表。

上来先统计带参数的地址占比

curl -s https://www.example.com/sitemap.xml | grep -c '?'

只保留正文页再提交

curl -s https://www.example.com/sitemap.xml | grep -c '<loc>'

接着抽查空列表页面

curl -s https://www.example.com/filter/a/ | wc -c

等前面都确认过,再重新生成并提交

curl -sI https://www.example.com/sitemap.xml | head -1

同样的操作我在测试机上先走了一遍,线上只做验证过的部分。

别只看报错消失,验证要多做一步。提交条数降到与正文页数量接近,已编入比例升到五成以上,抓取预算集中到正文页。

这里还有个坑。提交量不是成绩单,塞得越多越像低质站点,宁可少交也不要注水。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189