很多站点在检查索引量时会发现,真正带来流量的详情页没多少,反而是各种带参数的地址占了大头:列表筛选、排序方式、每页条数、站内搜索关键词、来源追踪参数……这些页面本身不是错误,问题在于它们数量近乎无限,内容又高度重复。它们被大量收录后,会稀释站内链接权重,也让日志和索引报告难以判断真实情况。
第一步:先确认被收录的是哪一类参数
不要看到查询字符串就立刻动手屏蔽。先抽样,把参数按用途分类,处理方式完全不同。
- 内容型参数:决定页面展示哪一批内容,例如分类叠加尺码、叠加颜色。这类页面有时确实存在搜索需求。
- 展示型参数:排序方式、每页显示数量、列表或网格视图。同一批内容的排列组合,通常没有独立价值。
- 追踪型参数:投放来源、渠道标识、活动编号。对爬虫和索引而言基本是噪声。
- 会话型参数:用户标识、临时令牌、时间戳。这类地址本来就不该出现在可抓取的 HTML 里。
第二步:判断这个参数页有没有独立价值
核查方式可以很简单:把参数去掉,看剩下的页面内容是否几乎一致。如果只是顺序不同、条目相同,那它更像同一个页面的视图;如果筛选后形成了一批稳定的、有人会主动搜索的主题,可以考虑保留并优化,而不是一律封杀。
一个实用判断:如果这个地址没有站内入口、也不该出现在 sitemap 里,那它大概率不该被收录。
第三步:按优先级处理,别一次全上
- 先处理会话型参数。让程序在模板输出链接时就不要拼上这些值,从源头减少可抓取入口。
- 追踪参数统一用 canonical 指向无参数版本,站内链接里同步去掉。
- 展示型参数用 canonical 或者加 noindex,二选一,不要两种信号混用在同一批 URL 上。
- 筛选组合过多的站点,可以限制可被索引的参数组合数量,超出部分统一 noindex。
- robots.txt 屏蔽是最后手段。它只阻止抓取,不阻止已收录的地址继续留在索引里,而且被屏蔽后 canonical 也无法被发现。
抓取屏蔽和索引移除是两件事。用 Disallow 挡住参数目录,往往会让已收录的地址长期停在索引中,因为没有爬虫去读页面上的 canonical 和 noindex。
第四步:站内搜索页单独对待
站内搜索结果页通常是重复内容的重灾区:关键词无穷多,内容又由站内已有页面拼成。常见做法是允许用户使用,但给结果页加 noindex,同时不要把它们放进 sitemap,也不要在页面里提供大量指向其它搜索词的内链。如果确实有一部分搜索词有稳定需求,可以挑选少量做成固定的专题页。
第五步:收口之后的观察
调整生效需要时间,观察时建议分三个口径看:抓取日志里参数 URL 的请求占比、索引报告里参数 URL 的数量变化、以及无参数主页面获得的抓取次数。只要主页面抓取变多、参数 URL 请求变少,方向就是对的。不要只盯着索引总数下降就判断出问题,先确认减少的是不是那些本来就该被排除的地址。