列表页上的筛选、排序、分页按钮,对用户来说是几秒钟的操作,对搜索引擎来说却可能是成百上千个新地址。参数一多,蜘蛛在同一个内容集合里打转,真正需要被抓的详情页反而排在了后面。
参数 URL 是怎么被制造出来的
常见的有几类:
- 筛选参数:价格区间、品牌、颜色、地区等,每多一个维度,组合数量就会相乘。
- 排序参数:按销量、按价格、按时间,同一批商品的顺序不同,URL 就不同。
- 分页参数:页码本身通常可以保留,但和筛选叠加后会产生大量长尾组合。
- 跟踪与会话参数:来源标记、推荐位 ID、临时会话串,对页面内容没有任何影响。
这些地址返回的页面往往只有部分内容不同,标题、正文和大部分列表项高度重合。
先判断:哪些参数页值得保留
不是所有参数页都该被处理掉。判断标准可以简单一些:这个地址是否有真实的搜索需求,是否有独立于其他页面的内容。带明确主题的筛选页(比如“某品牌在某城市”)可能本身就有用户主动搜索,保留并给它稳定的标题是合理的;纯排序、纯跟踪参数则基本没有独立价值。
处理参数 URL 的目标不是把地址数量压到最少,而是让蜘蛛把时间花在内容不同的页面上。
可以直接用的几种做法
canonical 指向规范版本
给参数页指定一个规范地址,让蜘蛛知道哪个版本是“主”的。注意 canonical 要自洽:规范页自己也要指向自己,也不要在多个版本之间互相指向,形成环。
robots.txt 与 noindex 的分工
如果某个参数组合不需要被抓,可以在 robots.txt 中屏蔽对应路径模式。但要记住两者的区别:被 robots.txt 屏蔽的 URL,蜘蛛无法读取页面上的 noindex 指令。想用 noindex 让页面退出索引,就不能同时用 robots.txt 挡住它,否则指令永远送不到。
内链只指向规范版本
页面上生成的链接,尽量只输出规范形态。如果模板在每个卡片上都挂一串带参数的外链,等于主动把蜘蛛往重复地址上引。
Sitemap 里只放规范 URL
Sitemap 是清单,不是原料堆。把参数组合全部塞进去,等于给蜘蛛列了一份包含大量重复内容的抓取任务。清单里出现的地址,最好是真正希望被了解的那些。
用日志确认效果
调整之后,从访问日志里筛出蜘蛛请求,看参数 URL 的抓取次数有没有下降、规范地址的抓取有没有上升。如果参数 URL 仍然占据大部分抓取请求,说明还有链接入口在持续暴露它们,需要回到模板层面查找。
别把路堵死
分页和必要的筛选入口,是用户和蜘蛛走到深层内容的通道。一刀切地屏蔽所有带问号的地址,可能让本来能被发现的页面失去入口。留出主路径,收掉重复分支,通常比全面封禁更稳妥。