报错是这么冒出来的。整站从 old.example.com 迁到 www.example.com,301 全量做了,Google 的地址更改工具已经生效,百度 site 查询两周后仍以旧域名为主,新域名只收录了十几条。
中间走过弯路,把「新站 sitemap 没提交,百度主动发现的速度明显偏慢」当成主因,改完现象没变。
这类报错背后常见的原因有几处,逐个排除就行。百度搜索资源平台要在新旧两个站点都完成验证,才能做改站提交。也可能是旧站 301 链条里夹了一段 302,百度判定为临时跳转不继承权重。
不容易想到的是,旧站 robots.txt 里有百度禁抓规则,301 请求根本没被发现。
先确认旧域名是单跳直达
curl -sI https://old.example.com/a/1.html | grep -Ei 'HTTP/|location'
接着检查旧站是否挡住百度蜘蛛
curl -s https://old.example.com/robots.txt | grep -i baiduspider -A3
然后在新站提交 sitemap
curl -s https://www.example.com/sitemap.xml | head -3
等前面都确认过,再用百度 UA 核对新站响应
curl -sI -A 'Baiduspider' https://www.example.com/a/1.html
怎么算真的好了,看的是同一批现象。旧域名 301 为单跳,新站 sitemap 状态变为已抓取,三周后新域名的 site 条目数超过旧域名。
容易忽略的是,百度的改站提交要求两个站点都验证通过,只拿新站权限时提交入口是灰的,这一点和 Google 不同。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
