报错是这么冒出来的。把 blog.example.com 整体迁到 www.example.com 并做了全站 301,第 9 天百度抓取量从日均 9000 次掉到 640 次,GSC 里新域名已抓取未编入索引涨到两万条。
中间走过弯路,把「DNS 的 TTL 设成 86400,切换后 24 小时内新旧解析同时存在」当成主因,改完现象没变。
真正麻烦的地方在于,几个原因的现象几乎一样。旧域名 301 只配了首页,内页全部 302 到新域首页。还有一种是新域名 robots.txt 从旧站原样复制,里面还写着 Disallow: /tmp 之外的旧路径规则。
不容易想到的是,新域名没有单独的 sitemap 与 robots 校验 上线时直接复制了旧文件。
上来先逐个抽检旧内页的跳转状态与落点
curl -sI https://blog.example.com/post/123 | head -8
然后把 302 全部改成带路径的 301
rewrite ^ https://www.example.com$request_uri permanent;
再往下核对新域名 robots 与 sitemap 是否一致
curl -s https://www.example.com/robots.txt; curl -s https://www.example.com/sitemap.xml | grep -c loc
剩下的就是在百度搜索资源平台提交改版规则并观察抓取诊断
curl -sI https://www.example.com/post/123
怎么算真的好了,看的是同一批现象。修正跳转并重提改版后第 6 天抓取量回到 4200 次,第二十天接近迁移前水平,新域名索引量同步爬升。
迁移前把 DNS 的 TTL 降到 300 再切,能少掉一截双解析期的抓取混乱,这一步比事后补救省事得多。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
