要点
一、分面导航网址先决定要不要被编入索引,再选处理方式。Google 在 2024 年 12 月发布了分面导航专门文档(内容最早是一篇博客文章),说明筛选、排序参数会组合出几乎无限的网址,带来两个问题:过度抓取(爬虫要先抓很多网址才能判断它们没用)和新内容发现变慢。Google 的博客称,分面导航是站长报告过度抓取问题时最常见的来源。文档给出两条路:
- 不需要这些网址出现在搜索结果里:阻止抓取。
- 需要这些网址可能被编入索引:按下一节的做法优化网址,同时接受服务器资源消耗增加、新网址发现可能变慢。
二、不需要被索引时,用 robots.txt 或网址片段阻止抓取。Google 认为抓取筛选结果多数情况下收益很小,建议只开放单个商品页和一个不带筛选的全部商品列表页。文档示例:
user-agent: Googlebot
disallow: /*?*products=
disallow: /*?*color=
disallow: /*?*size=
allow: /*?products=all$
另一种做法是把筛选条件写在 # 片段里(如 items.shtm#products=fish&color=green),Google 搜索一般不在抓取和索引中使用片段,这类筛选对抓取没有影响。
三、需要被索引时,按 Google 的四条做法优化网址:
- 参数分隔符用标准的
&,逗号、分号、方括号不容易被识别为分隔符。 - 筛选条件写在路径里时(如
/products/fish/green/tiny),保持筛选顺序固定,不出现重复筛选。 - 筛选组合没有结果时返回 404。重复筛选、无意义的组合、不存在的分页网址同样返回 404;不要跳转到统一的“未找到”页面,而是在原网址上返回 404。单页应用做不到时按单页应用的最佳做法处理。
- 理解这类网址被抓取就会占用服务器资源,可能拖慢新网址的发现。
四、robots.txt、noindex、canonical、nofollow 各自能管什么。
| 方式 | 能做到 | 做不到 |
|---|---|---|
| robots.txt disallow | 阻止 Google 抓取,节省抓取量 | 不能保证网址不出现在结果里,被链接的网址仍可能以无描述的形式出现 |
| noindex | 让页面不出现在 Google 搜索结果里 | 不节省抓取,Google 仍要请求页面才能看到 noindex |
| rel=“canonical” | 合并重复网址的信号,指向未筛选版本后可能随时间减少非规范版本的抓取 | 是提示不是指令;见效慢,Google 认为长期效果不如 robots.txt 和片段 |
| rel=“nofollow” | 可能减少对筛选页的抓取 | 指向该网址的每一个链接(站内和站外)都要带 nofollow 才有效 |
补充几条 Google 的说明:
- noindex 要生效,页面不能被 robots.txt 屏蔽,否则爬虫看不到 noindex,网址仍可能因外部链接出现在结果中。
- Google 不建议用 robots.txt 做规范化,被屏蔽的网址可能以无内容的形式被编入索引;也不建议在同一网站内用 noindex 选规范页,canonical 才是首选。
- 抓取预算文档明确说不要用 noindex 来管理抓取,Google 会请求页面再丢弃,浪费抓取时间。
- 被 robots.txt 屏蔽的网址在抓取队列里停留的时间更长,解除屏蔽后会被重新抓取;而 404 是不再抓取该网址的强信号。
五、网址参数工具已经不能用。Google 在 2022 年 3 月宣布一个月后弃用 Search Console 的网址参数工具,理由是当时工具里只有约 1% 的参数配置对抓取有用;之后 Google 爬虫自动学习如何处理网址参数,需要更多控制时用 robots.txt 规则(例如在 allow 规则里指定参数顺序),语言变体用 hreflang。
六、抓取预算是 Google 能抓、也愿意抓的网址集合。它由两部分决定:抓取容量上限(根据服务器响应速度、5xx 和 429 错误上下浮动)和抓取需求(网站规模、更新频率、页面质量、受欢迎程度、内容是否过时)。抓取预算按主机名计算,www.example.com 和 code.example.com 各有各的预算。Google 说网站最能主动控制的是“感知到的网址库存”:重复网址、不想被抓取的网址越多,浪费的抓取时间越多。Google 列出的做法包括合并重复内容、用 robots.txt 屏蔽不需要抓取的网址(例如同一页面的不同排序版本)、对永久删除的页面返回 404 或 410、消除软 404、保持 sitemap 更新并使用 <lastmod>、避免长跳转链、支持 304 缓存。
七、多数网站不需要专门关心抓取预算。Google 的抓取预算指南主要面向三类网站:
- 大型网站,100 万以上不重复页面,内容约每周变化一次。
- 中型以上网站,1 万以上不重复页面,内容每天快速变化。
- Search Console 里有很大比例网址处于“已发现 - 尚未编入索引”状态的网站。
Google 说明这些数字是帮助归类的粗略估计,不是精确门槛。页面不多、或者新页面发布当天就被抓取的网站,保持 sitemap 更新、定期查看网页索引报告就够了。分面导航文档本身没有给出站点规模门槛,筛选参数组合出的网址数量往往远多于商品数,小站同样可能出现过度抓取。
容易误解的地方
- 用 robots.txt 屏蔽分面网址就等于它们不会出现在搜索结果里。屏蔽只阻止抓取,有外部链接时网址仍可能出现在结果中。
- 给分面网址加 noindex 能节省抓取预算。Google 仍会请求这些页面。
- robots.txt 和 noindex 同时用在同一批网址上。被屏蔽后爬虫看不到 noindex。
- 屏蔽一批网址后,空出的预算会自动转给重要页面。Google 说只有已经达到抓取容量上限时才会这样,并提醒不要用 robots.txt 临时腾挪预算。
- 筛选无结果时 302 到统一的“无结果”页。Google 要求在原网址返回 404。
- 只在部分站内链接上加 nofollow。要每一个指向该网址的链接都带才有效。
- 还在找网址参数工具。该工具已在 2022 年弃用。
- 返回 200 就会被编入索引。Google 说明 2xx 不保证编入索引。
怎么检查
- 统计筛选和排序参数能组合出多少网址,和实际商品数、分类数对比,判断网址库存是否远大于有用页面数。
- 查服务器日志里 Googlebot 对带筛选、排序参数网址的请求占比;Google 的抓取问题排查文档建议监控服务器上是否有过量的 Googlebot 请求。
- 在 Search Console 网页索引报告里看“已发现 - 尚未编入索引”“重复网页”“软 404”的数量和示例网址。
- 抽查几个无结果的筛选组合,确认原网址返回 404,没有跳转。
- 核对 robots.txt 规则是否误伤商品页和不带筛选的列表页;需要被索引的筛选页确认没有同时被 robots.txt 屏蔽和加 noindex。
- 用网址检查工具查看 Google 为筛选页选定的规范网址,确认与 canonical 设置一致。
来源
- Managing crawling of faceted navigation URLs,https://developers.google.com/crawling/docs/faceted-navigation(2026-10-05 核对,原 Search Central 网址已跳转至此)
- Crawling December: Faceted navigation,https://developers.google.com/search/blog/2024/12/crawling-december-faceted-nav(2026-10-05 核对)
- Optimize your crawl budget,https://developers.google.com/crawling/docs/crawl-budget(2026-10-05 核对,原 Search Central 网址已跳转至此)
- Introduction to robots.txt,https://developers.google.com/search/docs/crawling-indexing/robots/intro(2026-10-05 核对)
- Block Search indexing with noindex,https://developers.google.com/search/docs/crawling-indexing/block-indexing(2026-10-05 核对)
- How to specify a canonical URL with rel=“canonical” and other methods,https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls(2026-10-05 核对)
- Spring cleaning: the URL Parameters tool,https://developers.google.com/search/blog/2022/03/url-parameters-tool-deprecated(2026-10-05 核对)
- How HTTP status codes affect Google’s crawlers,https://developers.google.com/crawling/docs/troubleshooting/http-status-codes(2026-10-05 核对)
- Troubleshoot Google Search crawling errors,https://developers.google.com/search/docs/crawling-indexing/troubleshoot-crawling-errors(2026-10-05 核对)
