你是不是也这样:吭哧吭哧加了一堆结构化数据,结果搜索控制台红标满天飞,富媒体结果影子都没见着?最让人抓狂的是——Schema 类型那么多,看着都差不多,点开文档又全是术语,根本分不清该用哪个。

别硬扛了。我帮电商、本地门店、内容站改过上百个站点的 Schema,踩过的坑比你写的 JSON-LD 还多。今天不讲理论,只说你今天就能用上的判断逻辑。

为什么你选错了类型,谷歌照样不理你?

Schema 不是贴标签,是填考卷。谷歌不会因为你写了 @type: Product 就给你发星星徽章——它得先批改你的“答题卡”。

Product 类型有两道必答题:nameoffers。而 offers 本身又是一道小题,必须包含 pricepriceCurrency。漏一个,整张卷子按零分处理。

我之前接手一个家居电商,产品页用的是 @type: Article,还塞了 authorheadline。搜索控制台直接报:“缺少 offers 字段”。换回 Product,补上嵌套的 Offer,两天后价格标签就出来了。

记住:不是“像不像”,是“是不是”。你页面的实质是什么,就选那个定义里明明白白写着它的类型。

什么场景该用 Article?什么场景该用 BlogPosting?

别被名字骗了。“BlogPosting”听起来像所有博客都该用,其实不是。

  • Article 是“正式发布”的默认选项:新闻稿、评测报告、白皮书、公司公告。它默认带编辑流程、事实核查、统一署名。
  • BlogPosting 是 Article 的儿子,专指带个人语气的记录:试用手记、踩坑复盘、日常灵感、观点吐槽。它天然关联作者头像、发布时间、评论入口。

我们团队内部有个土办法:看文章末尾有没有“我是XXX,这是我的真实体验”。有,就用 BlogPosting;如果写的是“经测试,该机型在XX场景下续航达X小时”,就用 Article。

真实例子:一个硬件测评号,把所有横评都标成 BlogPosting,半年没出摘要卡片。改成 Article,加上 datePublishedauthor(用 Organization 类型写公司名),三周后搜索结果里开始稳定出现带图摘要。

一句话判断:你想让读者记住“这篇文章”,还是记住“写这篇文章的这个人”?前者用 Article,后者用 BlogPosting。

产品页只写 Product 类型就够了?你漏了关键嵌套

光写 @type: Product,等于只交了商品说明书。谷歌想知道的其实是三件事:这是啥?多少钱?别人觉得咋样?

所以 Product 得配两个“搭档”:

  • offers → 塞一个 Offer 对象,里面必须有 pricepriceCurrency
  • aggregateRating → 塞一个 AggregateRating 对象,至少填 ratingValuereviewCount

有人问:那 image 呢?可以写,但不是必填;sku 呢?推荐写,但不填也不报错。真正卡脖子的,永远是那几个带星号的必填项。

翻车现场:一个键盘配件站,Product 类型写对了,offers 里只写了 "price": "89",忘了 "priceCurrency": "CNY"。整个结构化数据被标为“无效”,连带影响了其他页面的索引。补上货币字段,第二天价格徽标就亮了。

动手前先问自己:用户点进来,最想立刻看到的是价格、评分,还是库存状态?把这些信息对应到 Offer 和 AggregateRating 里,别堆在 Product 主体里。

本地商家选 LocalBusiness 还是 Organization?区别只有一句话

如果你家店门口挂着招牌、玻璃门上贴着营业时间、收银台后面摆着营业执照——那就别犹豫,首页、分店页、联系页,统统用 @type: LocalBusiness

  • Organization 是“我在哪儿都行”:集团官网、品牌主站、招聘页、投资者关系页。
  • LocalBusiness 是“我就在这儿等你”:必须填 address(带 streetAddressaddressLocality)、telephone,强烈建议加上 openingHours

谷歌地图和本地搜索结果,只认 LocalBusiness 这个“入场券”。你写 Organization,它当你是个远程办公的咨询公司。

真事:一家社区烘焙坊,总店页用了 Organization,分店页用了 LocalBusiness。但其中一家分店因为复制粘贴错了,也用了 Organization。结果那家店在谷歌地图里彻底隐身,连街景都搜不到。改完类型、补全地址字段,当天下午就重新出现在“附近面包店”列表里。

终极判断法:打开手机地图,搜你店名。能直接导航过去吗?能,就用 LocalBusiness。

视频内容用 VideoObject 就够了?你还需要嵌入到其他类型里

单独扔一个 @type: VideoObject 到页面里,就像在餐厅菜单上单列一道“视频”——没人知道它是前菜、主食,还是甜点。

谷歌希望看到的是上下文:这个视频是哪篇文章里的?属于哪个产品的详情页?是某场直播的回放吗?

所以正确姿势是:

  • 页面主体是文章?主类型用 Article,再在它里面加 "video": { "@type": "VideoObject", ... }
  • 页面主体是产品?主类型用 Product,同样用 video 字段嵌套
  • 页面主体是活动页?主类型用 Eventvideo 作为它的属性之一

常见病:把 VideoObject 写成独立 <script> 块,和其他结构化数据平级。谷歌能识别出“这里有视频”,但不知道它和页面主题的关系,自然不给缩略图。

实操提醒thumbnailUrl 必须是公网可访问的绝对路径,比如 https://example.com/thumbs/video1.jpg。别写 /images/thumb.jpg,也别写 ./thumb.jpg——谷歌爬虫打不开。

结尾:今天就能执行的 3 步操作

别等“全部搞定”,先让一个页面跑通,你会立刻看到变化。

  1. 打开谷歌搜索控制台,点进「效果」→「富媒体结果」,找那个你最想出结果却一直报错的页面(比如产品列表页、最新一篇评测、门店联系页)。
  2. 用浏览器开发者工具(F12)→ Elements 标签页,Ctrl+F 搜 <script type="application/ld+json">,把整段 JSON-LD 复制出来,粘贴到谷歌官方的结构化数据测试工具里。
  3. 照着报错提示,改一个地方:比如把 @type: BlogPosting 改成 Article,或者在 Product 里加一层 offers 对象,填好 pricepriceCurrency。改完再测,绿色通过了,就用开发者工具里的“实时预览”看效果,确认无误后,部署上线。

做完这三步,你已经比 80% 的同行更懂 Schema 了。剩下的,就是把这次成功的改法,复制到同类页面上。