这个坑值得记一笔。站点从 a.example.com 换到 b.example.com 并做了全站 301,GSC 里两个资源都保留着,旧资源三个月后仍有抓取和展示数据,新资源的收录数只有旧站的一半。
这类报错背后常见的原因有几处,逐个排除就行。地址更改工具只提交了一次,部分子目录未被覆盖;旧域名的 sitemap 还在提交,蜘蛛继续按旧地址抓;站内还有指向旧域名的绝对链接,形成内部跳转链。
动手时先比对两个资源的收录与展示曲线
curl -s https://www.example.com/sitemap.xml | grep -c "<loc>"
然后停掉旧站 sitemap 并保留 301
server { server_name a.example.com; return 301 https://b.example.com$request_uri; }
全站替换残留的旧域名内链
wp search-replace 'a.example.com' 'b.example.com' --all-tables --report-changed-only
白天有业务在跑,能验证的部分都压到了晚上做。
怎么算真的好了,看的是同一批现象。旧资源的抓取量在两周内降到接近零,新资源收录数追平搬迁前的九成,旧域名请求全部是 301 且无内链指向。
容易忽略的是,301 要一直留着,至少一年,急着撤掉等于把还没转移完的信号直接掐断。这类问题最好一次改到位,反复小改反而容易把原因搅混。
