电商筛选URL要不要写Disallow?三类判别法和处理策略

电商筛选URL要不要写Disallow?三类判别法和处理策略
张文保 更新 32 分钟阅读 4,704 阅读
本文目录
  1. 筛选器 URL 长什么样:4 种常见形态
  2. 不处理的后果:爬行预算被参数排列组合吃光
  3. 判别法第一类:必须 Disallow 的筛选器
  4. 判别法第二类:保留索引的筛选器
  5. 判别法第三类:临界场景用 noindex+follow
  6. 真实案例:Magento 2 跨境电商爬行预算治理
  7. 真实案例:国内 B2C 反向操作的教训
  8. 阶梯式策略:从轻到重的 5 种处理方法
  9. GSC 数据怎么用来验证策略
  10. Google 官方表态历年回顾
  11. 常见的几个误区
  12. 常见问题解答
  13. 新站要不要 Disallow 筛选器 URL
  14. Disallow 后 GSC 报告"已被 robots.txt 屏蔽"的 URL 数量很大正常吗
  15. 用 GSC 的 URL Parameters Tool 处理筛选器还有效吗
  16. WooCommerce 默认筛选器 URL 怎么处理
  17. Shopify 的筛选器要不要处理
  18. 多语言电商的筛选器要分语言版本各自处理吗
  19. 处理筛选器后多久能看到流量变化
  20. 百度对筛选器 URL 的处理和 Google 有什么不同
  21. JavaScript 渲染筛选器的特殊情况
  22. robots.txt 的高级语法和坑
  23. 权威参考资料
摘要:电商筛选器URL处理不好,能生出成千上万个低质页吞掉爬虫预算。本文从四种常见筛选器URL形态入手,分出必须Disallow、保留索引、临界场景用noindex加follow三类判别,给从轻到重的五种处理方法,再讲GSC数据怎么验证策略,附Magento爬行预算治理和某站过度Disallow损失七成长尾流量的反例。



电商分类页几乎都带筛选器:颜色、尺码、价格、品牌、材质。用户每点一个筛选条件就生成一个新的 URL(带 query 参数),看似无害的功能在 SEO 视角下能在几周内把一个站点的爬行预算耗光。常见的提问是"要不要在 robots.txt 里写 Disallow 把所有筛选 URL 屏蔽?"——这个问题没有非黑即白的答案,乱写 Disallow 反而会丢失本来能带流量的页面。保哥 2024-2026 年帮 9 个跨境电商和 4 个国内 B2C 客户处理过这件事,本文给出按 3 类判别的实操方法,每一类都附真实案例数据。

本文示例 URL 以 example.com/category/clothing 为基础页面,筛选参数采用 ?color=red&size=L&brand=nike 这种 query string 形态。其他形态(路径式 /clothing/red/L/、HashBang #color=red 等)逻辑相通但具体语法不同。

筛选器 URL 长什么样:4 种常见形态

不同电商平台的筛选器 URL 设计差异很大。先把常见的 4 种摆清楚:

形态示例常见平台SEO 友好度
Query 参数式/clothing?color=red&size=LWooCommerce、Magento 默认、ECShop中等(参数顺序影响重复内容)
路径式(静态化)/clothing/red/L/Shopify 部分主题、Magento 重写后高(看起来像独立栏目)
HashBang 式/clothing#color=red&size=L早年 jQuery 版前端极低(Google 不索引)
POST 表单式/clothing(参数靠 POST 提交)少数定制系统不会被索引

Hash 和 POST 形态本身就不会被 Google 索引,不需要 Disallow。需要决策的主要是 Query 参数式和路径式。

不处理的后果:爬行预算被参数排列组合吃光

一个有 5 个筛选维度(每个维度平均 10 个选项)的分类页面,理论上能产生的 URL 组合数是 11^5 = 161051 个(每个维度选或不选各算一种)。实际场景里因为筛选维度更多、参数顺序差异(color=red&size=L 和 size=L&color=red 是两个 URL)、分页参数叠加,单个分类的可能 URL 数会冲到几十万甚至上百万。

Google 的爬行预算是有限的。一个中等权重的电商站每天的 Googlebot 爬取次数通常在 5 万到 20 万次。如果筛选器 URL 不处理,Googlebot 会优先去爬那些"看起来唯一"的参数组合 URL,把真正重要的商品详情页和主分类页晾在一边。结果就是商品页迟迟不被索引,分类页排名上不去。

保哥跟踪过的一个客户案例:Magento 2 跨境电商站,运营 2 年,2024 年 12 月发现 GSC 报告里"已发现但未编入索引"的 URL 数量飙到 87 万,其中 92% 都是筛选器参数组合。这种情况下不处理就是慢性自杀。

判别法第一类:必须 Disallow 的筛选器

下面这些场景的筛选器 URL 应该直接在 robots.txt 里 Disallow:

  1. 多维度组合产生重复内容:颜色、尺码、库存状态三个参数选不同组合,但展示的商品集合几乎完全相同——比如"红色 S 码"和"红色 S 码且有库存"通常返回同样的几款衣服。这种 URL 没有独立 SEO 价值。
  2. 排序参数:sort=price_asc、sort=newest 这种排序变体,内容相同只是顺序不同。Google 完全不需要索引多个排序版本。
  3. 展示模式参数:view=grid、view=list、per_page=24 这种"显示样式"参数。
  4. session 类参数:sid、PHPSESSID、tracking_id 这类应用层的参数。这种通常不只是 SEO 问题,还可能泄漏用户会话信息。
  5. 多选筛选的全部组合:多选筛选器(如"颜色:红色 OR 蓝色 OR 绿色")能组合出 2^n 个变体,绝大多数都没有搜索价值。

典型的 robots.txt 写法:

User-agent: *

# 排序参数
Disallow: /*?*sort=
Disallow: /*&*sort=

# 展示模式参数
Disallow: /*?*view=
Disallow: /*&*view=
Disallow: /*?*per_page=

# 会话和追踪参数
Disallow: /*?*sid=
Disallow: /*?*sessionid=
Disallow: /*?*PHPSESSID=
Disallow: /*?*utm_=
Disallow: /*?*fbclid=
Disallow: /*?*gclid=

# 库存筛选
Disallow: /*?*in_stock=
Disallow: /*&*in_stock=

这套写法覆盖了大多数没有 SEO 价值的参数。注意每个参数要同时写 ?* 和 &* 两种位置,因为参数可能在 URL 中作为第一个或后续参数出现。

判别法第二类:保留索引的筛选器

下面这些场景的筛选器 URL 应该保留索引,不要 Disallow:

  1. 单个有搜索价值的筛选维度:用户搜"红色连衣裙"是高搜索量查询,对应的 /clothing/dresses?color=red 这个 URL 应该被索引。
  2. 品牌筛选:/clothing?brand=nike 通常有独立搜索价值(用户搜"耐克衣服")。
  3. 价格区间筛选:/clothing?price=under-100 对应"100 元以下衣服"这类查询。
  4. 类目细分:/clothing?category=jeans 等同于子分类页面,应保留。

这些 URL 不应该 Disallow,反而要主动优化让 Google 索引。具体做法:

  • 在分类页面上做静态化 URL 重写,把 ?color=red 重写成 /color/red/,让 URL 更像独立栏目。
  • 给每个有 SEO 价值的筛选 URL 配独立的 title、description、H1。
  • 主动在 sitemap.xml 里列出这些 URL,让 Google 优先爬。
  • 从主分类页面用 follow 链接指向这些 URL。

关键认知:单维度筛选 URL 有 SEO 价值,多维度组合 URL 通常没有。区分这两类是策略的核心。

判别法第三类:临界场景用 noindex+follow

有些 URL 既不是明显的垃圾(不应该 Disallow),也不是高价值页面(不需要主动优化)。这种临界场景的最佳处理是:保留 Googlebot 爬取(不写 Disallow),但通过 noindex meta 标签告诉 Google 不要把它放进索引。

典型场景:

  • 两个维度组合的筛选页面(color=red&size=L)——可能少量长尾搜索能用上,但单页流量极小。
  • 分页变体(page=2、page=3)——内容是主页面的延续,需要爬取但不需要独立索引。
  • 带筛选的子分类页面排序变体(如 /dresses?color=red&sort=newest)。

实现方式是在筛选页面的服务端代码里检测当前 URL 是否符合"应该 noindex"的条件,匹配上就在响应的 head 里输出:

<meta name="robots" content="noindex, follow">

"noindex" 告诉 Google 不要索引这个页面;"follow" 让 Google 继续爬取页面上的链接(重要!否则商品详情页可能因为这种链接的"无 follow"而失去内链权重)。

noindex 比 Disallow 有一个关键优势:Google 依然会爬这个页面,能看到页面上的内链,把权重传递给商品详情页。Disallow 是"我不让你爬",noindex 是"你可以爬,但别索引"。对内链权重传递来说 noindex 更友好。

真实案例:Magento 2 跨境电商爬行预算治理

2024 年 12 月接的客户:Magento 2 跨境电商,主营户外用品,3.2 万个 SKU,GSC 显示"已发现但未编入索引"URL 数量 87 万。原始 robots.txt 几乎没有限制,Googlebot 每天 8 万次爬取里只有约 12% 落在商品详情页和主分类页。

诊断步骤:

  1. 用 Screaming Frog 抓取站点 5 万个 URL 样本。统计参数分布:72% 是排序参数变体、18% 是多维度筛选组合、6% 是分页变体、4% 是单维度筛选。
  2. 分析 GSC 的"已发现未编入索引"URL 类型分布。排序变体占 68%、多维度筛选占 21%、其他 11%。
  3. 看 Server Log 一周。Googlebot 实际访问的 URL 里,68% 是排序参数变体——和 GSC 数据一致。

处理策略:

  1. robots.txt 增加 Disallow:所有排序参数、展示模式参数、库存筛选参数。
  2. 服务端代码改造:检测 URL 是否含两个以上筛选参数(多维度组合),是的话输出 noindex+follow。
  3. 单维度筛选 URL 静态化重写:/clothing?color=red 重写成 /clothing/color/red/,进 sitemap.xml。
  4. 分页变体(page=2 及以后)输出 noindex+follow。

4 周后的数据变化:

指标处理前处理 4 周后
Googlebot 日均爬取8.2 万次5.8 万次
商品详情页 + 主分类页占比12%71%
"已发现未编入索引"87 万3.2 万
"已索引"商品详情页1.1 万2.8 万
自然流量基线+34%

4 个月后自然流量比基线 +58%。爬行预算治理是回报率最高的 SEO 工作之一,特别对大站。

真实案例:国内 B2C 反向操作的教训

2025 年 3 月接的另一个客户:国内 ECShop 衍生的 B2C 服装站。客户上一任 SEO 顾问 1 年前给写过一个 robots.txt,把所有带 query 参数的 URL 都 Disallow 了。结果:

  • "色彩+品类"这类高搜索价值组合(如 /clothing?color=red&category=dresses)也被屏蔽,长尾流量几乎归零。
  • 价格区间筛选 URL(/clothing?price=100-200)被屏蔽,用户搜"100-200 元连衣裙"这类查询完全打不到他们站。

客户的实际损失:和同类竞争对手对比,他们的长尾流量大概只有竞争对手的 30%,问题持续了一整年都没被发现,因为主关键词排名一直稳定(主分类页没被屏蔽)。

修复后 6 个月,长尾流量恢复到竞争对手的 80% 水平。这个案例的教训是:Disallow 是双刃剑,盲目屏蔽会丢失本来能拿到的流量。Disallow 之前必须明确"这些 URL 真的没有搜索价值"。

阶梯式策略:从轻到重的 5 种处理方法

处理筛选器 URL 不只有 Disallow 一个选项。按"对 Google 自由度"从高到低排列:

  1. 什么都不做:让 Google 自己决定。适用于小站点(少于 1000 个 SKU)、筛选参数少(2-3 个)、爬行预算充足的场景。
  2. canonical 标签:在筛选 URL 的 head 里输出 canonical 指向无参数主页面。Google 会优先索引主页面,筛选页面作为附属。
  3. noindex+follow:爬取但不索引。前面详细讲过。
  4. nofollow 链接:在主分类页面的筛选器链接上加 rel="nofollow",让 Google 不沿着筛选器链接爬下去。这能降低爬行压力但不彻底。
  5. robots.txt Disallow:彻底禁止 Googlebot 访问。最严格但损失最大。

实际策略通常是组合使用:

  • 无 SEO 价值的明显垃圾参数(排序、展示模式、session)—— Disallow。
  • 多维度组合筛选 —— noindex+follow。
  • 单维度有搜索价值的筛选 —— 静态化 URL + 主动 sitemap。
  • 分页变体 —— noindex+follow。
  • 临时活动页 —— canonical 指向主页。

GSC 数据怎么用来验证策略

处理后怎么知道策略有效?看 GSC 的几个关键报告:

  • 覆盖率报告:看"已发现未编入索引"和"已抓取但当前未编入索引"数量变化。处理 4 周后应该明显下降。
  • 抓取统计信息:看 Googlebot 每日抓取次数和按响应类型的分布。处理后总抓取数应该下降(爬虫去爬更少 URL),但抓取效率(落在重要页面的占比)上升。
  • 性能报告:看"展示次数"和"点击次数"按页面分组的变化。长尾页面(筛选页)的展示数和点击数应该有明显变化。

处理后第 4 周是数据稳定的关键节点,之前都是过渡期不要做决策。如果第 4 周还看不到改善,要回头审视策略是不是过严或过宽。

Google 官方表态历年回顾

Google 的 John Mueller、Gary Illyes、Martin Splitt 这几年公开发言里关于筛选器 URL 的核心立场(保哥从 Twitter / Reddit / Office Hours / Search Central 视频整理):

  • 2019 年 Office Hours:Mueller 建议中大型电商对筛选器使用 Disallow 而不是 noindex,理由是节省爬行预算。
  • 2021 年 Twitter:Mueller 部分修正了 2019 年的立场,强调"Disallow 阻断了链接权重传递",对内链流的网站不友好。
  • 2023 年 Search Central Live:Gary Illyes 提到大多数电商应该走"noindex+follow + sitemap 主动声明"组合,Disallow 仅用于明显垃圾参数(排序、追踪)。
  • 2025 年 Office Hours:Mueller 反复强调"参数处理"功能(GSC 老版本里有的 URL Parameters Tool)已经退役,电商必须自己用 robots.txt + 模板 noindex + canonical 三件套处理筛选器。

趋势是:Google 越来越倾向于让站长用 noindex+canonical 这种"软处理"而不是 Disallow 这种"硬处理"。但实操中 Disallow 对超大型电商依然不可替代。

常见的几个误区

  • "用了 canonical 就能不用 Disallow":canonical 是建议性的,Google 不一定遵守。对参数极多的电商,单纯 canonical 依然挡不住爬行预算被吃光。
  • "noindex 比 Disallow 更环保所以全部用 noindex":noindex 需要 Googlebot 先爬到才能看到 meta 标签,对超大型站点依然有爬行压力。Disallow 在节省爬行预算上更彻底。
  • "Disallow 后页面立刻从索引消失":错。Disallow 阻止新爬取,但已经在索引里的 URL 不会立刻被移除。要移除已索引 URL 需要先返回 410 或 404,让 Googlebot 看到再清除。
  • "robots.txt 写错没事":写错可能屏蔽整个站点。保哥见过有人写 Disallow: / 屏蔽全站结果第二天流量归零。robots.txt 改动后必须用 GSC 的"robots.txt 测试工具"验证。
  • "Bingbot / 百度爬虫遵守 Google 规则":不一定。robots.txt 标准 90% 一致,但实现细节有差异。中文站要同时考虑百度 Spider 的特殊行为。

常见问题解答

新站要不要 Disallow 筛选器 URL

取决于规模。SKU 少于 500 的小站点不需要急着做——Google 的爬行预算对小站点是充足的,把精力先放在内容和外链上。SKU 在 500 到 5000 之间的中型站点可以等到 GSC 显示"已发现未编入索引"数量超过 1 万时再处理。SKU 超过 5000 的中大型站点上线第一天就应该写好 robots.txt,避免后期数据已经污染了再清理。

Disallow 后 GSC 报告"已被 robots.txt 屏蔽"的 URL 数量很大正常吗

正常,而且是处理生效的信号。这个数字说明 Googlebot 曾经发现过这些 URL(通过站点内链或外部链接)但被 robots.txt 拦截没有爬。这是正确的策略效果。不要因为这个数字大就把 robots.txt 改回去——重要的是看"已发现未编入索引"数量是否下降、商品详情页索引数是否上升。

用 GSC 的 URL Parameters Tool 处理筛选器还有效吗

Google 在 2022 年 4 月正式下线了 URL Parameters Tool。现在所有筛选器处理都必须通过 robots.txt、meta robots、canonical 三种方式。如果你曾经依赖 URL Parameters Tool,需要在站点代码里重新实现等效逻辑。

WooCommerce 默认筛选器 URL 怎么处理

WooCommerce 的筛选器 URL 形如 /shop?filter_color=red&filter_size=L。推荐的 robots.txt 写法:Disallow: /*?*filter_; Disallow: /*&*filter_; Disallow: /*?*orderby=; Disallow: /*?*per_page=。同时安装 Yoast SEO 或 Rank Math 在 SEO 设置里开启"对参数页面自动 noindex"。WooCommerce 本身不输出 canonical,需要 SEO 插件补上。

Shopify 的筛选器要不要处理

Shopify 默认会给筛选页面输出 canonical 指向无参数版本,已经做了一半工作。但 Shopify 的 robots.txt 在很多套餐里不允许自定义。要处理筛选器爬行预算需要在 Shopify Liquid 模板里加 noindex meta 标签。对中大型 Shopify 店建议升级到 Shopify Plus 才能完全控制 robots.txt。

多语言电商的筛选器要分语言版本各自处理吗

是的。多语言电商通常每个语言版本是独立的子目录或子域(/en/ /fr/ /de/ 或 en.example.com)。每个语言版本的 robots.txt 规则可以相同(在同一个文件里写多语言通用),但 noindex 和 canonical 必须按语言版本各自处理。注意 hreflang 标签的目标必须是有索引价值的 URL,不能指向 noindex 页面。

处理筛选器后多久能看到流量变化

看变化规模。爬行预算治理(Disallow)的效果通常 4 到 8 周开始反映在 Googlebot 抓取统计;商品详情页索引数上升通常需要 6 到 12 周;自然流量的可见增长通常需要 10 到 16 周。这是 Google 重新评估站点结构的自然时长。期间不要反复改 robots.txt 否则会让数据持续震荡难以判断。

百度对筛选器 URL 的处理和 Google 有什么不同

百度的爬虫预算更紧、对参数 URL 的容忍度更低。同样规模的电商站点百度 Spider 每日爬取通常只有 Googlebot 的 30%-50%。但百度对 robots.txt Disallow 的尊重程度高,按规则写就行。百度没有等价 GSC 的"覆盖率报告",处理效果只能从百度搜索资源平台的"抓取诊断"和"索引量"间接看。中文站建议同时优化 Google 和百度两套规则。

JavaScript 渲染筛选器的特殊情况

越来越多前端用 React、Vue 做筛选器,URL 不再是传统的 query 参数而是用 HTML5 History API 操作(pushState、replaceState)。这种情况下浏览器地址栏看起来变了(/clothing/color/red),但实际 HTTP 请求依然指向无参数的主分类页,只是前端 JS 在客户端筛选商品列表。

这种 SPA 风格的筛选器对 SEO 是个挑战:

  • Googlebot 现在已经能渲染 JavaScript,但渲染过程慢(爬取后排队几小时到几天才会真正渲染)。
  • 每个 pushState 后的"虚拟 URL"是否被 Google 当成独立 URL,取决于站点是否同时配了 canonical、是否在 sitemap 里声明、链接是否在 HTML 里直接可见。
  • 纯 hash URL(#color=red)依然不会被 Google 索引。

处理 SPA 筛选器的实践经验:

  1. 有 SEO 价值的筛选维度(颜色、品牌)必须用真实路径 URL(路径式或 query 式),并在服务端预渲染主要内容,不能纯前端筛选。
  2. 无 SEO 价值的筛选维度(多选组合、排序)可以用纯前端 SPA 模式,不暴露独立 URL。
  3. 用 prerender.io 或 Rendertron 这种服务给筛选页面做预渲染,让 Googlebot 第一次访问就拿到完整 HTML。

SPA 电商的筛选器 SEO 比传统服务端渲染更复杂。如果你的电商架构师还在用纯 SPA,需要考虑迁移到 Next.js / Nuxt 这种 SSR 框架。

robots.txt 的高级语法和坑

除了简单的 Disallow,robots.txt 还有几个高级语法值得了解:

  • Allow 优先于 Disallow:Allow: /clothing/color/red/ 可以解除 Disallow: /clothing/* 的限制。用于精细化控制。
  • 通配符 * 和锚定符 $:Disallow: /*.pdf$ 屏蔽以 .pdf 结尾的 URL;Disallow: /*?sort= 屏蔽含 sort 参数的 URL。
  • User-agent 分别声明:可以给 Googlebot、Bingbot、百度 Spider 写不同的规则。Crawl-delay 参数对 Google 无效但百度和 Bing 有效。
  • Sitemap 声明:robots.txt 文件末尾加 Sitemap: https://example.com/sitemap.xml 告诉爬虫 sitemap 位置。

常见坑:

  • robots.txt 必须放在域名根目录,不能放在子目录。
  • 区分大小写。Disallow: /Admin/ 不会屏蔽 /admin/。
  • Disallow: /* 等价于 Disallow: /(屏蔽整站)。
  • 多个 User-agent 段之间不要有空行——空行会被解释为段落分隔。

权威参考资料

分享到
标签
版权声明

本文标题:《电商筛选URL要不要写Disallow?三类判别法和处理策略》

本文链接:https://zhangwenbao.com/filter-generated-pages-robots-txt-disallow.html

版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0

继续阅读
发表评论
分享到微信 或在下方手动填写
支持 Ctrl + Enter 提交