不是所有页面都需要出现在搜索结果里。站内搜索结果页、购物车、用户中心、打印页、分享页这类“功能型页面”,本质上是给已经进入网站的人用的工具,而不是用来被人搜到的内容。它们的收录取舍如果处理得随意,常见的结果是:索引里堆了一批内容稀薄的 URL,而真正想被收录的页面反而排队更久。
功能型页面的共同特征
- 内容由参数或用户状态决定,同一个模板能生成成百上千个 URL;
- 页面主体内容少,大量是导航、筛选、推荐位等样板文本;
- 对未登录用户或爬虫来说,展示的内容和真实用户看到的不一致;
- 一旦被外部链接或站内链接指向,就有了被发现和被索引的路径。
站内搜索结果页最容易失控
站内搜索通常是 GET 参数,蜘蛛抓到一次搜索页,就可能顺着页面里的筛选链接、相关搜索、分页链接继续展开,生成大量组合 URL。这些页面内容随查询变化、彼此高度相似,既消耗抓取配额,也容易在索引里形成一批低价值条目。
常见处理是让搜索结果 URL 不允许抓取,或者统一加 noindex。但这两件事并不通用,顺序弄错会白做。
屏蔽抓取和禁止索引不是一回事
robots.txt 里的 Disallow 只阻止蜘蛛访问,不负责把已经索引的 URL 拿掉。如果一个搜索页已经被收录,你再在 robots.txt 里屏蔽它,蜘蛛就再也读不到页面上的 noindex,索引里的旧版本可能长期留着。反过来,如果某个路径从未被抓取、也确定没有任何收录价值,直接用 robots.txt 屏蔽通常更省资源。
判断顺序大致是:已被索引的 → 允许抓取 + noindex;未被索引且无价值的 → 直接屏蔽抓取,减少无效访问。
用户中心、购物车和登录后页面
这类页面通常依赖登录态。蜘蛛访问时要么被重定向到登录页,要么拿到一个空的内容容器。被重定向到登录页,会造成大量 URL 指向同一个地址,形成重复或空结果页;拿到空壳则可能被当成低质页面处理。对这类路径,比较稳妥的做法是整体不允许抓取,同时不要把它们放进站点地图或站内链接里。
打印页、分享页和带跟踪参数的地址
打印页、旧版 AMP、分享短链、带 utm 参数的地址,往往和主页面内容一致。处理原则是收敛到一个规范 URL:能改结构的用 301 指向主版本;不方便改的用 canonical 标注,并且避免站内链接大量指向这些变体。链接是它们被持续发现的主要渠道,切断链接比事后打补丁更有效。
什么情况下功能页值得进索引
如果站内搜索本身就是用户查询的核心入口,而且搜索词相对稳定、结果有长期价值,比如按城市或品类组织的列表,可以考虑把它改造成固定路径的聚合页:独立标题、编辑过的简介、稳定不变的 URL,再让它参与索引。这时的页面已经不是“功能页”,而是一份被整理过的内容页。是否值得投入,取决于这个聚合维度有没有人真的会搜。
处理前的自查清单
- 这些 URL 是自己被索引的,还是因为内链、站点地图、外链才被发现?先断掉不必要的发现路径。
- 先看索引报告确认当前状态,再决定用屏蔽抓取还是 noindex。
- 检查 robots.txt 是否误伤了需要靠 noindex 生效的页面。
- 确认参数页被哪些站内链接指向,链接往往是最主要的传播来源。
- 处理之后继续观察一段时间,索引的移除和清理都有延迟。
功能型页面的处理目标不是“全都不收录”,而是把抓取和索引资源尽量留给真正有内容的页面。