先把当时的情况摆出来。站点的聚合逻辑是标签两两组合,自动生成了八千多个「标签 A + 标签 B」的页面,内容就是把两个列表拼起来,索引里进了三千条,全是重复拼装。
真正麻烦的地方在于,几个原因的现象几乎一样。组合页由模板自动拼装,没有人工判断的必要性。另一种情况是两两组合的数量随标签数平方增长,很快失控。
还有一种情况,组合页的标题是机械拼接,语义上没有独立价值。
动手时先统计组合页的实际数量与收录量
grep -c 'tag-combo' access.log
只保留有真实搜索需求的组合白名单
SELECT slug FROM wp_terms WHERE term_id IN (101,204,318);
其余组合页统一 301 到主标签页
curl -sI https://www.example.com/tag/seo-nginx/ | head -3
恢复的判定其实很直接。砍到 200 个白名单组合后,这部分页面的平均点击从 0.2 升到 3.1,索引里重复拼装页基本清空。
自动拼装出来的页面最容易被判低质,组合维度越多,越要先想清楚谁会搜这个词。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
