事情本身不复杂,线索都在日志里。列表页支持 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 才是长期方案。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
