事情本身不复杂,线索都在日志里。列表页支持 orderby=price 和 orderby=sales 两种排序,内容相同只是顺序不同,被收了近两万条,索引报告里大片重复。

第一反应是「参数顺序不同生成不同地址,同一页有多套 URL」,验证下来不成立。

真正麻烦的地方在于,几个原因的现象几乎一样。排序参数没有 canonical,也没有 noindex。另一种情况是筛选链接可以被任意拼接,蜘蛛顺着爬。

少数情况下是站点地图里误把排序地址也提交了。

先统计带排序参数的收录量

site:www.example.com/?orderby=

接着排序页 canonical 统一到默认列表

<link rel="canonical" href="https://www.example.com/list/">

robots 里挡掉排序参数

Disallow: /*?orderby=

生成站点地图时排除参数地址

SELECT ID FROM wp_posts WHERE post_type='post' AND post_status='publish';

命令输出我都留了记录,免得改完记不清原来的值。

怎么算真的好了,看的是同一批现象。一个月后排序参数的收录条目基本清空,列表页主地址的抓取比例上升。

提醒一点。能被任意拼接的筛选参数一定要收口,robots 只能止损,canonical 才是长期方案。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189