记录一下那天晚上的排查过程。每篇文章底部列十个标签,每个标签页再列相关标签,站点一共有八千个标签。日志里蜘蛛一天爬了四万次标签页,文章只抓了六百篇。
刚开始盯着「标签页全部可索引,也没有分页条数限制」,折腾了半个多小时,排掉了。
这类报错背后常见的原因有几处,逐个排除就行。标签页之间互相推荐,形成没有出口的环。另一种情况是标签数量没有上限,长尾词各生成一个可索引页面。
不容易想到的是,标签列表挂在所有页面底部,入口密度过高。
算出标签页被爬的次数占比
awk '{print $7}' access.log | grep -c '^/tag/'
再往下把标签收敛到五十个并合并同义项
wp term list post_tag --orderby=count --order=desc --number=50
长尾标签统一 noindex 并取消互链
一周后看文章页的抓取增量
awk '{print $7}' access.log | grep -vc '^/tag/'
怎么算真的好了,看的是同一批现象。标签页请求占比从七成降到两成,文章页抓取量翻了三倍,新文章平均收录时间缩到一天以内。
这里还有个坑。标签是站内聚合工具,数量失控就变成蜘蛛陷阱,控制入口比事后加 noindex 有效得多。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
