现场是这样的。新版模板把正文放进了带 role=main 的容器,但导航和侧栏在 DOM 里排在正文前面。改版后搜索结果里的描述统一变成了「首页 产品 关于 联系」这类菜单文字,点击率一周掉了三成。

中间走过弯路,把「description 被移除 摘要完全交给搜索引擎自行抽取」当成主因,改完现象没变。

原因不止一个,得分开看。正文容器缺少明确的语义标记 抽取逻辑先命中了导航块;模板把大量链接堆在正文之前 文字密度计算被带偏;正文首段被图片和按钮占据 没有可用的文本开头。

上来先看页面正文之前的文本占比

curl -s https://www.example.com/post/123 | sed 's/<[^>]*>//g' | head -c 300

给正文容器补上语义标签

<article><h1>标题</h1><p>首段正文</p></article>

随后把导航与侧栏放到正文之后或语义化

<nav>...</nav><main><article>...</article></main><aside>...</aside>

恢复手写的 description 并写入首段

<meta name="description" content="<?php echo esc_attr($excerpt); ?>">

别只看报错消失,验证要多做一步。调整 DOM 顺序并补回描述后,搜索结果的摘要重新取自正文首段,点击率在两周内回到改版前水平。

提醒一点。模板结构改动会直接影响摘要抽取,正文必须语义清晰且排在导航之前,否则整站的摘要都会跑偏。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189