问题出现得很突然,日志倒是留得挺全。站点换域名后正文和菜单都改了,feed 里 guid 与 link 仍是旧地址,第三方聚合站按旧地址抓取,全部 301 过去,蜘蛛把 feed 里的地址当成外链处理。
原因不止一个,得分开看。guid 在文章发布时就固定,换域名不会自动更新。另一种情况是feed 模板用的是 guid 而不是 permalink。
另外,部分聚合服务缓存了旧 feed 内容。
动手时先看 feed 里的实际链接
curl -s https://www.example.com/feed/ | grep -oE "<link>[^<]*" | head -5
再往下让 feed 输出当前 permalink
add_filter('the_permalink_rss', fn($u) => get_permalink());
等前面都确认过,再确认 guid 不再影响抓取
curl -s https://www.example.com/feed/ | grep -c "old.example.com"
隔了一天再看,现象没变,说明不是偶发。
那几天正好在做别的变更,先把时间线对齐才敢动手。
怎么算真的好了,看的是同一批现象。feed 里的 link 与 guid 都指向新域名,聚合站重新抓取后跳转量下降,日志里旧域名的 feed 请求归零。
提醒一点。guid 改动会让部分阅读器重复推送旧文,如果在意订阅体验,只改 link 保留 guid 更稳。这类问题最好一次改到位,反复小改反而容易把原因搅混。
