先把当时的情况摆出来。必应抓取统计里 301 占了七成,200 只剩两成。站点两年前换过域名,旧域名还在做跳转,外链和站内链接大量指向旧地址。
把日志和配置对完,能解释这个现象的基本就这几处。旧域名的外链一直没更新,每次抓取都要跳一次。还有一种是站内图片与附件地址仍然是旧域名。
少数情况下是跳转是多跳链路,一跳接一跳才到终点。不容易想到的是,旧域名的站点地图还在被读取,条目全是旧地址。
先统计 301 的来源与终点
awk '$9==301 {print $7, $1}' access.log | head -20
再往下分批替换正文里的旧域名
wp search-replace 'https://old.lu0.cn' 'https://www.lu0.cn' --dry-run
旧域名一次跳到最终地址
return 301 https://www.lu0.cn$request_uri;
撤掉旧域名的站点地图引用
别只看报错消失,验证要多做一步。301 占比从七成降到两成以下,200 的抓取量翻倍,新内容的收录速度同步变快。
容易忽略的是,301 本身不丢权重,丢的是抓取预算,每一次跳转都要花掉一次请求额度。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
