问题出现得很突然,日志倒是留得挺全。站点没有输出 meta description,模板顶部有一条 cookie 同意文案,固定在正文前面。搜索结果摘要变成了「我们使用 Cookie 改善体验」,3000 多条页面全是这句。

刚开始盯着「正文前面还有 200 字免责声明,进一步稀释」,折腾了半个多小时,排掉了。

把日志和配置对完,能解释这个现象的基本就这几处。缺少 description 时抓取器按 DOM 顺序抽第一段文字。还有一种是cookie 提示渲染在正文容器内部。

少数情况下是移动版首屏是引导下载条,抓的是另一段。

第一件事是确认页面有没有 description

curl -s https://www.example.com/p/1 | grep -i 'name="description"'

接着看 cookie 条是否在正文容器里

curl -s https://www.example.com/p/1 | grep -c 'cookie-consent'

随后列出没有手写摘要的文章

mysql -e "SELECT ID FROM posts WHERE post_excerpt='';" -N | head

等前面都确认过,再用站长工具看摘要实际抽到哪段

https://www.bing.com/webmasters/urlinspection

改完先别撤,确认这几项。搜索结果摘要显示文章首段而不是 cookie 提示,摘要与正文的相关性肉眼可辨。

补一句。摘要不写就交给机器抽,机器只看 DOM 顺序,模板里的浮层最容易中招。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189