现场是这样的。新版模板把正文放进了带 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 顺序并补回描述后,搜索结果的摘要重新取自正文首段,点击率在两周内回到改版前水平。
提醒一点。模板结构改动会直接影响摘要抽取,正文必须语义清晰且排在导航之前,否则整站的摘要都会跑偏。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
