事情本身不复杂,线索都在日志里。旧域名保留了 301,同时 robots.txt 里留着 Disallow: /,理由是站点已经停了不想被抓,三个月后新站排名一直没有起色。

第一反应是「旧站的 sitemap 也停止更新,蜘蛛失去了发现旧地址的入口」,验证下来不成立。

原因不止一个,得分开看。robots 屏蔽后蜘蛛读不到 301,链接价值无法传递。另一种情况是屏蔽状态下的 URL 会被逐步移出索引,外链一并失效。

不容易想到的是,两处屏蔽叠加,恢复时蜘蛛需要重新探索整站。

上来先确认旧站 robots 的实际内容

curl -s https://old.example.com/robots.txt | head -10

随后放开旧站抓取并保留跳转

User-agent: *
Allow: /

提交一份列出旧地址的 sitemap 加速回收

curl -s https://old.example.com/sitemap.xml | grep -c '<loc>'

等前面都确认过,再抽查蜘蛛是否开始抓旧地址

grep -c 'old.example.com' access.log

怎么算真的好了,看的是同一批现象。放开后两周内旧域名重新出现抓取记录,新站的关键词排名在两个月后逐步回升。

提醒一点。301 和 robots 是互相冲突的两个信号,只要还想传递权重,旧站就必须允许抓取。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189