这类问题我又碰上了一次。搜索结果里 description 显示成「{{title}} - {{site}} 提供最新资讯」,前端页面看着正常,因为那段文字只在 meta 标签里,模板变量没被替换就发出去了。
原因不止一个,得分开看。description 由模板拼接,变量名和后端替换逻辑不一致;页面正文里有兜底内容,肉眼看不出来问题;缓存里存的就是未替换版本,改代码也不立刻生效。
上来先看源码里的 meta description
curl -s https://www.example.com/post/1 | grep -o '<meta name="description"[^>]*>'
再往下找出没被替换的变量位置
grep -rn '{{title}}' wp-content/themes/yourtheme/ | head
剩下的就是清理页面缓存后复验
curl -s https://www.example.com/post/1 | grep -c '{{'
中途换过一次思路,把范围缩到最小的那一层,反而快了。
中间停过一次,把已经改的东西回滚干净,再重新来一遍。
恢复的判定其实很直接。变量替换补上并清缓存后,抽样的两百个页面里不再出现花括号,搜索结果摘要恢复正常文案。
补一句。这类问题只有在搜索引擎看到的那份 HTML 里才明显,浏览器里往往被脚本覆盖了。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
