GEO-018·第 02 期·内容与语义·18 / 132
给 AI 看的导航:分类、筛选与分页
筛选参数会把几千个 SKU 变成 AI 抓不到的迷宫。本文拆开面性导航的三个陷阱、分页与 canonical 的处理方式,再给出从首页到商品页三跳可达的五步落地做法,以及一套能照着验收的标准。
本期主线先被看见:抓取、渲染与 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,最后用同一批问题复测落地页。做完这一遍,再决定要不要铺第二个类目。这条线的其余文章在内容与语义主题页。