链接报告里排在前面的内部链接九成是 /go.php?url= 这种跳转地址,正文里的正常内链反而靠后,新文章的发现速度也慢了下来。

一开始怀疑是「导航模板也套了跳转,每页多出几十条 302」,查了一圈,方向不对。

排查方向其实有限,先把可能性排一排。正文内外链都过了一层跳转脚本,被计入内部链接。少数情况下是跳转地址没有 nofollow,蜘蛛一路跟到底。

少数情况下是脚本对蜘蛛返回 302,对用户返回 200 页面。

第一件事是按跳转地址聚合日志里的请求

grep -o '/go.php?url=[^ "]*' access.log | sort | uniq -c | sort -rn | head

站内链接改成直链

https://www.example.com/post/1024

必须保留的跳转加 nofollow

<a href="/go.php?url=abc" rel="nofollow">

末了抽查跳转对蜘蛛的响应码

curl -sI -A 'Googlebot' 'https://www.example.com/go.php?url=abc'

改完先别撤,确认这几项。一个月后跳转地址的占比从九成降到一成多,新文章的发现时间缩短到一天以内。

补一句。站内跳转算不算内部链接取决于目标是否同域,302 并不会把它变成外链。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189