日志里每天有上千次 /?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 收敛,再考虑跳转,顺序反了会丢流量。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。