筛选、排序、标签、站内搜索,这些功能对用户有用,但它们在幕后会不断生成新 URL。一个列表页加上颜色、价格、排序几种参数,组合起来就是几十上百个地址。这些 URL 在技术上都能被抓取,但搜索蜘蛛每次来访的额度有限,放多少出去、怎么放,是站点自己可以决定的。
自动生成的 URL 主要来自哪里
- 筛选与排序参数,比如价格区间、品牌、排序方式叠加后产生的组合地址。
- 标签页与话题聚合页,通常是内容系统自动根据关键词生成的列表。
- 站内搜索结果页,用户搜什么就生成什么,URL 数量几乎不可控。
- 分页与日历归档,翻页越深,URL 越多。
这几类页面的共同点是:不需要人工编辑,系统自己就能产出大量地址。也正因为如此,它们最容易在不经意间把站点的 URL 总量抬高一个量级。
先分类,再决定放不放
把所有自动生成的页面一刀切,要么全开要么全关,通常都不合适。更实用的做法是先分三类:
- 有独立价值的聚合页:比如某个主标签、某个核心品类的列表,本身有稳定的内容量,也有用户会直接搜索这类词。这类可以保留入口。
- 内容高度重复的组合页:多个参数叠加后,展示的商品或文章和主列表基本一致,只是顺序不同。这类多数情况下没有单独维护的必要。
- 组合爆炸且无意义的页面:站内搜索结果、深层筛选组合、空结果页。这类页面数量可以无限增长,内容是动态拼出来的。
判断标准可以简单一些:这个页面有没有可能被真实用户主动搜索到?内容是不是和已有页面大量重合?数量是否可控?三个问题里有两个答不上来,就倾向于不放。
组合爆炸为什么会拖慢发现
搜索蜘蛛每天能抓的页面数是有限的。当站内存在成千上万个参数组合地址,并且它们都能通过内链或 Sitemap 被找到时,这些地址会先进入待抓队列,占掉一部分来访次数。结果是:真正需要更新的新页面,被发现和被回访的时间被推迟。
被发现的 URL 不一定都会被完整抓取,但每一个进入队列的低价值地址,都在和真正重要的页面争同一个机会。
发现入口与抓取控制是两件事
不要让它们出现在发现路径里
- 内链是最直接的开关:筛选结果不要用可抓取的 a 标签直出,或者只在用户交互后才生成链接。
- Sitemap 里不要混入参数 URL:Sitemap 是主动提交的发现入口,把组合地址写进去,等于主动请蜘蛛来抓。
- robots.txt 的 Disallow 只拦抓取,不拦发现:被屏蔽的 URL 仍然可能因为外链或历史记录被知道,别把它当成删除工具。
- noindex 需要页面能被抓取才生效:如果同时用 robots 屏蔽了抓取,noindex 标签蜘蛛根本看不到。
需要保留的聚合页怎么做
保留下来的少数聚合页,最好有固定的 URL、稳定的标题和描述,并且从主列表或导航里有明确入口。它们的价值在于帮助用户和蜘蛛理解站点结构,而不是单纯堆数量。
已经放出去的低价值 URL 怎么收敛
如果参数页已经被大量抓取,处理顺序建议是:先让页面可抓但加 noindex,等蜘蛛重新访问并读到标签;确认大部分已生效后,再考虑用 robots 限制抓取或对确实无内容的地址返回 410。分阶段做,比一次性全屏蔽更容易观察效果。
- 先梳理哪些参数组合还在被频繁抓取,按抓取量排序。
- 保留有流量的少数聚合页,其余标记为不索引。
- 观察一到两个抓取周期,看服务器日志里的变化。
核对方式
抽一段时间的服务器日志,看看带参数的 URL 占比多少,哪些参数被抓得最多。同时检查 Sitemap 文件里有没有混进不该出现的地址。这两件事做一次,通常就能看出发现路径上有没有漏水的地方。
聚合页的真正作用是组织内容,不是制造 URL。在生成规则里提前控制组合数量,比事后清理要省力得多。