用site语法查询自己网站时,很多站长发现文章标题下方的描述并不是文章里的句子,甚至可能是导航文字或一段莫名的话。这种情况不是网站出了问题,而是百度摘要的生成机制与站长预期的不一样。
百度在展示搜索结果时,并不是必须采用页面里写好的meta description。百度搜索引擎会根据自己的算法,从页面标题、description标签以及正文内容中综合分析,选取一段它认为最能代表页面主题的文字。如果页面的description标签写得过短、过长、关键词堆砌,或者与正文无关,百度就会放弃它,改为从正文里摘录一段。这时描述显示的就是正文中的某个句子,但往往不是文章的开头,而是包含搜索词的那一句。站长如果只看site结果而没带具体关键词,百度可能随机抽取页面权重较高的文本,于是看起来就与文章正文不太对得上。
另一个常见原因是很多内容管理系统在发布文章时,会自动生成一个固定的description,比如“这是一篇关于某某的文章”或者直接截取首段前几十个字符。这种描述质量很低,缺乏针对性,百度很容易识别出来并弃用。如果网站后台没有单独设置每篇文章的description,所有文章共用一个模板,那百度提取摘要时就会去正文里找别的文字。更麻烦的是,有些模板把description写死在页头,内容是不变的,那样所有文章页都显示同一段描述,自然不是当前文章的内容。
网站改版或页面更新后,百度蜘蛛需要重新抓取才能获取最新信息。site查询显示的其实是百度快照里保存的旧版本。如果改版后文章页的标题和描述都变了,但快照未更新,搜索结果里就会出现旧标题、旧描述,甚至旧页面上的其他文字。这种情况在百度收录速度较慢时尤其明显。有些站长频繁修改文章标题或正文,但百度蜘蛛没有及时再次抓取,描述就可能停留在上次抓取时的状态,而那次抓取的内容里恰好包含了其他栏目的链接或随机文字。
移动端的描述展示也与PC端不同。百度在手机端搜索结果中对description有严格的字数限制,通常最多两行,超出部分会被截断。如果原description写了很长的句子,展示时会在中间断开,读起来不完整,甚至让人误以为描述与文章无关。还有,移动端有时会显示网站名称和栏目信息,以“网站名 - 栏目名”的形式出现,此时描述区域可能被站点logo或结构化数据占据,文章摘要就不显示或只显示极短一段。

百度还有一个动态摘要机制。当用户搜索某个具体词时,百度会从页面中找出与该词最相关的句子作为描述,这句话可能出现在文章中间或末尾,而并不是站长本来写好的description。所以同一个页面,搜不同的关键词,展示的摘要往往不同。站长在site查询时没有搜索词,百度只会按默认方式选择摘要,这就出现了标题下方描述“不搭”的情况。实际上,这篇文章在搜索特定长尾词时,描述又可能变得很精准。
从代码层面看,百度蜘蛛对页面抓取也有限制。如果description标签放在很靠后的位置,或者用JavaScript动态写入,百度可能读取不到。有些前端框架使用异步渲染,百度蜘蛛的渲染能力有限,最终抓取到的是HTML源码里的初始内容。如果源码头部没有description字段,百度只能从页面正文里取摘要。另外,如果页面中嵌入了大量超链接,比如文章列表、推荐阅读、相关文章等,百度在无法获取有效描述时,可能抓取这些链接周围的文字作为摘要,导致描述看起来像导航文字。
还有一个容易被忽略的因素:网站遭遇降权或收录异常。当页面被百度判定为低质量或采集内容时,百度可能不展示正常的摘要,而是只显示一小段网址或空描述。这可以看作搜索引擎对页面质量的警示。但多数情况下,正常文章页也会出现描述不显示原文的现象,所以不必过分担心。
为了减少这类问题,站长可以做的不是追求百度一定采用自己的description,而是让页面正文更清晰。把文章核心观点放在前三段,使用简洁的段落结构,关键词自然分布,百度自动提取摘要时就会更倾向于选择正文里的有效内容。同时,可以每篇文章都写一个独特的description,字数控制在六十到八十个字符,完整概述文章价值。即使百度不采用,它也会作为参考依据之一。网站持续稳定更新,百度蜘蛛重新抓取后,摘要通常会逐渐接近文章内容。毕竟,搜索引擎的目标是给用户展示最相关的文字,而不是迎合站长对描述区的控制欲。