带筛选参数的列表页要不要放行抓取,排除路径怎么写
带筛选参数的列表页要不要放行抓取,不能一刀切。判断要看两点:这类页面会不会带来大量重复内容,以及它有没有独立价值值得被收录。排除路径怎么写,则受制于抓取协议的一条硬限制——它只按路径前缀匹配,表达不了「排除所有带某个参数的地址」。
先分清三类会重复出现的列表页
第一类是站内搜索结果页。每个关键词都生成一个结果页,内容高度重叠且没有稳定价值,通常希望挡掉。第二类是自定义字段筛选出来的列表页——按颜色、地区、规格等字段组合出的地址,字段一多,组合爆炸,容易出现近乎相同的页面。第三类是伪静态之后变成规整路径的分面地址,比如某分类下按属性翻页后的目录。
三类里,前两类地址通常带查询参数,第三类是规整路径,可控性完全不同。这决定了它们能不能用「前缀排除」表达。
按前缀排除能表达什么、不能表达什么
抓取排除协议只认 User-agent 与 Disallow,且匹配按请求路径前缀进行,通配和正则都不被支持。所以能精确表达的只有「以某段路径开头的都排除」:写成 /list/ 就能挡掉所有以它开头的目录,规则清晰。不能表达的恰恰是筛选页最常见的需求——「带 ?filter=color 的挡、不带 ?filter=page 的放行」,因为参数出现在路径之后的问号段,前缀规则够不着它。
这就是诊断结论:参数型地址的精细排除,靠这份文件本身做不到。想挡参数页,得换思路,而不是硬写正则(写了也只会被当成字面量前缀)。
哪些页面挡了反而伤收录
不是所有重复都该挡。分面导航里,「某分类 + 排序」这种组合是内容组织方式,全挡可能把正常的分类入口一起关在外面。真正该优先处理的是站内搜索页这类明确无独立价值的地址,以及会无限增长的参数组合。判断标准是:这个页面是不是用户会主动访问的稳定入口——是就放行,纯粹是参数排列组合出来的就考虑挡。
站内两处配置怎么分工
站内靠两处配合解决。「一处是 Robots.txt 配置」把能用前缀表达的路径规则写清楚,比如把站内搜索结果页统一放在一个可识别的目录前缀下再整段排除。另一处是伪静态规则:把自定义字段筛选生成的地址从「长串查询参数」伪静态成「规整路径 + 层级」,筛选页从「前缀够不着」变成「前缀能表达」。内容模型的自定义字段决定了筛选页有多少种组合,字段设计时给常用筛选项定下稳定的路径形态,抓取排除才写得准。两处一起动,比只在 robots 里堆规则更有效。
需要提醒的是,挡抓取不等于不产生重复内容——页面还在、还能被站内链接指向、还可能被用户分享。真正的重复内容治理要看规范化的地址与站内链接结构,robots 只是其中一环。
常见问题
问:能只挡带某个筛选参数的地址吗? 答:靠抓取排除文件不行,它只按路径前缀匹配,参数在问号之后够不着。要么把该筛选伪静态成规整路径再按前缀处理,要么在服务端用别的机制。
问:站内搜索页要不要挡? 答:通常建议挡,它重复度高、独立价值低。做法是让搜索结果统一走一个可识别的路径前缀,再整段排除。
问:伪静态之后一定好排除吗? 答:可控性更好,前提是路径形态稳定、层级清晰。若伪静态规则本身让同类页面散落在多种前缀下,排除反而更难写,先统一路径形态再排除。