问题出现得很突然,日志倒是留得挺全。运营要求所有标题以品牌名开头,模板里又追加了栏目名和年份。搜索结果里核心词被挤到 40 字之后,移动端直接截断。改版前这个词排在第二页,改完掉到第五页。

刚开始盯着「移动端按字符截断 后半段完全不展示」,折腾了半个多小时,排掉了。

原因不止一个,得分开看。品牌词占了前八个字 核心词位置过靠后。还有一种是模板自动追加栏目名和年份 标题重复冗长。

另外,搜索结果标题被重写 品牌词被合并。

动手时先统计标题长度和分布

SELECT ID, post_title, CHAR_LENGTH(post_title) FROM wp_posts WHERE post_status='publish' ORDER BY CHAR_LENGTH(post_title) DESC LIMIT 20;

然后把品牌名挪到末尾并用分隔符

$title = $core . ' - ' . $brand;

去掉模板里自动追加的年份

remove_filter('the_title', 'append_year_suffix');

剩下的就是抽查搜索结果里的展示

curl -s -A 'bingbot' 'https://www.bing.com/search?q=site%3Awww.example.com+nginx' | grep -o '<h2>.*</h2>' | head -3

别只看报错消失,验证要多做一步。搜索结果里核心词落在前二十字内,移动端的截断位置不再切掉主题。

补一句。品牌名放前面只在品牌词有搜索量时才有意义,大多数技术站放末尾更划算。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189