Google 购物 feed 校验器

赶在 Google 之前先找出会被拒登的地方。把你的商品 feed 拖进来,拿到每一个可修复的问题 —— 对照 28 条有据可查的规则,每条都附官方依据。

🔒 你的 feed 不会离开浏览器。

CSV、TSV 或 TXT —— 在本地读取,绝不上传。

这个工具查什么 —— 以及它查不了什么

这里的一切都在你的浏览器里、对着 feed 文件本身运行,所以它覆盖的是数据里面的问题:属性缺失、价格格式不对、GTIN 无效、标识符设置互相矛盾、枚举取值错误、id 重复。

凡是需要访问你网站才能判断的,它都查不了 —— feed 里的价格与落地页是否一致、图片 URL 是不是真的能加载、商品页在不在。这些都是真实存在的拒登原因,所以这里报告干净并不等于一定过审;它的含义是:文件层面的问题已经清干净了。

本工具执行的全部检查(28 条规则)

文件与结构

GMC-F01 没有数据行

文件有表头但没有商品行,或者整个就是空的。

修复: 重新导出一次 feed —— 上传一个空文件会把你账户里的商品全部下架。

Google 规范 ↗

GMC-F02 缺表头行

第一行必须写出各个属性名(id、title、link…)。没有它,Google 无法把列对应起来,会拒收整份 feed。

修复: 加一行表头,用规范里一字不差的属性名。

Google 规范 ↗

GMC-F03 重复的列

同一个属性出现在不止一列里。哪个值生效是未定义的,所以这份 feed 得改对,而不是靠猜。

修复: 删掉或改名重复的那一列。

Google 规范 ↗

GMC-F04 不认识的列

这个列名不是 Google 购物的属性。自定义列会被 Google 忽略 —— 本身无害,但它常常是某个属性名拼错了的信号。

修复: 如果这本来想写成一个标准属性,对照规范核一下拼写。

Google 规范 ↗

GMC-F05 这一行的列数与表头不一致

某一行的字段比表头多或少,通常意味着某个取值里有没转义的分隔符或换行 —— 取值会无声地挪进错误的属性里。

修复: 含分隔符的取值加引号,并去掉字段里的换行。

Google 规范 ↗

必填属性

GMC-R01 缺 id

每个商品都需要一个唯一的 id。没有它的行根本无法被处理。

修复: 用你的 SKU。并且保持它稳定 —— 改了 id,Google 会把它当作一个新商品,历史数据随之丢失。

Google 规范 ↗

GMC-R02 缺 title

title 是必填项,也是购物查询里最强的一个匹配信号。

修复: 写一个说明性的标题:品牌、品类,以及关键属性。

Google 规范 ↗

GMC-R03 缺 description

购物广告与免费商品详情都要求 description。

修复: 把落地页上用的那段商品描述填进来。

Google 规范 ↗

GMC-R04 缺 link

link(商品落地页 URL)是必填项。

修复: 填写商品页的完整 URL,带上 https://。

Google 规范 ↗

GMC-R05 缺 image_link

image_link(主图 URL)是必填项。

修复: 填写直指主图文件的 URL。

Google 规范 ↗

GMC-R06 缺 availability

availability 是必填项,而且必须是它接受的取值之一。

修复: 用 in_stock、out_of_stock、preorder 或 backorder。

Google 规范 ↗

GMC-R07 缺 price

除了纯服务类商品,每个商品都必须有 price。

修复: 写成「数字 + 空格 + ISO 货币代码」,例如 9.99 USD。

Google 规范 ↗

GMC-R08 缺 condition

二手与翻新商品必须填 condition,其余情况也建议填。不填时 Google 会当作 "new" —— 而如果商品并不是全新的,这就构成政策违规。

修复: 把 condition 设为 new、refurbished 或 used。

Google 规范 ↗

商品标识符

GMC-I01 GTIN 无效

gtin 的取值通不过 GS1 校验(校验位错、位数错、含非数字字符,或者被表格软件弄坏成科学计数法之类)。Google 会拒收它无法核验 GTIN 的商品。

修复: 核对条码下面印的那串数字。在表格里把该列设为文本格式,免得它继续被弄坏。

Google 规范 ↗

GMC-I02 identifier_exists 是 "no",却又给了 GTIN

把 identifier_exists 设为 no,等于声明这个商品没有厂商标识符;同时又填上 gtin(或 mpn)是自相矛盾,Google 会拒收。

修复: 要么删掉这一行的 identifier_exists 列,要么清空 gtin / mpn 的取值。

Google 规范 ↗

GMC-I03 identifier_exists 是 "no",却没有 brand 或 mpn

声明为没有标识符的商品,仍然需要足够的信息才能被识别 —— Google 期望这些行上有 brand(通常还要有 mpn)。

修复: 填上你的品牌名。真正无品牌的定制商品,用你的店名作为品牌。

Google 规范 ↗

GMC-I04 完全没有商品标识符

这一行既没有 gtin,也没有 brand + mpn 这一对,而且没有声明 identifier_exists=no。大多数类目要求有标识符;少数类目(定制品、艺术品、古着)豁免 —— 所以这里是警告而不是错误。

修复: 补上 gtin,或者补上 brand + mpn 这一对;商品确实没有厂商标识符的话,把 identifier_exists 设为 no。

Google 规范 ↗

GMC-I05 重复的 id

两行共用同一个 id。Google 只保留其中一个,于是另一个商品从你的 feed 里悄无声息地消失了。

修复: 给每个商品(以及每个变体)各自的 id。

Google 规范 ↗

格式与枚举取值

GMC-M01 price 格式无效

price 必须是「数字 + 一个空格 + 三个字母的 ISO 4217 货币代码」,例如 "9.99 USD"。用逗号当小数点("9,99 EUR")或者带货币符号("$9.99")都会被拒收。

修复: 价格写成 9.99 EUR —— 小数点用句点,不要千分位,不要符号。

Google 规范 ↗

GMC-M02 availability 取值无效

availability 只接受 in_stock、out_of_stock、preorder、backorder。像 "In Stock"、"available"、"yes" 这样的写法会被拒收。

修复: 一字不差地用小写加下划线的写法。

Google 规范 ↗

GMC-M03 condition 取值无效

condition 只接受 new、refurbished、used。

修复: 一字不差地用小写写法。

Google 规范 ↗

GMC-M04 URL 无效

link 与 image_link 必须是以 http:// 或 https:// 开头的绝对 URL。相对路径("/products/x")和光秃秃的域名都会被拒收。

修复: 写完整 URL,含协议和域名。

Google 规范 ↗

GMC-M05 title 过长

title 限 150 个字符。超出的部分会被截断,而搜索结果里的切口通常落在词的中间。

修复: 把最重要的词放在最前面,并把标题控制在 150 字符以内。

Google 规范 ↗

GMC-M06 description 过长

description 限 5000 个字符,超出的部分会被丢弃。

修复: 精简描述,保留买家会去搜的那些细节。

Google 规范 ↗

GMC-M07 identifier_exists 取值无效

identifier_exists 只接受 yes 或 no(旧的 TRUE/FALSE 写法已不再接受)。

修复: 用小写的 yes 或 no。

Google 规范 ↗

内容质量

GMC-Q01 标题全是大写

Google 的编辑规则禁止无谓的大写。整串大写的标题是「商品数据质量」类拒登里很常见的一个原因。

修复: 用正常的句首大写或标题式大小写。只有缩写和品牌名才保留全大写。

Google 规范 ↗

GMC-Q02 标题里有促销文字

title 属性里不允许出现促销用语("free shipping"、"sale"、"best price"、"!!!")—— 它们属于促销活动,不属于商品名。

修复: 把标题里的促销措辞去掉。

Google 规范 ↗

GMC-Q03 占位符或模板残留文字

这个取值看着像没清理干净的模板内容(lorem ipsum、"N/A"、"TBD"、"{{product_name}}"、"test")。它们进到线上 feed 的频率高得出人意料,而在买家眼里就是坏掉的数据。

修复: 换成真实的商品数据。

Google 规范 ↗

关于这些规则。 每一条都有编号、严重级别和通俗解释。每个来源链接都已登记在案,并对线上页面实际复验过,而不是凭印象写上去的. 规则如何编写、测试与保持更新 →

造成大多数拒登的三个错误

1. Google 核验不了的 GTIN

一位数字写颠倒,校验位就不对,商品随即被拒。更糟的是表格软件会悄悄毁掉条码:一个 13 位的数字变成 8.71E+12,一个 0 开头的 UPC 出来只剩 11 位。本校验器对你的 gtin 列跑完整的 GS1 检查,所以这些问题出现在这里,而不是出现在一封拒登邮件里。

2. identifier_exists 与数据自相矛盾

identifier_exists 设为 no,等于声明这个商品没有厂商标识符。同一行上又提交 gtin 与这个声明矛盾,Google 会拒收。反过来,不写这个属性、又既不给 GTIN 也不给 brand+MPN,则意味着这个商品完全没有身份。

3. 价格按欧洲写法写了

Google 要的是 9.99 EUR:句点作小数点,一个空格,然后是 ISO 货币代码。9,99 EUR€9.99 都会被拒收 —— 而这正好把大多数从逗号小数点区域设置导出的卖家绊倒。