日志里每天有上千次 /?from=rss 的抓取,同一篇文章因为这些参数被当成多条地址反复抓,收录里也出现了重复版本。

把日志和配置对完,能解释这个现象的基本就这几处。订阅源输出没有做参数收敛,全站链接都带后缀;canonical 没有忽略这些参数,蜘蛛认为是不同页面;站内没有对这些参数做过跳转或规范处理。

第一件事是统计该参数的请求量

grep -c 'from=rss' access.log

然后在 canonical 里忽略无关参数

add_filter('wpseo_canonical', 'ignore_tracking_params');

等前面都确认过,再把带参数的请求 301 到干净地址

if ($args ~ 'from=rss') { return 301 $uri; }

这次没动代码,只在配置和运行环境上找原因。

改完先别撤,确认这几项。该参数的抓取量降到接近零,文章地址的收录和排名没有受到影响,重复网页报告也更干净。

这里还有个坑。直接 robots 屏蔽参数会连正常分享链接一起挡掉,先做 canonical 收敛,再考虑跳转,顺序反了会丢流量。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189