这个坑值得记一笔。整站迁到新域名并做了 301,Search Console 里旧域名的索引量三个月还有两万条,site 查询能看到大量旧地址,新域名的收录只涨了一半。

刚开始盯着「新站页面里的内链还指向旧域名」,折腾了半个多小时,排掉了。

把日志和配置对完,能解释这个现象的基本就这几处。旧域名的 301 只对首页生效,内页仍返回 200;旧站服务器没有下线,两套内容同时可访问;旧域名的 sitemap 仍在提交,持续给蜘蛛旧地址。

动手时先抽查旧域名内页的状态码

curl -s -o NUL -w "%{http_code} %{redirect_url}\n" http://old.example.com/post-1024/

再往下统计旧域名仍返回 200 的路径

findstr /c:"old.example.com" access.log | measure -Line

然后把旧站整站改为 301 并停掉旧 sitemap

curl -sI http://old.example.com/anything | findstr /i "HTTP location"

修正新站内链里的旧域名

SELECT COUNT(*) FROM wp_posts WHERE post_content LIKE '%old.example.com%';

怎么算真的好了,看的是同一批现象。旧站全部 301 并撤掉旧 sitemap 后,旧域名索引量两个月内降到三千,新域名收录补齐。

这里还有个坑。迁移不是配一条首页跳转就结束,内页、内链、sitemap 和旧服务器都要一起处理。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189