报错是这么冒出来的。标签聚合页 /tag/nginx 有 12 页,第一页收录了,后 11 页一直不抓。模板只输出 canonical 指向第一页,分页参数页全靠蜘蛛自己顺着链接爬。
中间走过弯路,把「标签页列表只输出上一页下一页链接,没有数字分页,爬不到深层」当成主因,改完现象没变。
排查方向其实有限,先把可能性排一排。分页模板把 rel next 和 prev 写死成空值,蜘蛛拿不到序列关系。另一种情况是canonical 一律指向第一页,等于告诉引擎后面几页都是重复内容。
少数情况下是分页地址带 sort 参数,同一页出现多个入口,抓取被分散。
第一件事是抽查标签页头部的分页标签
curl -s https://www.lu0.cn/tag/nginx/page/3/ | grep -o 'rel="[a-z]*"'
接着让分页模板按当前页码输出 next 与 prev
canonical 改成自指,别统一指第一页
等前面都确认过,再把标签页分页写进站点地图并设置合理优先级
curl -s https://www.lu0.cn/sitemap_tag.xml | grep -c '<loc>'
恢复的判定其实很直接。三周后标签分页的抓取覆盖率从不足一成升到七成,序号靠后的聚合页开始有长尾词展现。
rel next 只是提示,标签页太多时真正该做的是砍掉低频标签,把抓取预算留给有搜索量的那几个。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。
