这类问题我又碰上了一次。文章里的 H2 全部写成长句,比如「为什么 nginx 反向代理之后静态资源全部返回 404」。搜索结果摘要直接把整句 H2 抽走,正文第一段反而没出现,点击率掉了一半。

第一反应是「正文首段没有结论性内容 摘要无处可抽」,验证下来不成立。

排查方向其实有限,先把可能性排一排。摘要算法优先抽取带标题语义的完整句子;H2 过长 被当成正文段落处理;meta description 缺失 完全依赖自动抽取。

先看搜索结果里的摘要来源

curl -s 'https://www.bing.com/search?q=site%3Awww.example.com+nginx+404' | grep -o '<p class="b_lineclamp[^>]*>.*</p>' | head -2

接着把 H2 压到十五字以内

<h2>静态资源 404 的原因</h2>

给文章补一段描述

<meta name="description" content="nginx 反向代理后静态资源 404 的三个原因和验证命令">

批量找出缺失描述的页面

SELECT ID FROM wp_posts WHERE post_status='publish' AND ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key='_yoast_wpseo_metadesc' AND meta_value<>'');

恢复的判定其实很直接。搜索结果摘要回到正文首段或描述,H2 在页面里保持短句。

H2 是结构标记不是句子,写长了会被摘要器当成正文,标题和正文的边界就没了。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189