搜索抓取

站内搜索页与标签聚合页:蜘蛛在这类入口上会走多远

站内搜索页和标签聚合页由系统自动生成,入口多、内容变化快,蜘蛛很容易顺着它们一路抓下去。本文讲怎么区分有价值的聚合页与内容单薄的噪音页面,以及用 robots、noindex、canonical、内链和 Sitemap 控制抓取范围,最后从日志里看抓取量到底落在哪类页面上。

搜索抓取

站内搜索页与标签聚合页:蜘蛛在这类入口上会走多远

站内搜索页和标签聚合页有一个共同点:它们不是编辑手动挑出来的页面,而是由用户查询或内容属性自动生成的。蜘蛛顺着内链或 Sitemap 进来后,很容易把这套机制当成一条可以无限延伸的路,一路抓下去。问题不在于这些页面能不能被抓,而在于你希望蜘蛛把有限的抓取次数花在哪里。

为什么蜘蛛容易在这类页面停留

它们的入口通常很多。导航里可能挂着热门标签,文章底部有相关标签,搜索结果页里又有大量指向具体内容的链接。对蜘蛛来说,这是密集的链接区,跟着走不需要额外理由。另一方面,这类页面返回的内容变化快,同一条地址今天和明天的结果可能完全不同,蜘蛛会更频繁地回访。

先分清:有用的聚合页和纯噪音

站内搜索结果页

搜索页的价值在于响应用户查询,而不是给搜索引擎提供一份目录。常见的 /search?q= 形式会随着查询词组合出近乎无限的地址,每一个都返回一份内容单薄的列表,而且往往和分类页、文章页高度重合,没有独立标题,也没有独立介绍。除非搜索结果页本身有稳定的检索价值,比如某些垂直站点固定下来的筛选页,否则一般不需要让蜘蛛深入。

标签聚合页

标签页要分开看。有的标签确实能聚合成一个主题,有稳定的搜索需求,页面也补了导语、说明和足够的条目,那它就是资产。有的标签只挂了两三篇文章,标题只有标签名,内容和其他分类严重重复,那它对用户和蜘蛛都意义不大。判断标准可以简单一点:这个页面如果被用户直接搜到,他会不会觉得有用。

几种常见的收口方式

  • robots.txt 屏蔽:适合完全不想被爬取的路径,比如 /search。注意被屏蔽之后蜘蛛读不到页面上的 noindex,两者不要同时指望。
  • noindex:适合内容单薄但仍希望被访问、被链接的页面。前提是允许抓取,蜘蛛才能读到这个指令。
  • canonical 指向主页面:标签页与分类页大量重合时,指向对应的分类或主聚合页,帮助蜘蛛把权重集中起来。
  • 控制内链数量:不要在每篇文章底部挂几十个标签,也不要把搜索框产生的链接放进可被抓取的正文。
  • 合并标签:把同义、近义标签合并成一个人工维护的聚合页,比任由系统自动生成更可控。

内链和 Sitemap 要配合

如果你决定保留某批标签页,就把它们放进导航或固定区块,并让 Sitemap 里出现的地址和站内实际链接保持一致。反过来,被 noindex 或屏蔽的页面不要塞进 Sitemap,否则等于一边说别抓,一边又主动上报。分页的聚合列表也一样,第一页可以做入口,后面的翻页不必全部上报。

从日志里看结果

调整完之后,隔一段时间翻一下服务器日志,看抓取量在搜索页、标签页、正文页之间的分布。如果搜索路径仍然占了大头,说明还有别的入口在放行,比如某个页脚、某个外链,或者 Sitemap 里残留了旧地址。重点看蜘蛛把时间花在哪类页面上,而不是单日总数的高低。

这类页面本身不是问题,问题是它们太容易变成一条没有终点的路。给它一个明确的边界,蜘蛛才更愿意把次数用在正文页上。