问题出现得很突然,日志倒是留得挺全。编辑习惯给所有正文链接加 target=”_blank”,抽查发现 300 条站内链接全是新窗口打开,栏目页的收录速度明显慢于同类站点。

刚开始盯着「站内链接加新窗口没有意义,直接暴露模板套用痕迹」,折腾了半个多小时,排掉了。

这类报错背后常见的原因有几处,逐个排除就行。新窗口打开把用户带走,站内停留与回访数据变差。还有一种是部分主题在 target=_blank 时补 rel=noopener,写法不统一。

少数情况下是移动端新窗口返回手势打断浏览,跳出率上升。

第一件事是统计带 target 的站内链接

grep -o '<a[^>]*target="_blank"[^>]*>' post.html | grep -c 'example.com'

去掉站内链接的 target 属性

sed -i 's#<a \([^>]*example.com[^>]*\) target="_blank"#<a \1#g' post.html

给外链统一补 rel

sed -i 's#<a \([^>]*href="http[^"]*"\)>#<a \1 rel="noopener nofollow">#g' post.html

等前面都确认过,再抽查线上输出

curl -s https://www.example.com/nginx-502/ | grep -o 'target="_blank"' | wc -l

别只看报错消失,验证要多做一步。正文里站内链接不再带 target 属性,外链统一带 noopener,栏目页的抓取次数在两周内回升。

这里还有个坑。target=_blank 本身不影响抓取,真正的问题是它常和错误的 rel 一起出现,把站内链接写成了 nofollow。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189