整站从 old.com 迁到 new.com,页面在浏览器里都能打开,sitemap 里输出的仍是旧域名,新站收录几乎为零,老域名却在继续被收录。

原因不止一个,得分开看。数据库里的 siteurl 和 home 两个字段没有改;文章正文里写了大量旧域名的绝对链接;缓存插件把旧的 sitemap 结果存在文件里。

动手时先改数据库里的两个站点地址

UPDATE wp_options SET option_value='https://new.com' WHERE option_name IN ('siteurl','home');

随后替换正文中的旧域名

UPDATE wp_posts SET post_content=REPLACE(post_content,'old.com','new.com');

末了清掉缓存目录后重新生成

rm -rf /www/wwwroot/site/wp-content/cache/*

这台环境是别人交接的,不少默认值被动过,只能一项项核。

同事提醒我看一下最近一次发布,时间点确实对得上。

命令输出我都留了记录,免得改完记不清原来的值。

改完先别撤,确认这几项。sitemap 里全部是新域名,GSC 里新站的已发现数量开始上升,旧域名只剩跳转记录。

补一句。序列化数据里存着旧域名时直接 UPDATE 会破坏结构,页面会白屏,用搜索替换工具处理更安全。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189