站内搜索结果页、标签聚合页这类由程序拼出来的列表,在收录上经常被两边拉扯:一边担心放开之后带来大量重复和低价值 URL,一边又怕全部屏蔽会丢掉一部分真实有用的内容入口。先不用急着给全站下统一指令,把它们拆成几类分别看,判断会清晰很多。
先分清页面类型,别混在一起处理
同样是列表,成因不同,处理方式也不同。
- 站内搜索结果页:由用户查询词生成,URL 往往带 q 或 keyword 参数,组合接近无限。
- 标签、分类、专题聚合页:由编辑或规则维护,数量有限,通常有明确的主题边界。
- 筛选与排序页:由颜色、价格、排序方式等参数拼接而成,容易批量生成近似列表。
第一类和第三类大多属于组合爆炸型,第二类更接近正常内容页。混在一起统一处理,很容易一刀切错。
判断能不能收录,先看这几个信号
- 内容是否稳定:同一 URL 每次打开是否给出基本一致的列表。会随库存、时间大幅变动的页面,抓取到的往往只是一个快照。
- 是否有独立价值:除了标题和链接列表,页面上是否还有介绍、说明、排序依据等可读内容。
- 与主内容的重复度:聚合页里的条目是否在别的页面都能找到,而且没有额外信息。
- 数量是否可控:可用组合是几十个还是几十万个。前者可以逐个评估,后者更适合先收敛入口。
一个简单的判断:如果这个页面对用户是有用的中转,对搜索引擎却只是另一份同样的链接列表,那它多半不需要单独占据一个索引位置。
常见的处理选项与各自代价
确认页面类型之后,再选手段。
- 放开收录:适合数量有限、有编辑维护、内容有增量的聚合页。放开后仍要观察它们是否挤占了更主要页面的抓取。
- 用 noindex 标记:适合站内搜索结果页、纯筛选页。注意 noindex 需要页面能被抓取到,若同时用 robots.txt 屏蔽,指令就传达不出去。
- 用 canonical 指向主列表:适合同一组内容的多种排序方式,让变体收敛到一个规范版本。指向要真实对应,不要为了收敛而乱指。
- 从入口收敛:不生成无意义组合、不在导航大量外露,让这类 URL 自然少被发现。这比事后补指令更省事,也更彻底。
放开之后怎么观察
处理完不等于结束,后续观察往往比一次性决定更重要。
- 看抓取落点:日志里这类 URL 的抓取频次是否明显上升,是否影响到核心目录。
- 看索引状态:抽样查一批 URL,确认它们是被收录、被判为重复,还是长期停在已发现未抓取。
- 做小样本对照:取同类型的两组页面,一组放开、一组收敛,隔一段时间对比索引表现,再决定是否推广到全站。
几个容易踩的坑
- 把 noindex 和 robots.txt 一起用,结果页面被挡住,指令也没生效。
- 只给列表第一页放开、后续分页全部屏蔽,却没有考虑用户和爬虫的实际翻页路径。
- 站内搜索结果页偶然带来过一些访问,就顺手全站放开,忽略了长尾组合会持续增长。
这类页面的取舍没有统一答案,关键是先按类型分组,再用小范围对照验证,最后才决定全站策略。过程中不必追求一步到位,能说清每一类页面为什么这样处理,就已经避免了大部分反复。