站内链接里带上一串参数,用户点进去看到的还是那个页面,但对蜘蛛来说,这是一条全新的 URL。抓取路径一旦被参数分叉,日志里会冒出一大批相似地址,而真正需要更新的内容页反而排到了后面。
参数是怎么长出来的
多数站点的参数并非有意设计,而是随着工具和需求一层层叠加上去的:
- 跟踪参数:utm_source、utm_medium、from、share 等,常用于投放和分享统计。
- 会话与身份参数:sid、phpsessid、token 之类,一旦被内链带上,每个访客都会生成不同地址。
- 列表与筛选参数:排序方式、价格区间、标签组合,组合数量随内容增长而膨胀。
- 技术性参数:缓存版本号、图片尺寸、语言切换,往往对正文毫无影响。
问题在于:这些参数大多不改变页面主要内容,但在 URL 层面它们是彻底不同的地址。
参数如何改变蜘蛛的抓取路径
蜘蛛是按 URL 排队的。带参数的链接被内链引用得越多,被发现得越快,也越容易被反复抓取。结果通常表现在三方面:
- 抓取额度被分摊。同一篇内容被拆成十几条地址,每条都要占用排队和抓取的机会。
- 入口混乱。蜘蛛难以判断哪个版本才是主版本,链接收益也被分散到多个地址上。
- 日志噪音变大。抓取覆盖看起来不少,实际有效页面却没几个,复盘时很难看清真实情况。
处理顺序:先去、再规范、最后屏蔽
一、从源头减少:内链不带跟踪参数
站内导航、列表页、正文里的链接尽量使用干净地址。跟踪参数更适合放在站外投放的落地链接上,或者由脚本在点击时拼接,而不是让它成为站内默认形态。分享链接带 utm 可以接受,但不应被站内其他页面继承。
二、内容相同就做规范化
对确实会保留的带参数地址,用 canonical 指向主版本,让蜘蛛知道该以哪个为准。注意一个常见矛盾:如果主版本地址本身被 robots.txt 屏蔽,蜘蛛不会去抓它,也就读不到页面上的规范信号。屏蔽与规范化不宜同时用在同一组地址上。
三、确实无价值的路径再屏蔽
站内搜索结果页、无意义的筛选组合、日历式翻页,这类地址数量大且内容重复,可以考虑用 robots.txt 屏蔽,或在服务器层面对无意义参数做限制。屏蔽能省下抓取额度,代价是页面上原有的规范提示也不再生效,需要根据实际情况权衡。
怎么验证调整是否有效
- 在服务器日志里按查询串统计,找出出现频次最高的参数地址。
- 在搜索控制台的抓取统计中,观察蜘蛛实际抓到的是带参数版本还是干净版本。
- 随机抽查几十条站内链接,确认导航和正文里没有多余的参数尾巴。
- 调整一段时间后再看日志,比较参数型 URL 在总抓取中的占比变化。
参数本身不是敌人。真正的问题是无意义的参数地址占用了本该留给内容页的抓取机会。先判断哪些参数会改变内容,再决定是去掉、规范化还是屏蔽。
抓取路径是否清晰,很多时候就取决于内链里那串地址有多干净。把参数理顺之后,蜘蛛走的路线会更接近你希望它走的那条。