你是不是也遇到过这种情况:辛辛苦苦配好所有筛选条件,URL 里颜色、尺寸、价格区间全齐了,结果在 Google Search Console 里翻半天,发现这些页面压根没被收录?别怀疑自己,这真不是你代码写错了——是筛选页天生容易踩坑,一不留神就被搜索引擎当“重复垃圾”扔进冷宫。

为什么你的筛选页面被搜索引擎直接忽略?

搜索引擎爬虫不会读心。它看到 ?color=red&size=large,第一反应不是“用户想找红色大号商品”,而是:“这和 ?color=blue&size=large 到底差在哪?”
如果两个页面只有商品图不同,标题、描述、正文结构全都一样,爬虫就会打个哈欠,默默跳过。

我帮一个服装电商改过筛选页。他们有800多个带参数的页面,但 Google 只收了不到30个。问题出在哪儿?所有页面的 <title> 都长这样:“商品列表 - XX品牌”。几百个页面标题一模一样,爬虫当然觉得:哦,又来灌水的。

后来我们把标题改成“红色大号T恤 - XX品牌”,加上对应的商品数量提示(比如“共42款”),再同步更新 <meta description>,收录量才开始一点点爬升。

另一个隐形杀手是 URL 组合爆炸。比如你同时放开 ?color=?size=?sort= 三个参数,颜色10种、尺寸5种、排序3种——理论上能生成150个URL。但现实中,“墨绿+超大号+按销量排序”这种组合,可能三个月都没人点一次。这些页面不是给用户看的,纯粹是在抢爬虫的时间。

3个方法让筛选页面从“垃圾”变成“有价值”

方法一:用 canonical 标签告诉搜索引擎哪个才是正主

你不需要让每个筛选组合都独立被收录。大多数时候,真正值得索引的就一个:比如不加任何筛选时的默认页,或者“销量最高”的那个组合页。

其他所有变体,都应该通过 canonical 标签指向这个主页面。

操作很简单:在筛选页的 <head> 里加一行:

<link rel="canonical" href="https://example.com/category/shoes" />

我见过一个SaaS工具站,做完这一步后,被索引的页面少了快一半,但搜索流量反而稳住了——因为爬虫终于能把预算花在刀刃上,而不是反复抓取几十个只差一个排序参数的页面。

方法二:用 robots.txt 或 noindex 直接封掉无价值的组合

有些筛选参数,真的没必要被搜索引擎看见。

比如价格区间:?price=100-200。这类页面内容通常很薄,商品随库存实时变动,不同区间的列表还高度重叠。
再比如排序参数:?sort=price_asc?sort=newest。除了顺序变了,其他内容完全一样。

你可以直接在 robots.txt 里拦住它们:

Disallow: /*?sort=
Disallow: /*?price=

或者更精准一点,在页面 <head> 里加:

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

意思是:别收录我,但可以顺着我身上的链接继续爬。既省爬虫资源,也不伤站内链路。

方法三:为高频筛选组合创建独立、有内容的页面

用户真正在搜的,从来不是“?color=red&category=shoes”,而是“红色运动鞋”。

这类高频组合,值得你单独拎出来做静态页:把 /shoes?color=red 改成 /red-shoes/,再配上一段真实的选购建议,比如“红色运动鞋怎么搭裤子不容易显腿短”,或者放3条真实用户评价截图。

我帮一个家居网站优化过“实木餐桌”这个组合。他们不仅做了静态路径,还在页面顶部加了张对比表(橡木vs胡桃木的耐磨性、清洁难度),底部塞了一段200字的《小户型怎么选餐桌》Tips。这个页面后来成了全站自然流量前三。

筛选参数本身不是敌人,问题是:你有没有给它配上人的语气、人的信息、人的判断。

哪些筛选参数必须规范,否则后果严重

以下三类,不处理迟早出事:

第一类:排序参数。
?sort=price?sort=newest 这类。内容零差异,纯属制造重复。直接 noindex,或写进 robots.txt 屏蔽。

第二类:分页参数。
?page=2?page=3 这些。用户几乎不会从百度/Google 点进来第2页,索引它纯属浪费。方案有两个:给所有分页加 rel="prev" / rel="next",或者干脆只让第一页可索引,其余加 noindex

第三类:多选筛选组合。
比如同时选了“品牌=XX”+“颜色=红”+“尺寸=XL”+“价格<500”。结果往往只剩1款商品,页面空荡荡。搜索引擎一看就判定:低质。解决办法很简单——当筛选结果少于5个时,直接显示“没找到符合条件的商品”,并带上 noindex

如何用URL结构让筛选参数更友好

URL 不只是给机器看的,也是给运营、SEO、甚至你自己看的。两个关键点:人能看懂机器不迷路

可读性优先。
/shoes/red/large//shoes?color=red&size=large 强太多。前者扫一眼就知道是啥,后者像乱码。技术允许的话,优先走路径式URL;实在要用查询参数,就砍掉非核心的,比如保留 ?color=?size=,但干掉 ?sort=?page=

唯一性兜底。
同一个内容,不能有多个URL。比如 ?color=red?color=red&sort=default 实际展示一样,就必须用 canonical 指定一个主URL。最坑的是参数顺序不同导致的重复:?color=red&size=large?size=large&color=red 被当成两个页面。后端加个逻辑,强制按字母顺序排列参数,就能避开这个雷。

一个案例:筛选参数规范后流量翻了3倍

一个户外装备站,之前2000多个筛选页,90%没被索引。问题很典型:

  • 所有页面 <title> 都是“户外装备 - XX品牌”
  • URL 同时带着 ?category=?brand=?price=?sort= 四个参数
  • 完全没用 canonical

我们只做了三件事:

  1. robots.txt 里屏蔽 ?sort=?price=
  2. 给每个品类主页面(如 /tents/)加 canonical,指向不带参数的版本
  3. 把“帐篷”“睡袋”“登山杖”做成独立静态页,每页加300字左右的真实选购建议

三个月后,索引页从200个降到80个,但搜索流量明显提升。“帐篷”那个独立页,自然流量翻了好几倍。
规范筛选页,不是删功能,而是把本该属于优质内容的曝光,从无效组合手里抢回来。

今天就能做的1个操作:检查你的筛选参数页面

打开 Google Search Console → 左侧菜单点「索引」→ 「页面」→ 右上角点「筛选」→ 输入 ?,再点「应用」。
你会看到一堆带问号的URL。重点看两列:

  • “已发现但未索引”
  • “已索引但可能有问题”

如果其中超过三成都含 ?color=?size=?sort= 这类参数,说明你的筛选页已经在拖后腿。

接下来,今天下班前花10分钟:
打开你最常用的CMS后台(比如WordPress的Yoast插件、Shopify的Theme Editor、或直接改模板文件),给所有带 ? 的商品列表页统一加上:

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

只留你确认有价值的那几个(比如 /red-shoes//tents/)不加。
等一周,回Search Console看:索引总数是否下降?但“有效索引页”的点击量有没有稳住甚至上升?

这一步做完,你就已经甩开80%还在让爬虫瞎跑的人了。