报错是这么冒出来的。标签聚合页的标题按标签、栏目、站点名、年份依次拼接,实际输出七十多个字符,搜索结果里只剩前半段,用户看到的标题和页面内容对不上,点击率掉了一半。
中间走过弯路,把「站点名后缀在移动端还会再叠一次」当成主因,改完现象没变。
排查方向其实有限,先把可能性排一排。模板把多个变量无条件拼接,没有长度判断。还有一种是聚合页数量多,改模板前没人抽查过真实输出。
不容易想到的是,部分标签名本身就有二十多个字符。
拉一个聚合页看标题的真实长度
curl -s https://www.example.com/tag/seo/ | grep -o '<title>[^<]*</title>'
数一下聚合页在索引文件里的总量
curl -s https://www.example.com/sitemap.xml | grep -c '/tag/'
模板改成长度足够时才追加站点名
echo mb_strlen($title, 'UTF-8') > 30 ? $title : $title . ' - 站点名';
剩下的就是抽
查
恢复的判定其实很直接。改完后聚合页标题稳定在 30 字以内,搜索结果里的截断消失,这批页面的点击率两周内回到 4% 左右。
这里还有个坑。聚合页标题要留出被追加的余量,按最长的标签去算,而不是按平均值。这类问题最好一次改到位,反复小改反而容易把原因搅混。
