搜索抓取

站内搜索与筛选参数:蜘蛛容易在这里绕圈,怎么收口

站内搜索页和筛选组合会生成大量带参数的 URL,内容又高度相似,蜘蛛很容易把抓取次数耗在这些入口上。本文梳理这类动态入口的识别方式,以及 robots.txt、noindex、canonical、内链收口几种处理思路的取舍与验证方法。

搜索抓取

站内搜索与筛选参数:蜘蛛容易在这里绕圈,怎么收口

站内搜索页和筛选组合,是抓取里很典型的一类“看起来有用、实际很耗”的入口。它们通常即时生成、返回 200、内容随参数变化,但彼此差异很小。蜘蛛一旦走进去,往往会沿着参数组合一路展开。

为什么这类入口容易被反复抓

  • 每个参数组合都是一个独立 URL,蜘蛛没法从地址上判断它有没有价值;
  • 页面返回 200 且正文有内容,不会触发软 404 那类过滤;
  • 结果页里往往又链接着详情页,蜘蛛会顺着继续走,形成“入口到结果页、到详情页、再回结果页”的循环;
  • 排序、每页数量、时间范围这类参数,只是同一批内容换了个顺序。

先分清三类动态入口

站内搜索

关键词由用户输入,理论组合无限。这类页面一般不建议被抓取,也不适合被收录。

筛选与排序

分类、价格区间、品牌、排序方式。其中一部分组合确实对应真实搜索需求,例如“某品类加某品牌”,可以考虑保留少量内容足够的固定组合,其余收口。

日历与时间参数

按年月日翻档的页面容易产生大量空白结果,需要限制可抓范围,或只保留确实有内容的月份。

常见的收口方式与取舍

  • robots.txt 屏蔽参数路径:见效快,但被屏蔽的 URL 无法被抓取,页面上的 noindex 也就读不到。如果这个地址已经被外链指向,仍可能出现,只是缺少描述。
  • 页面加 noindex:适合希望“可抓但不想收录”的搜索页。要注意 noindex 得能被读到,页面就不能同时被 robots 屏蔽。
  • canonical 指向主列表页:适合筛选结果与主列表内容高度重合的情况,有助于合并信号,但不能替代内容质量判断。
  • 减少内链入口:很多参数页是被站内链接“喂”出来的。把筛选链接改成点击后才加载,或只在有限场景出现,往往比事后补救更省事。
  • 分页单独处理:正常的列表分页是抓取路径的一部分,不宜一刀切屏蔽,真正要限制的是分页上叠加的参数组合。
robots.txt 挡的是抓取,不是收录。想控制收录,通常还是要让页面能被抓到,再给出 noindex 或规范链接。

怎么验证收口有没有效果

  • 看抓取日志里带参数 URL 的请求占比,收口前后做对比;
  • 用站内搜索或页面查询,检查还有多少结果页被收录;
  • 检查 Sitemap 是否混进了带参数的地址;
  • 观察主列表页与深层详情页的抓取频次有没有变化。

收口的目标不是把动态页面全部封掉,而是让蜘蛛把有限的抓取次数花在有差异的内容上。哪些组合值得留、哪些只是换个顺序,需要结合站内真实搜索需求和日志数据判断;调整之后也要留一段时间观察,别指望一次改动就立刻见效。