先看现象。换主题后正文容器从 article-content 改成 entry-wrapper,摘要提取规则还按旧类名匹配,搜索结果里的摘要变成一排导航文字和版权声明,正文一个字都没抽到。
这类报错背后常见的原因有几处,逐个排除就行。摘要提取依赖旧的类名。另一种情况是新模板把导航放进了正文容器。
还有一种情况,页面缺少 meta description 只能自动抽取。
另外,正文首段前面插了一条广告位。
上来先看搜索结果里的摘要文本
curl -s 'https://www.bing.com/search?q=site%3Awww.example.com' | grep -o '<p class="b_lineclamp[^>]*>.*</p>' | head -3
然后让正文容器只包正文
<div class="entry-wrapper"><article>正文</article></div>
接着把导航移出正文容器
<header class="site-header">导航</header>
给重点文章补描述
<meta name="description" content="换模板后正文容器变更的排查步骤">
手上没有现成的复现脚本,就照着线上请求手工拼了一个。
恢复的判定其实很直接。摘要抽到正文首段,导航和版权文字不再出现在结果里。
补一句。模板改版后要重新核对摘要提取路径,类名和 DOM 层级都可能是隐式契约。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
