问题出现得很突然,日志倒是留得挺全。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
同样的操作我在测试机上先走了一遍,线上只做验证过的部分。
别只看报错消失,验证要多做一步。提交条数降到与正文页数量接近,已编入比例升到五成以上,抓取预算集中到正文页。
这里还有个坑。提交量不是成绩单,塞得越多越像低质站点,宁可少交也不要注水。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
