改版把 /category/tech/ 换成了 /tech/,页面跳转配了 301,但面包屑、JSON-LD 的 item 和内链还写着旧目录,结构化数据报告里成批出现指向重定向的错误。
真正麻烦的地方在于,几个原因的现象几乎一样。模板里栏目地址是硬编码的,没有走统一的链接函数。少数情况下是结构化数据的 item 用旧路径拼字符串。
不容易想到的是,301 让跳转能通,掩盖了页面内部的旧地址。
动手时先抽查面包屑与结构化数据里的地址
curl -s https://www.example.com/post/1 | grep -o 'https://www.example.com/category/[^"]*' | head
随后统一改用 get_category_link 输出
grep -rn '/category/' wp-content/themes/yourtheme/ | head
批量替换正文里的旧目录内链
wp db query "UPDATE wp_posts SET post_content=REPLACE(post_content,'/category/tech/','/tech/');"
同事提醒我看一下最近一次发布,时间点确实对得上。
命令输出我都留了记录,免得改完记不清原来的值。
改完先别撤,确认这几项。替换后结构化数据的面包屑错误清零,栏目页入链恢复,301 的访问量跟着下降。
提醒一点。301 只是兜底,内部还留着旧地址等于让蜘蛛每次多跳一次,权重和抓取预算都在损耗。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
