侧栏标签云按热度输出全部 300 多个标签,每个页面底部都挂着这一整块,蜘蛛从任意文章进来都在标签之间绕,正文只抓了两三篇。
真正麻烦的地方在于,几个原因的现象几乎一样。标签云没有数量上限,全站每页重复同一批链接。另一种情况是标签页之间互相链接,形成密集的环。
少数情况下是标签链接没有 nofollow,蜘蛛把它们当成主要路径。
动手时先把标签云限制在前 30 个
wp_tag_cloud(array('number' => 30, 'smallest' => 12, 'largest' => 12));
标签页只保留上一层和下一层互链
curl -s https://www.example.com/tag/seo/ | grep -c '/tag/'
低频标签从模板里撤掉
SELECT name FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy='post_tag' AND count < 3);
等前面都确认过,再观察正文页抓取占比变化
grep -c '/tag/' access.log
同样的操作我在测试机上先走了一遍,线上只做验证过的部分。
恢复的判定其实很直接。标签请求占比从 42% 降到 9%,同期正文页抓取量涨了 1.7 倍,新文收录间隔缩短到两天。
标签云是典型的内链陷阱,数量少的时候是导航,多了就是抓取预算的黑洞。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
