GEO-018·第 02 期·内容与语义·18 / 132

给 AI 看的导航:分类、筛选与分页

筛选参数会把几千个 SKU 变成 AI 抓不到的迷宫。本文拆开面性导航的三个陷阱、分页与 canonical 的处理方式,再给出从首页到商品页三跳可达的五步落地做法,以及一套能照着验收的标准。

7 分钟GEO内容与语义出海

本期主线先被看见:抓取、渲染与 AI 爬虫可访问性

旺季前两周,一家做户外家具的独立站运营在 Perplexity 里问“小阳台能放下的折叠桌推荐哪个”。答案引了两个竞品的类目页,他们自己的折叠桌被压在筛选结果的第 4 页。技术同事复盘发现:类目页的商品列表靠 JS 渲染,筛选全是 ?material=aluminum&width=60 这类参数,翻页是一个“加载更多”按钮。收录数量没掉,能走进来的路先断了。

AI 找不到的不是你的 SKU,而是从类目到 SKU 的那条路:筛选参数越多、分页越深,能被引用的入口越少。

类目页是答案页,筛选只是导航

先把角色摆正。类目页回答的是“这一类里有什么、怎么选、差在哪”,这正是买家提问的形状;筛选和分页是站内导航,是给人用的工具,不是给机器用的入口。

检索型爬虫接到“适合小阳台的折叠桌”这类问题后,只会抓少量页面。它优先要的是一个能一次读懂十几款商品的 HTML 列表:标题、价格、关键属性、谁适合谁不适合。它不会为了凑答案,沿着五六个筛选维度一层层点下去。

所以判断一个类目页值不值得改,别先看自然流量,看三件事:关掉 JS 还能不能看到商品;页面里有没有一句说清“这一类怎么选”的话;从首页到这里的链接是不是真的可点。

面性导航的陷阱:参数组合吃掉抓取预算

面性导航指的是把材质、尺寸、场景这类维度拆成可以任意组合的筛选项。它的问题不是 URL 难看,是它把入口变成了组合数。示例:五个维度、每个维度六个取值,组合起来是 7,776 个 URL;真实站点还要再加排序、页数、追踪参数。抓取预算有限,被抓的永远是浅层、被链接最多的页面,被牺牲的是本来就难被发现的商品页,抓取预算怎么被参数页吃掉是这条链上的第一笔账。

做法爬虫拿到什么适用代价
纯参数筛选同一模板的无限 URL,多数页只有零星商品站内交互预算被稀释,商品页越埋越深
路径化 facet每个 URL 独立,可自指 canonical,可写答案单元有真实提问且供给足够的维度需要人工白名单,放开就造薄页
静态类目加精选入口一次抓取拿到十几款主力商品与属性长尾维度、季节选品覆盖不全,要定期换选品

判断标准只有一句:只给买家会在提问里说出口的维度做路径,比如材质、使用场景、尺寸段;不要给内部运营维度开路径,毛利、供应商、上架批次只是数据库字段,没有人会这样发问。

分页、canonical 与 rel:三个判断

第一,分页页的 canonical 指向自己,不要指向第 1 页。第 2 页的商品和第 1 页不同,收敛掉等于告诉引擎后面那些商品不必单独存在。例外只有一个:同一个商品集合只是换了排序或每页数量,那才该收敛。

第二,rel=next/prev 不是解法。它不会让第 5 页被发现,也不会让里面的商品进索引;能解决问题的是 HTML 里真实可点的链接。分页改版时把它当补丁打,通常两周后问题还在。

第三,别让“加载更多”成为唯一入口。它可以留给人用,但要保留一条静态分页兜底,让无 JS 抓取顺着链接走到底。翻页深度超过十来页的类目,用 sitemap 兜底,别继续加深链接链。

变体和库存状态会让这套账翻倍:同一件商品按颜色、尺码、版本拆成多个 URL,再叠上筛选参数,变体与库存页怎么处理要先定规则,否则路径化只是把迷宫复制一遍。

从首页到商品页三跳:五步落地

三跳不是审美要求,是抓取路径的物理约束:首页、一级类目、属性页、商品页,三次点击之内到货,检索爬虫才走得到。

步骤做什么谁来做怎么算过
1 盘点导出类目与筛选 URL 的抓取记录,按“抓到商品”和“只抓到空壳”分组工程一张可索引候选清单,一张该拒绝清单,做法见一次完整的抓取审计
2 定白名单选两三个买家会问出口的维度做路径化,其余保留参数并加 noindex,follow增长与内容每个 facet 页有一句自己的答案单元,不是模板套话
3 改模板类目页由服务端输出子类目与头部商品的链接,面包屑可点工程curl 关掉 JS 能拿到链接与商品标题;首页到主力商品三次点击内
4 修分页固定每页商品数,静态“下一页”链接,分页页 canonical 自指工程第 2 页能单独访问、能被抓
5 验覆盖对比可索引页数、被抓页数、返回 200 且有商品的比例增长差异能落到具体模板,而不是“整体变好了”,口径见抓取覆盖率怎么量

第 2 步最容易做错。多数团队一上手就放开全部维度,理由是不想漏掉长尾;结果长尾没抓到,主力商品页先被埋了。先做两个维度,跑完一轮再决定加不加。

示例:一次类目导航重写

示例:一个卖宠物用品的独立站,六个类目、五个筛选维度、每维六个取值,改法三步。

第一步,把材质与场景两个维度改成路径:/cat-beds/waterproof/、/cat-beds/small-space/,其余三个维度保留参数并加 noindex,follow。第二步,每页固定 24 个 SKU,翻页换成静态链接,分页页 canonical 指向自己。第三步,在每个路径化页顶部放一段“这一类怎么选”,写清适合谁、别买给谁、怎么量尺寸——这段是给 AI 摘的,不是给转化率写的。

验收只看三件事:关掉 JS 打开任一路径化页面,能看到商品标题与价格;首页到任一主力商品不超过三次点击;同一批问题复测时,AI 答案引用的落地页从带参数的 URL 变成路径化页面。三件都过不了,就别往下铺第二个类目。

边界:什么时候不该做路径化

SKU 只有几十个的店,一套静态类目页加 sitemap 就够了。路径化在供给不足时会批量生产薄页,一页三件商品,AI 读到的是“这个类目很空”。

成交主要发生在平台内的品类,先修 listing、评论与 feed;官网导航改得再好,也换不来平台内 AI 的推荐位。

如果站内搜索才是访客的主路径,该修的是类目命名与商品属性,不是把搜索页放开给爬虫——搜索结果页是典型的无限 URL 加空结果,放开等于主动制造抓取黑洞。

多语言市场还要多算一笔:每个语言各生成一套路径化 URL,语言数会直接乘进预算,hreflang 与 canonical 不先理顺,路径化只是把问题放大。

最后一种误用是“为了不漏”。把所有筛选组合全部放开自指 canonical,理由是宁多勿少;结果是抓取预算被空结果页和参数顺序不同的重复页占掉,主力商品反而更少见。宁可少开,也不要让爬虫把预算花在没有商品的页面上。

本月只做一件事:挑一个 SKU 最多的类目,用 curl 关掉 JS 抓类目页和它的第 2 页,把抓不到的商品列出来;再把这一类里买家真会问出口的两个属性改成路径,其余参数页加 noindex,follow,最后用同一批问题复测落地页。做完这一遍,再决定要不要铺第二个类目。这条线的其余文章在内容与语义主题页。