GEO-019·第 02 期·内容与语义·19 / 132

商品变体与缺货页:别让 AI 读到 404

变体拆出的几十个 URL、缺货时随手改成 404,都会让 AI 已经读到的商品页失去落点。本文给出变体 URL 的三种收敛方式、缺货页在 200、301 与 410 之间的选择标准,以及重新上架后的恢复顺序,附一张可照做的检查表。

7 分钟GEO内容与语义出海

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

黑五前两周,一家做越野跑鞋的出海品牌把德国站的库存同步跑了一遍:主推款的 42 码全断。运营照惯例把这批断码变体改成了 404,理由是页面留着也是死页,只会让爬虫白抓。两周后,同事在 ChatGPT 里问“宽楦越野跑鞋适合扁平足的有哪些”,答案里有两个竞品和一个德国测评站,没有他们。被 404 掉的那批 URL 里,正好有宽楦款的商品页。

变体与缺货页不是技术细节,而是 AI 认识你商品的记忆:状态码选错一次,丢掉的是已经被读过的实体、属性与第三方提及,这些都比新建一个页面更难补回来。

变体把一件商品拆成几十个地址

先算一笔账。一双跑鞋,6 个配色、8 个尺码,再加宽度与版本,很容易到几十上百个 URL。每个 URL 都有自己的标题、价格和库存状态。爬虫看到的是一堆长得几乎一样的页面,AI 要回答的却是另一个问题:这几十个地址,是一件商品的几十个选项,还是几十件不同的商品?

它不确定时,会退回到一个说法完整、属性齐全的页面去引用。你拆得越细、每页信息越少,被引用的概率越低。再叠上筛选参数,抓取预算先被这批同质页消耗掉,主力商品页反而排到了后面,这笔账在抓取预算怎么被参数页吃掉里算得更细。

变体的呈现方式只有三种。选择标准不是“哪种更容易被收录”,而是“买家会不会单独问这个条件”。

变体呈现AI 看到什么什么时候用主要代价
单页加选择器,canonical 指向主 URL一个商品实体,属性集中在一页变体只改外观:颜色、包装、赠品颜色类的长尾提问没有独立落点
每个变体独立 URL,canonical 自指多个可引用的地址,各有价格与库存变体改变用途或适配:尺码、宽度、容量、电压URL 翻倍,属性容易彼此矛盾
主变体占 URL,其余合并并 noindex一个入口,重复最少变体差异对选型没有影响细分提问可能找不到对应页

判断只有一句:买家会在提问里说出口的条件,才配得上一个独立 URL。“宽楦”“220V”“2 升”会被问,“午夜蓝”不会。

反例是把 canonical 统一指向最好卖的那个颜色。看起来省事,实际是把每个地址都变成一个颜色的副本:尺码与宽度的信息被收敛掉,等那个颜色断货,收敛目标本身变成缺货页,整组变体一起失去落点。

缺货不是下架:200、301 与 410 的分界

第二类损耗来自默认值。多数建站模板在库存归零时,会把页面交给运营手动处理,而运营手上通常只有两个动作:改成 404,或者跳到类目页。两个都不对。

我的判断是:缺货页默认留在 200,把状态写清楚,而不是让它消失。AI 与搜索引擎需要一条连续的历史来确认这个商品存在——评论、外链、媒体提及、此前的引用,全部挂在那个 URL 上。页面一删,这些证据就失去了落点。

状态语义什么时候对代价
200 加缺货标记页面还在,暂时不可买会补货,或长期在售只是断码模板要能显示补货窗口与替代款,不能只留一句“售罄”
301 到类目或替代款永久搬家该变体不再生产,且有明确替代型号原 URL 的身份消失,AI 要重新把新旧对应起来
410永久移除整条线下架、不再补货恢复上架要重新被发现与索引,比 200 慢
404未找到只用于本就不该存在的地址,如错误参数被当成临时故障反复抓取,旧引用变成死链

302 是最常见的一种错。它表示“临时”,长期挂着会让引擎与 AI 反复重抓原地址,页面既没内容也没消失。要么 200 保留,要么 301 明确永久,中间态拖得越久,账越乱。

缺货页该写什么也有判断:预计补货窗口、最接近的替代型号、哪些变体还有货。这三句是 AI 能直接摘的答案,也是买家真正要的下一步。没有它们,200 只是一个空壳。空壳还有一个技术版本:状态与库存由脚本在浏览器里注入,抓取时读到的是默认值,见AI 能不能渲染你的店。

四步把资产保住

步骤做什么谁来做怎么算过
1 盘点导出全部变体 URL、状态码与近 90 天抓取记录,按“是否改变用途”分组运营与工程每个变体一行,能回答“为什么拆”
2 定策略按三种呈现方式选一种,写进模板规范,不按个案临时决定增长负责人每个属性维度有一句可复核的理由
3 定规则补货预期超过一个季度仍留 200;永久停产走 301 或 410运营与工程规则写进库存同步脚本,不靠人手改
4 验一致性状态、价格与 availability 三者一致,且无 JS 也能读到工程curl 抓到的内容与页面一致

第 1 步常被跳过,团队直接从“要不要删缺货页”开始讨论。没有分组清单,讨论的其实是印象。抓取记录怎么取、怎么判定允许与到达,见一次完整的 AI 抓取审计。

示例:一次缺货规则重写

示例(假设场景,不含真实品牌与数据):一家做 USB-C 扩展坞的品牌,同一款产品按接口数、供电功率与插头版本拆出十几个变体 URL。旧规则是任一变体缺货,整组 302 到类目页。

改法分三块。第一,把“接口数”保留独立 URL,因为买家会直接问“8 合 1 的扩展坞能不能带 4K”;颜色与包装合并到主 URL,canonical 自指。第二,缺货变体改为 200 保留,页面上写补货窗口与最接近的替代型号,availability 标为缺货。第三,只有整条线停售的型号才走 410,且下架前先把内容并到系列页。

验收看三件事:关掉 JS 后仍能读到状态、价格与 availability;重新上架后引用回到原地址,而不是一个新地址;同一批问题复测时,缺货型号仍被提及,落地页是那个型号的 URL 而不是类目页。复测怎么抽样、怎么记录,沿用AI 可见度基线里那套做法。

边界:什么时候这套规则不适用

变体只差颜色,且颜色不影响选型。这时拆独立 URL 只是给自己制造重复页,一页的选择器就够。反过来,为了“覆盖长尾”把每个颜色都做成可索引页,是最常见的过度设计:光一个蓝色就有三个地址,AI 更难确认哪个是主页面。

成交集中在平台内的品类。Amazon、Shopee 的状态码与模板不归你管,能改的是后台库存状态与 listing 里的补货信息;把官网那套 301 与 410 搬过去,没有入口。

能预售、能登记到货通知的商品,不该走缺货逻辑。它仍然是 200,只是按钮换成预售或订阅;当成缺货处理,等于主动放弃已经建立的着陆页。

生命周期极短的商品,比如联名与季节款,410 是合理选择,但要在下架前把内容归档到系列页,别让“曾经有过这款”从站内彻底消失。多语言站点还要多一层:同一商品的每个语言各有 URL,一个市场保留、另一个市场 410,AI 会把它们当成两种不同的商品状态。

如果只做一件事:从库存系统导出最近 90 天有过缺货记录的变体 URL,按 200、301、410、404 分成四组,把 404 那组逐个回答一句“它是暂时没货,还是永远不会再有”,然后只改这一组的状态码,再复测同一批问题,看引用落点是商品页还是类目页。这条线的其余文章在内容与语义主题页。