UGC 页面为什么会越收越多
评论、问答、论坛帖、用户主页、标签聚合,这些页面通常由系统自动生成,数量随用户活跃度线性增长。它们有真实内容,也有大量空壳:一个只发过一句“顶”的用户主页,一个只有标题没有回复的帖子,一个把同一条内容换成不同排序的标签页。
搜索引擎不会自动区分这些。只要 URL 可抓取、返回 200、页面上有文字,就有被收录的可能。问题在于,收录本身不带来流量,反而会占用抓取资源,还可能让真正有价值的页面在站内竞争中吃亏。
先给 UGC 页面分层
不要用“全部收录”或“全部屏蔽”这种一刀切的做法。实际操作中,按页面是否有独立信息量分成三层更稳妥。
第一层:有独立价值的页面
- 长期积累的问答帖、教程帖、讨论帖,正文和回复都有实质内容
- 用户主页里有成体系的原创内容,而不是只有一条转发
- 评论数量多、讨论质量高的内容页
这类页面可以正常放开抓取和收录。它们往往能承接长尾搜索,也是社区类站点流量的一部分来源。
第二层:聚合与排序页面
- 标签页、话题页、作者归档页、按时间或热度排序的列表
- 同一批内容因为排序参数不同生成的多个 URL
这类页面不是完全没有用,但重复度高、更新频繁。常见的做法是保留主入口,对排序、页码、筛选组合做参数收敛,或统一 canonical 到无参数的版本。
第三层:基本没有内容承载的页面
- 空白用户主页、注册但未发内容的账号
- 零回复的短帖、只有一行字的提问
- 搜索结果页、站内跳转页、登录后可见的临时页
这一层通常不值得进索引。可以在服务端判断内容量,低于阈值时返回 noindex,或者用 robots.txt 屏蔽对应的 URL 规则。
判断一个 UGC 页该不该收录,看几个信号
- 正文体量:去掉导航、评论框、相关推荐后,页面主体还剩多少可读文字。低于几百字的页面通常价值有限。
- 唯一性:把页面正文和其他 URL 对比,看是否只是同一内容的另一种排列。
- 是否有人搜索:在站内搜索日志或外部关键词工具里,这类页面有没有被搜到过。完全没有搜索需求的类型,收录了也难有展现。
- 更新频率:高频变动但内容不增量的页面,抓取成本高而收益低。
- 是否可稳定访问:需要登录、依赖会话、返回随机结果的页面,抓取本身就不可靠。
常见处理手段与容易踩的坑
- noindex 要放在服务端:如果标签由前端渲染,爬虫拿到的 HTML 里可能没有这个指令,等于没写。
- robots.txt 屏蔽要判断清楚:屏蔽抓取后页面不会被抓,但如果之前已被收录,可能长期停留在索引里,且无法通过 noindex 移除。
- canonical 别乱指:把有价值的问答帖 canonical 到列表页,会直接把内容归属让出去。
- 内容阈值要留余量:阈值设得过高,会误伤刚发布但后续会成长的页面。
- 分页与“加载更多”:异步加载的后续内容如果爬虫拿不到,收录的只是第一屏。
收口后的复查顺序
调整完策略不要立刻看结果,按下面的顺序核对更省事。
- 先确认屏蔽规则是否真的生效:用抓取工具模拟,看返回的状态码和页面里的指令。
- 再看索引变化:已收录的页面不会马上消失,通常要经历重新抓取、重新判断的过程。
- 对比屏蔽前后的抓取日志:重点页面的抓取次数是否上升,服务器压力是否变化。
- 观察流量结构:被屏蔽类型带来的搜索流量是否明显下降。如果下降明显,说明屏蔽范围过大。
UGC 的收录取舍没有一次到位的答案。社区在成长,页面价值也在变化,比较实际的做法是定期回看一次分层标准,把新出现的页面类型补进去,而不是设完规则就不再管。