商品品牌字段一个空的都没有,17个站把自己写成了好几个牌子

商品品牌字段一个空的都没有,17个站把自己写成了好几个牌子
张文保 26 分钟阅读 2,323 阅读
本文目录
  1. 商品数据里的品牌那一栏,为什么56个站一个空的都没有?
  2. 一栏全填了,为什么还有37个站对不上?
  3. 多出来的那些品牌,拆开看是哪三类?
  4. 一半以上是同一个品牌换了个写法
  5. 有一批的字面意思就是“没填”
  6. 剩下的才是真的别的牌子
  7. 同一个品牌能写出几种花样?
  8. 多带一截修饰词,占了三分之二
  9. 大小写、空格和那个与号
  10. 地区后缀是第二常见的分叉
  11. 品牌栏里写着DEV和production,这批货还在卖
  12. 品牌名写成None的那190件,到底是什么货?
  13. 其中有一批的网址以spacer开头
  14. 剩下那95件是真在卖的衣服
  15. 有人把品牌字段当开关用
  16. 这些值会不会原样流进结构化数据?
  17. 九成的页面把接口里那个值一字不差地抄了出去
  18. 那些不该出门的值,确实出门了
  19. 做了清洗的那七个站,各清洗各的
  20. 还有一个站,两边都脏,而且脏得不一样
  21. 真的是多品牌的那些站,这一栏用对了吗?
  22. 子品牌矩阵
  23. 设计师、联名和第三方
  24. 顾客的名字被写进了品牌栏
  25. 主品牌名和域名对不上的9个站,问题出在哪?
  26. 自己的站该怎么查这一栏?
  27. 常见问题解答
  28. 品牌字段填得不统一,Google真的会当成两个品牌吗?
  29. 那到底该以哪个写法为准?
  30. 子品牌应该写母品牌还是子品牌?
  31. 设计师联名款,品牌栏写设计师名字对不对?
  32. 品牌栏里填了None,会不会直接被判成垃圾内容?
  33. 怎么知道自己的商品页有没有把这个脏值吐出去?
  34. 这批数据能代表所有电商站吗?
  35. 顺手还能查哪几个相邻的坑?
  36. 权威参考资料

摘要:56个英文独立站的43912件在售商品,品牌字段填写率100.0%,一件没漏。可37个站的商品品牌不止一个答案,非主品牌的3237件里有57.1%只是同一个牌子换了个写法;190件商品的品牌栏写着None,28件写着Exclude,还有21件带着DEV和production这样的环境标记。用真实浏览器打开商品页读结构化数据,130个页面里有118个把接口里那个值一字不差地交了出去,包括一句带冒号的广告语、一个写着DEV的开发环境名,以及一家画框店的企业客户。

商品数据里的品牌那一栏,为什么56个站一个空的都没有?

先说个让人放心的数字:43912件在售商品,品牌字段的填写率是100.0%。一件都没漏。

这批数据来自60个英文独立站的公开商品清单接口,最后有56个站拿到了完整清单,读的是商品对象上那个叫vendor的字段。做技术审计的人看到这种数字,通常会在检查表上打个勾就翻页了——覆盖率满分,这一项没问题,下一项。

但我把这一栏的取值摊开数了一遍,发现56个站里有37个,商品的品牌不止一个答案。再往下拆,那些“多出来的品牌”里,超过一半根本不是别的牌子,是这个站自己的名字换了个写法。还有190件商品,品牌栏里工工整整地填着两个英文单词:None

填写率和可用性是两回事,这中间的距离,这篇要一步步量出来。

技术SEO的检查表上,字段类的项目几乎清一色按“填没填”打分——结构化数据里价格64个站全写了、规格只有7个那次,我用的也是这把尺。这把尺在多数字段上够用,因为多数字段填错了会当场报错:价格填成字母,前台直接崩;日期填成汉字,校验器立刻叫。品牌栏不叫。它接受任何字符串,你写什么它存什么,包括你的开发环境名字。

一栏全填了,为什么还有37个站对不上?

先把口径说清楚。我给每个站算了一个“主品牌”——就是这个站的商品里出现次数最多的那个品牌值。56个站里,19个站从头到尾只有这一个值,干干净净。剩下37个站,商品的品牌值不止一种。

非主品牌的商品一共3237件,占全样本的7.4%。这个数字乍看不大,落到单站上就很难看了:迪卡侬那个站,占比最高的品牌值只覆盖37.6%的商品;一个叫menuspace的家居站,主品牌只占54.9%,全站商品分给了44个不同的品牌值——平均每19件货换一个牌子。

站点商品数品牌值个数主品牌占比
menuspace.com8214454.9%
fahertybrand.com22931397.3%
decathlon.com5181137.6%
taylorstitch.com30001093.2%
avocadogreenmattress.com245956.7%
framebridge.com239956.1%
marinelayer.com2556696.9%
wusthof.com444569.8%

看到这张表的第一反应大概是“这些站在卖别人的货”。有几个确实是,但只是少数。真正的答案要把这3237件拆开才看得见。

多出来的那些品牌,拆开看是哪三类?

我给这3237件做了一次分类。判据很朴素:把品牌值去掉重音符号、把与号换成and、砍掉一批常见的修饰尾巴(公司后缀、地区代码、Official、Site、Store之类),再只保留字母和数字。归一之后如果和主品牌撞上了,就算同一个牌子;如果这个值本身的字面意思就是“没填”,单独算一类;剩下的才是真的别的牌子。

类别件数占非主品牌商品
同一个品牌换了个写法184757.1%
字面写着“没填”2186.7%
真的是别的牌子117236.2%

一半以上是同一个品牌换了个写法

1847件,57.1%。这些商品的品牌值和主品牌指的是同一个东西,只是拼法不同。把这一类归并掉之后,56个站的品牌值总数从211个降到189个,塌缩了10.4%;更直观的说法是:原本只有19个站是单一品牌,做完归一化之后变成25个——有6个站的“多品牌”是自己造出来的。

有一批的字面意思就是“没填”

218件。品牌栏里写的是NoneNot specifiedExclude这类词。它们通过了任何一个“非空校验”,但没有携带一个字节的品牌信息。这一类下面单独有一节讲,因为它比想象中有意思。

剩下的才是真的别的牌子

1172件,36.2%。这一类是正常的,甚至是应该的——迪卡侬本来就是子品牌矩阵,家居买手店本来就卖设计师作品。问题不在于它们存在,而在于它们和前面两类混在同一个字段里,谁也分不出谁。

同一个品牌能写出几种花样?

把1847件那一类逐条做字符级比对,差异类型是这样分布的:

差在哪件数占比
多带一截修饰词122766.4%
大小写、空格或标点41722.6%
多带一个地区后缀1829.9%
多带一个环境标记211.1%

多带一截修饰词,占了三分之二

最典型的是把品类词带进品牌名:Chubbies这个站有467件商品的品牌写作Chubbies,其余的写作Chubbies Shorts;Snow Peak有285件写作Snow Peak Apparel,其余的就是Snow Peak;Stanley的商品在StanleyStanley 1913之间分了两拨,124件挂在短的那个上。

Away这个行李箱站更彻底,三种写法并存:Away TravelAway,还有106件商品的品牌栏里塞的是Away: Built for modern travel——那不是品牌名,那是一句广告语,中间还带着冒号。

大小写、空格和那个与号

Wüsthof这个德国刀具站把自己的名字写出了三种:WüsthofWÜSTHOFWusthof——重音符号有和无、大小写全大和首字母大,排列组合玩了个遍。Baseus有36件商品的品牌是全小写的baseus。Mack Weldon有204件把中间那个空格省了,写成Mackweldon。TUSHY和Tushy各自占了一批。

Tuft & Needle则贡献了本次样本里最丰富的一组:Tuft & NeedleTuft and NeedleTuftandneedleTuft & Needle CA,加上后面要说的那个,一共5种。一个床垫品牌,在自己的商品库里有5个名字。

地区后缀是第二常见的分叉

Baseus同时存在BaseusBaseus USBaseus EU;Our Place有7件是Our Place - US;Harry's的主值干脆就是Harry's US,另外7件才是Harry's。这类值往往是多店铺同步时带过来的,源站的地区标记跟着商品一起搬了家,没人在落地那一头把它摘掉。

保哥经手过一个从欧洲往北美开分店的配件站,两边共用一套商品库。北美店建档的时候,有人顺手在品牌名后面加了个US做区分,纯粹是为了后台筛选方便。这个习惯延续了大半年,直到投放那边发现Merchant Center里冒出了两个品牌,各自攒各自的历史数据,谁也没攒够。改法不复杂——品牌栏统一回一个值,地区区分挪到自定义标签上去。值得记的是,那个加US的人从头到尾没做错任何一步,他只是用了一个没人告诉过他不能这么用的字段。

品牌栏里写着DEV和production,这批货还在卖

21件,比例只有1.1%,但它是这一节里最不该出现的:

  • Monos有10件商品的品牌值是Monos (DEV)
  • Tuft & Needle有11件写着Tuftandneedle-production

括号里的DEV是开发环境,后缀里的production是生产环境。这两个词本来只该活在部署脚本和环境变量里,现在它们跟着商品记录一起躺在公开的商品清单接口里,任何人不用登录就能拿到。这个出口本来就是敞开的,我之前专门量过它一次能端走多少东西。

这跟HTML注释里那些构建日期和供应商名单是同一类事故:内部标记跟着交付物一起出门了,只是这次它挂在一个搜索引擎会认真读的字段上。

品牌名写成None的那190件,到底是什么货?

Taylor Stitch这个站有166件商品的品牌值是字符串None,另有24件是Not specified。合计190件,占该站3000件商品的6.3%。

我原以为这是一批半成品记录——建了个壳,字段还没填完。数据不同意这个猜测:这190件里,商品描述为空的只有10件,商品类目为空的一件都没有。它们的类目老老实实写着Wovens、Outerwear、Knits、Pants、Accessories,是真的在卖的衣服。

其中有一批的网址以spacer开头

把这190件的网址前缀数一遍,出现最多的两个是the(95件)和spacer(22件)。后面这22件长这样:spacer-usa-made-clothingspacer-the-indigo-shopspacer-all-footwear,还有一件叫copy-of-spacer-the-jack-01——连复制出来的占位块都留着。

spacer在前端行话里是占位块,专门用来撑版面,本身不该有内容。我用真实浏览器逐个打开了几件,结果一致:它们全部跳走了,落点是这个站的全部商品列表页。这些条目在商品库里是商品、在公开接口里是商品、在你的审计脚本里也是商品,唯独在前台它们不存在。

拿商品当版面积木使,这事可以理解,主题编辑器不好用的时候大家都干过类似的事。麻烦在于这批积木现在混在真商品里,参与了每一次数量统计、每一次覆盖率计算,还可能参与sitemap的收录名单。你的商品总数比实际多22件,听着无所谓,可这22件里没有一件能打开。

剩下那95件是真在卖的衣服

另外95件以the开头的,比如the-waterless-heavy-bag-tee,是这个站正儿八经的产品线。它们有描述、有类目、有图、有变体,唯独品牌栏里写着None

这就是本篇标题那个意思的最直白版本:这一栏填了,而且填得很满,可它说的不是这件商品的品牌。任何以“非空”为判据的检查,都会给这95件商品打勾放行。

有人把品牌字段当开关用

Wüsthof那边有28件商品的品牌值是Exclude

这个词不是名字,是指令。它的类目栏写着Knife Block Set这种正经货,说明商品本身没问题,是有人在这个字段上写了一句给某个程序看的话——大概率是给某个导出插件或者广告投放工具看的:这批别导。

字段被挪去当开关,短期内往往真的管用,因为那个工具确实按这个值过滤了。代价是这个字段从此有了两套语义,而下游读它的程序不止那一个。商品条码栏里填变体ID的后八位是同一个毛病的另一种长相:那次是把一栏当另一栏用,这次是把一栏当命令行参数用。

这些值会不会原样流进结构化数据?

前面全是接口层的账。真正决定它有多要紧的,是下一个问题:搜索引擎看得见吗。

Google对商品结构化数据的说明,brand是商品富媒体结果里会被读取的属性之一。所以接口里的值只要原样进了页面的JSON-LD,它就不再是内部数据,而是你对搜索引擎的正式声明。

我用真实浏览器逐站打开了商品页,从渲染完成的页面里把所有JSON-LD捞出来,取Product节点的brand,跟接口里的品牌值逐条对照。为了不让抽样偏向某一类商品,每个站取了四件:一件是主品牌的普通商品当基准,一件是非主品牌的,一件是描述为空的,还有一件专挑品牌值异常的。

158个页面打开了151个,6个是404。其中130个页面写了Product结构化数据,全都带brand属性,覆盖率86.1%。

九成的页面把接口里那个值一字不差地抄了出去

130个带brand的页面里,118个的值与接口完全相同,一个字符都没改,占90.8%。剩下12个分布在7个站上,是主题做过处理的。

按站算更直白:44个站全部直通,7个站部分处理,1个站一条都不直通,还有4个站的商品页压根没写brand。也就是说,绝大多数独立站的商品页,就是把后台那一栏原封不动地交给了搜索引擎。

那些不该出门的值,确实出门了

这是本次实测最直接的结果。前面在接口层看到的每一类怪值,都在页面的结构化数据里找到了对应:

站点接口里的品牌值页面结构化数据里的brand这是什么
monos.comMonos (DEV)Monos (DEV)开发环境标记
tuftandneedle.comTuftandneedle-productionTuftandneedle-production生产环境标记
wusthof.comExcludeExclude给某个工具看的开关
awaytravel.comAway: Built for modern travelAway: Built for modern travel一句广告语
framebridge.comSaks Fifth AvenueSaks Fifth Avenue企业客户的名字
magicspoon.comOrder ProtectionOrder Protection第三方运费险应用
outdoorvoices.comRise.aiRise.ai第三方礼品卡应用
jackery.comSeelSeel第三方保障应用
hellotushy.comAngiAngi第三方服务商

最后四行值得单独说一句。Order Protection、Rise.ai、Seel、Angi都不是这些站在卖的东西,是它们装的第三方应用往商品库里塞的条目——运费险、礼品卡、延保。这些应用建商品的时候把自己的名字填进了品牌栏,然后主题照单全收,写进了结构化数据。一个卖早餐麦片的站,它的某个商品页正在对搜索引擎声明:本商品的品牌是Order Protection。

做了清洗的那七个站,各清洗各的

另一头也有意思。12个不一致里,有一部分是主题主动做了修正:

  • allbirds把接口里的re:do换成了Allbirds——这是唯一一个明确把第三方应用挡在外面的;
  • fromourplace把Our Place - US的地区后缀摘掉了;bollandbranch把Boll & Branch Hydrogen收敛成了Boll & Branch
  • chubbies接口写Chubbies Shorts,页面写Chubbies;stanley1913接口写Stanley 1913,页面写Stanley——两家都把品类词和年份摘了;
  • taylorstitch那个Not specified,页面上直接没输出brand,主题把它当空值滤掉了。

但方向不一致。Faherty是反过来的:接口里写Faherty,页面上输出的却是Faherty Brand,主题给它加了一截。七个站做了七套自己的规则,没有一套是平台给的。

还有一个站,两边都脏,而且脏得不一样

Gymshark是本次唯一一个所有页面都不直通的站。它接口里的品牌值是Gymshark | Be a visionary.,页面结构化数据里写的是Gymshark | We Do Gym

两个值都在品牌名后面拖着一句标语,用竖线隔开——那是社交简介的写法,不是品牌名的写法。更麻烦的是两句标语还不一样,说明这两处的取数来自两个各自维护的地方,而且谁也不知道对方存了什么。这跟sameAs里的社交账号和页脚那排图标对不上是同一种结构:同一个品牌事实存了两份,两份都错,而且错得不一样。

需要说明抽样的边界:每个站四件的量级,只够回答“这个站是不是把接口值直通到页面”这一个问题,不足以估计任何一个站内部的比例。上面所有百分比的分母都是页面数,不是商品数。

真的是多品牌的那些站,这一栏用对了吗?

说回那1172件“真的是别的牌子”。这一类不是错误,但它揭示了一件事:同一个字段,在不同的站上装的东西完全不是一回事。

子品牌矩阵

迪卡侬是最标准的例子。它的商品品牌里有Quechua(户外)、Simond(攀登)、Forclaz(徒步)、Kiprun(跑步)、Van Rysel(公路车)、Wedze(滑雪),还有18件直接写Decathlon。这是一家公司真实的品牌结构,字段用得没毛病。麻烦在于对外:Google要求商家名称只留一种写法,可这个站的商品有11种品牌答案,机器得自己判断哪个是“这个站”。换个品类词AI就不推你了这件事的底层也在这儿——机器先得认出你是谁,才谈得上把你放进哪一档。

设计师、联名和第三方

menuspace那44个品牌值里,绝大多数是设计师名字:Norm Architects 114件、Kroyer-Saetter-Lassen 35件、Afteroom Studio 21件、Ib Kofod-Larsen 17件、Mogens Lassen 14件、Colin King 14件。对一个高端家居站来说,设计师就是卖点,写进品牌栏有商业道理。但schema.org里的Brand类型指的是商品的品牌,设计师更接近creator或者designer——用错了类型,Google拿到的实体关系就是歪的。schema.org那份全网使用统计里也提过这类错配:类型堆得越多,用错的概率越高。

Faherty的库里有12件BIRKENSTOCK,Avocado那边有63件Coyuchi,Marine Layer有69件Custom Club,tentree有13件Climate+。这些是真的在代销或者做子线,字段本身没写错,只是它们和前面那两类挤在同一栏里,从数据上分不出来。

顾客的名字被写进了品牌栏

framebridge是做定制画框的,它的非主品牌值里有Shake Shack(30件)、CAVA(30件)、Heart + Paw(17件)、Saks Fifth Avenue(12件)。

汉堡店、地中海快餐、宠物医院、百货公司——这些显然不是画框的品牌,是给这些企业客户做的定制项目。这一栏在这里实际记录的是“这批货是给谁做的”,语义已经从供货方翻转到了收货方。而下游任何一个读brand的程序,都会以为这个站在卖Saks Fifth Avenue的东西。

主品牌名和域名对不上的9个站,问题出在哪?

还有一个顺手能做的交叉校验:把每个站的主品牌值和它的域名拿去比对。去掉标点和大小写之后,47个站互相包含,9个站对不上。

域名主品牌值算不算问题
avocadogreenmattress.comAvocado Mattress否,域名比品牌长
beistravel.comBÉIS Travel否,重音符号
bollandbranch.comBoll & Branch否,与号
tuftandneedle.comTuft & Needle否,与号
wusthof.comWüsthof否,重音符号
dreametech.comDREAME US否,域名带后缀
ice-watch.comICE sa存疑,sa是公司形式
decathlon.comQuechua是,主品牌不是自己
menuspace.comAudo Copenhagen是,主品牌不是自己

9个里有6个只是重音、与号或者后缀,属于误报。真正值得看的是最后三个:ice-watch写的ICE sa带着公司形式后缀(sa是比利时和法国的股份公司缩写),更像法务实体名而不是品牌名——这个毛病在网站页脚上更常见;后两个则是主品牌压根不等于站名,机器要认出“这个站是谁”,得绕一圈。

顺带说一句,这个校验的假阳性率是三分之二,别拿它当报警用,只当一份待人工过目的清单。这种“报警扣完之后还剩几条”的账,我在商品价格那次算过一回,那次是扣到一条不剩,这次好歹还剩三条。

自己的站该怎么查这一栏?

整套动作不需要任何付费工具,半小时能跑完。

  1. 先把全量品牌值拉出来做频次表。用你平台的商品导出,或者直接读公开的商品清单接口。只要值的个数大于1,就往下走。
  2. 做三级归一化再比一次。去重音、与号换成and、砍掉地区码和公司后缀、只留字母数字。归一前后个数不一样,差额就是你自己造出来的重名。
  3. 用一张黑名单扫一遍字面空值。None、Null、N/A、Not specified、Unspecified、Exclude、Default、Test、TBD——这几个词覆盖了本次样本里的全部218件。
  4. 扫环境标记。正则里放dev、staging、production、test、qa、sandbox、copy这几个词,命中的一律是事故。
  5. 打开商品页看结构化数据里的brand。这一步不能省。接口里的值再脏,只要没进页面,影响面就小得多;一旦原样进了JSON-LD,它就是搜索引擎认定的品牌。校验JSON-LD语法批量扒页面结构化数据都有现成工具。
  6. 把真多品牌的那部分单独建表。子品牌、代销、联名、客户定制,各自的正确写法不一样:子品牌归brand,设计师该用designer,客户定制项目更适合放进商品描述而不是品牌栏。
  7. 定一个唯一写法,然后往回改。写法定下来之后,Merchant Center那一侧的brand属性也要跟着对齐,否则自然搜索和购物广告会认出两个实体。

第七步是最容易半途而废的一步。品牌名统一这件事没有立竿见影的排名回报,但它决定了搜索引擎把你的商品归到哪个实体名下——实体识别这一层的缺口不会体现在任何一份常规SEO报告上,只会体现在AI答案里没有你。

常见问题解答

品牌字段填得不统一,Google真的会当成两个品牌吗?

结构化数据这一层是会的。brand是一个实体属性,值不同就是不同的字面实体,至于Google的知识图谱会不会把它们合并到同一个实体上,取决于它掌握的其他信号——官网、社交账号、维基条目、外部提及。信号强的大牌,写成三种也多半能被认回去;新站或者小站没有这些冗余信号,就只能靠你自己写对。所以这件事对越小的站越要紧,这跟直觉是反的。

那到底该以哪个写法为准?

以你在别处已经用得最多的那个为准,不要另起炉灶。具体说:看你的官网页脚、社交账号名、商标注册名这三处,取重合的那一个。品牌名不带品类词(不写Chubbies Shorts,写Chubbies),不带地区后缀,不带公司形式(LLC、Inc、sa这些留给法务实体字段),标点按商标注册的原样写。定完之后写进内部规范,新品建档时照抄。

子品牌应该写母品牌还是子品牌?

写这件商品实际印着的那个牌子。用户在货架上看到的是Quechua,商品的brand就写Quechua。母品牌的位置在组织信息里,用Organization类型单独声明,通过parentOrganization把关系挂上去。把两层压进同一个字段,等于让机器替你猜层级,猜错的概率不低。

设计师联名款,品牌栏写设计师名字对不对?

不对,但也不必删。schema.org里brand指的是商品的品牌,设计师应该用designer或者creator。做法是品牌栏保持你自己的品牌,设计师另开一个属性写。这样机器既知道货是谁的,也知道谁设计的,两条关系都完整。

品牌栏里填了None,会不会直接被判成垃圾内容?

不会直接判垃圾,但会浪费掉一次表明身份的机会,并且可能触发Merchant Center的属性质量提示。更现实的风险是这个值原样出现在页面的结构化数据里,那就等于对着搜索引擎说这件商品的品牌叫None。填不了品牌的商品(比如无品牌配件),正确做法是按平台规则用允许的占位方式声明,而不是自己造一个英文单词填进去。

怎么知道自己的商品页有没有把这个脏值吐出去?

随便打开一个商品页,看页面源码里的JSON-LD,找Product节点下的brand。要批量做就用无头浏览器渲染完再取,因为不少主题的结构化数据是JS插进去的,只看初始HTML会漏。取到之后跟你导出的品牌值做逐件比对,不一致的分两种:页面比接口干净说明主题做了清洗,页面跟接口一样脏说明它就是直通的。

这批数据能代表所有电商站吗?

不能。样本是60个英文独立站,最终56个拿到完整商品清单,全部跑在同一个电商平台上,品类偏服饰、家居和户外。换个平台,字段名和默认行为都不一样;换个品类,多品牌的比例也会变。可以直接拿走的是方法和那张字面空值黑名单,比例数字请在自己的库上重新算一遍。

顺手还能查哪几个相邻的坑?

三个。一是商品标识符那一族,条码、SKU、MPN经常互相串填;二是商品类目字段,和品牌栏一样容易被挪作他用;三是页面上的品牌显示和结构化数据里的brand是不是同一个值——很多主题的面包屑和标题走的是另一套取数逻辑,两边对不上的情况不罕见。

权威参考资料

分享到
标签
版权声明

本文标题:《商品品牌字段一个空的都没有,17个站把自己写成了好几个牌子》

本文链接:https://zhangwenbao.com/product-vendor-brand-field-variants-audit.html

版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0

继续阅读
发表评论
分享到微信 或在下方手动填写
支持 Ctrl + Enter 提交