有些页面能正常抓取、返回 200、也排除了软 404,但就是长期不进索引;还有一些页面进了索引,搜索结果里的标题和摘要却是导航文字或者推荐位的营销语。这两类现象背后常常是同一个原因:页面的正文占比太低,主体内容被模板、导航、广告和推荐模块包围,抓取系统很难判断这一页到底在讲什么。
正文占比为什么会影响收录判断
抓取系统拿到的是一份 HTML,它需要从里面切出主体内容,用来判断页面主题、评估内容是否足够,再决定是否值得放进索引。当模板代码远多于正文代码时,切分就容易失败:
- 正文段落被夹在多层推荐位之间,识别出来的主体可能只剩一两句;
- 导航、面包屑、相关阅读的文字量超过正文,索引里保存的摘要被这些文字占据;
- 多个页面共享同样的模板文案,页面之间看起来高度相似,容易被当作重复或低价值页面处理。
需要说明的是,正文占比低不等于一定不收录,它更像一个减分项,和其他信号一起影响最终判断。
容易被模板稀释的几种页面
- 正文很短的详情页:内容只有两三行参数,剩下空间全被规格表、推荐商品、评论区占满。
- 堆了多个模块的资讯页:顶部横幅、侧栏热榜、文末标签云加起来字数超过正文。
- 靠前端拼接的页面:正文、推荐、评论都由脚本在客户端填充,抓取时拿到的初始 HTML 几乎是空壳。
怎么判断自己是不是这个问题
- 用抓取工具或浏览器查看源代码拉一次页面,屏蔽样式和脚本,看纯文本里正文占多少比例。
- 对照索引中保存的标题与摘要,看它取的是不是正文第一段。
- 对比同模板的其他页面,如果同一位置被识别的“主体”各不相同且都不是正文,基本可以确认是模板造成的。
处理顺序:先让正文被看见
- 把正文放在 DOM 前部:不要为了视觉效果把正文包在多层层级的最深处。
- 精简模板噪声:热榜、推荐位、标签云能收敛就收敛;非必要模块可以考虑异步加载,但正文不要依赖脚本渲染。
- 用语义标签承载主体:main、article、层级清晰的 h 标签,比一堆无语义的 div 更容易被识别。
- 补足主体内容:如果正文本身只有两句话,那是内容问题,调结构帮不上忙,先补内容再谈收录。
- 观察反馈:调整后等重新抓取,看索引里保存的摘要是否变成正文内容,这个信号比“有没有收录”更细致。
两个容易走偏的做法
- 为了显得正文多,把导航文字复制进正文,反而制造了站内重复内容。
- 把模板模块用 display:none 隐藏却保留在 HTML 里,文字仍会被读到,起不到稀释作用,还可能被当作隐藏内容处理。
正文占比不是一条硬性规则,也没有公开的分值门槛。它更像是抓取系统理解页面时的一道基础条件:能切出主体,后面的判断才有依据。
做完这些调整,也仍然需要等待重新抓取和重新评估。与其只盯着收录数量,不如先确认索引里保存的那一版摘要,是不是你希望用户看到的正文。