先把当时的情况摆出来。运营给每篇标题前加了火焰 emoji 想提高点击。百度结果里显示成方块,后半段标题被截掉,点击率反而从 3% 掉到 1.6%。试过换成星号符号,同样被截断。

真正麻烦的地方在于,几个原因的现象几乎一样。emoji 占四个字节,百度按字节截断时标题提前触顶。另一种情况是部分终端字体缺失,把 emoji 渲染成方块或问号。

还有一种情况,SEO 插件的标题长度按字符算,看起来没超实际已经超了。另外,符号和站点内容风格不搭,用户对标题的信任度下降。

量一下标题的真实字节数

curl -s https://www.example.com/post/1/ | grep -o '<title>[^<]*</title>' | wc -c

去掉标题里的非 ASCII 符号

wp db query "UPDATE wp_posts SET post_title=REGEXP_REPLACE(post_title,'[^[:alnum:][:space:][:punct:]\u4e00-\u9fa5]','') WHERE post_status='publish';"

复验百度抓取的标题

curl -s -H 'User-Agent: Baiduspider' https://www.example.com/post/1/ | grep -o '<title>[^<]*</title>'

末了对比改前改后的点击率

https://search.google.com/search-console/performance

恢复的判定其实很直接。标题去掉 emoji 后完整显示到句末,字节数回到 60 以内,两周内点击率回到 3% 以上。

这里还有个坑。符号带来的注意力很短暂,标题里放具体数字或结论比放表情更稳,也不会踩截断的坑。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189