结构化数据伤AI可见度的五个错误:评分标了页面上没有,价格和页面差20英镑

结构化数据伤AI可见度的五个错误:评分标了页面上没有,价格和页面差20英镑
张文保 21 分钟阅读 3,308 阅读
本文目录
  1. 结构化数据在AI搜索里还有用吗?
  2. 为什么说结构化数据不是打勾清单?
  3. 写成一张图,而不是几个孤立的块
  4. 网站上标对了,AI就会信你吗?
  5. 站外信息怎么收拾
  6. 同一个公司,为什么要用同一个@id?
  7. 她举的改名案例
  8. 这里要补一个技术细节
  9. 标记里有、页面上没有,会怎样?
  10. Google政策原文怎么说
  11. 价格和库存过期了,谁来发现?
  12. 为什么价格最容易对不上
  13. 一个浏览器里就能跑的检查
  14. 五个错误放在一起怎么查?
  15. 常见问题解答
  16. 结构化数据会影响AI概览的引用吗?
  17. 结构化数据最常见的错误有哪些?
  18. @id是什么,一定要是能打开的网址吗?
  19. 只在首页定义Organization,其他页面引用@id就够了吗?
  20. 页面上没显示评价,结构化数据里能写评分吗?
  21. 结构化数据价格和页面价格不一致有什么后果?
  22. 结构化数据违规会受到什么处罚?
  23. 怎么批量检查价格标记和页面是否一致?
  24. 网上别的网站还挂着旧品牌名怎么办?
  25. ChatGPT会读网页的结构化数据吗?
  26. 权威参考资料

摘要:Getty Images的SEO负责人Helen Pollitt在Search Engine Journal的Ask An SEO专栏里,列了结构化数据最容易伤AI可见度的五个错误:把标记当成打勾清单,没当成实体策略来做;以为网站上标对了,AI就会信你;同一个组织在不同页面用不同写法,没用统一的@id;标记里写着页面上看不到的评分;标记里的价格、库存和页面对不上,过期了也没人管。后三个在Google的结构化数据政策里本来就是违规,可能招来人工处置。Google的AI功能文档也只提了一句结构化数据的要求:和页面上可见的文字一致。

很多做外贸独立站的人,结构化数据是装插件那天配好的,之后再没打开看过。Rich Results测试一片绿,就当万事大吉。到了AI搜索这一轮,这套标记还管不管用,管用的前提是什么,值得重新过一遍。

Search Engine Journal在10月1日的Ask An SEO专栏回答了一个读者问题:哪些结构化数据错误最伤AI可见度?答题的是Getty Images的SEO负责人Helen Pollitt。这篇以她的五条回答为主体,对照Google结构化数据政策原文,补上每条错误的检查方法和修法。

结构化数据在AI搜索里还有用吗?

先把期待值摆正。Google在AI功能与你的网站这份文档里写得很明白:页面想作为AI概览或AI模式的支撑链接出现,只要被索引、符合在搜索中带摘要展示的条件,没有额外的技术要求。AI功能不需要专门优化,常规的SEO基础照样适用。

文档列的基础做法里,有一条专门讲结构化数据:确保结构化数据和页面上可见的文字一致。就这一句,没说加了结构化数据就更容易进AI概览。

Pollitt的观点是,结构化数据在AI搜索里的价值,在于帮机器更有把握地理解页面上的实体和它们之间的关系。这个说法和Google的文档并不冲突,但要注意它是从业者的经验判断,Google没有公开说过结构化数据会影响AI概览的引用。ChatGPT、Perplexity这类工具读不读JSON-LD、怎么读,也没有官方说明。所以下面这五条,更适合当成“别让标记拖后腿”的清单来用,别当成提升AI可见度的秘诀。

为什么说结构化数据不是打勾清单?

Pollitt说,最可以理解的错误,是把结构化数据当成必须完成的任务,却不想“为什么要做”。很多人给页面加标记,就是照例把这类页面该有的主要类型套上,加上了就算完成。

她的例子是一家电商网站的博客文章。页面用了Article标记,技术上完全正确:这确实是一篇文章,标记告诉搜索引擎它是信息类内容,不是商品页、不是商业内容。可这样标完,这篇文章和网站上其他实体之间是什么关系,一点都没表达出来。

更好的做法是把这一页的标记放到整个网站里看:文章连到它的作者,作者连到他所在的公司。落到标记上,除了Article,还要有作者的Person和公司的Organization,并且把它们连起来。品牌身份、内容作者、商品实体,以及它们之间的关系,才是标记要表达的东西。

写成一张图,而不是几个孤立的块

落到代码上,最常见的写法是用@graph把同一页的几个实体放在一起,用@id互相引用。下面是一个外贸B2B站博客文章页的示意,网址都是虚构的:

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.example-valves.com/#organization",
      "name": "Example Valves Co., Ltd.",
      "url": "https://www.example-valves.com/",
      "logo": "https://www.example-valves.com/images/logo.png"
    },
    {
      "@type": "Person",
      "@id": "https://www.example-valves.com/team/li-wei/#person",
      "name": "Li Wei",
      "jobTitle": "Application Engineer",
      "worksFor": { "@id": "https://www.example-valves.com/#organization" },
      "url": "https://www.example-valves.com/team/li-wei/"
    },
    {
      "@type": "Article",
      "@id": "https://www.example-valves.com/blog/ball-valve-vs-gate-valve/#article",
      "headline": "Ball Valve vs Gate Valve for Water Treatment",
      "author": { "@id": "https://www.example-valves.com/team/li-wei/#person" },
      "publisher": { "@id": "https://www.example-valves.com/#organization" }
    }
  ]
}

三个节点各有一个@id,文章通过author和publisher指向人和公司,人通过worksFor指向公司。机器读到这一页,拿到的是一张小小的关系图。作者页最好真实存在,页面上写着这个人的职位和经历,否则标记里的Person只是一个名字。@graph和知识图谱的更多写法,站里有一篇专门讲;页面上一堆节点、到底哪个是这一页的主角,可以看主实体识别那篇。

网站上标对了,AI就会信你吗?

不一定。Pollitt的第二条提醒是:只把页面上的信息类型标清楚还不够,你标的内容,要和AI可能从别处读到的信息对得上。你标记的内容,不一定就是AI眼里最权威的版本。

所以结构化数据策略里,要有一部分是去纠正网上的错误信息。她举的例子很日常:别的网站还在用你的旧品牌名,或者挂着你产品的旧价格。在自己网站上把新品牌名和新价格标对了,未必就能让AI相信你这份才是准的。

外贸卖家对这个应该有体感。工厂改过名、换过型号命名规则、调过价格,可阿里巴巴旧店铺、展会名录、经销商网站、几年前的新闻稿里,还挂着老信息。AI回答“某某公司生产什么”“某型号多少钱”时,这些都可能被拿来当材料。

站外信息怎么收拾

  • 列一张清单,把能找到的品牌信息出处都写上:B2B平台店铺、行业名录、经销商和代理商网站、社媒主页、维基类页面、新闻稿;
  • 能自己改的先改,比如平台店铺、社媒简介、名录里的公司资料;
  • 不能自己改的,联系经销商和名录方更新,至少把公司名、型号、官网地址改对;
  • 在官网的Organization标记里用sameAs列出你认可的官方主页,告诉机器哪些账号是你的;
  • 价格这类变化快的信息,对外尽量少写死,经销商页面最好写“以官网为准”并链回来。

站内站外口径不一致是AI搜索里最常见的品牌风险之一。About页面怎么写成实体定义的权威来源,可以参考About Us页面的实体定义;实体消歧受哪些信号影响,站里实体消歧机制那篇讲得更细。

同一个公司,为什么要用同一个@id?

第三条错误是没有用一致的实体标识。Pollitt的解释是:用@id定义一个实体之后,别的地方可以直接引用这个@id,不用每页重新写一遍。比如组织信息,在首页定义一次,其他页面和模板引用它就行。

她用的例子是一家虚构的电商店。首页的Organization标记带着@id,文章页的publisher只写了一个@id引用:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Choose the Right Running Shoes",
  "publisher": {
    "@id": "https://www.helensecommercestore.example/#organization"
  }
}

她特意说明,@id里那个网址不必是能打开的真实网页,它的作用是一个唯一标识。

她举的改名案例

这个案例很有代表性:假设2022年给商品页加Organization标记时,公司名还是旧的“Helen's Shop”;2026年首页的标记更新了,公司名改成“Helen's Ecommerce Store”。这时候机器就犯难了,这家公司到底叫什么?

Pollitt的结论是,如果当初所有页面都通过@id引用同一个组织实体,首页一改,其他页面就都跟着变了,不会冲突,也不用改好几处。

这里要补一个技术细节

这个结论在工程上要换个理解方式才稳妥。搜索引擎会不会顺着一个@id跑到首页去读完整的组织信息,Google没有公开说明。一个页面上只写“publisher指向某个@id”,而这一页里并没有这个@id对应的完整节点,抓取方能读到的就只有一个标识符。

更稳的做法是:让共享模板在每一页都输出完整的Organization节点,并且每一页用的都是同一个@id。这样每一页自身信息完整,所有页面的公司信息又来自同一份模板配置,改一处,全站一起变。Pollitt说的“改一处、处处生效”,靠的是模板,不靠抓取方去跨页解析。

检查方法也简单:抽几类页面,首页、商品页、文章页、联系页,把JSON-LD里的Organization都拿出来比一比,看name、url、logo和@id是不是完全一样。CMS装了SEO插件,主题又自带一套结构化数据,经常会输出两个写法不同的组织节点,这种情况可以参考两套结构化数据怎么归一。

标记里有、页面上没有,会怎样?

第四条:结构化数据语法有效,但和页面上看得到的内容不一致。Pollitt说这对传统SEO和AI搜索都是风险。故意给页面上不存在的内容加标记,可能招来Google的人工处置;对AI来说,这也是很混乱的信号,因为机器知道标记应该代表页面内容,在页面上找不到对应内容,就不知道该信哪边。

她举的是一个咖啡机商品页。页面上写着:Helen's Premium Coffee Machine,价格79.99英镑,有货,页面上没有任何用户评价。可结构化数据里写的是:

"aggregateRating": {
  "@type": "AggregateRating",
  "ratingValue": "4.9",
  "reviewCount": "127"
}

页面上没有评价,也没有评分,标记里却写着127条评价、平均4.9分。Pollitt的原话是,这很容易招来Google的人工处置,也会让AI机器人非常困惑。

Google政策原文怎么说

Google的通用结构化数据指南里有几条直接对应:

政策原文要点对应的常见错误
不要标记读者在页面上看不到的内容评分、评价数写在标记里,页面上没有显示
不要标记不相关或误导性的内容,比如虚假评价评分是编的,或者从别的平台抄过来没有注明
结构化数据必须真实反映页面内容产品页标成了文章,或者把整站的评分挂在单个商品上
结构化数据放在它所描述的页面上,除非文档另有说明首页上标了所有商品的价格
提供最新信息,过时的时效性内容不会显示富媒体结果活动早结束了,标记里还是活动价

政策还写明,页面有结构化数据问题,可能导致人工处置,被处置的页面会失去富媒体结果的展示资格。结果在Search Console的人工处置报告里能查到。

这类问题很多不是故意的。常见来源是评价插件:插件停用了,页面上的评价模块不显示了,可主题模板里那段输出评分的代码还在;或者评价是从别的平台导入的,标记照常输出,页面上却只显示了几条。WooCommerce评价和星级标记怎么配才不出错,可以看商品评论配置那篇。

价格和库存过期了,谁来发现?

第五条和第四条相近:标记的内容和页面对不上,原因是过期了,或者和别的来源冲突。Pollitt的例子还是那台咖啡机,这次页面上写的是79.99英镑,标记里写的是59.99英镑,差了20英镑。也可能是标记写着有货,页面上已经缺货。

她的解释是,AI系统在试图确定事实,两份“事实陈述”互相矛盾,这个页面作为商品信息来源的可靠性就下降了。往轻里说是让机器困惑,往重里说会直接影响用户满意度,还可能招来人工处置。

为什么价格最容易对不上

价格对不上,多数时候怪不到哪个人头上,毛病出在系统之间没同步:

  • 页面价格由前端脚本根据币种、地区或会员身份动态计算,结构化数据却是服务器端输出的默认价格;
  • 促销价只改了页面上的显示,标记里还是原价,或者促销结束了标记里还是促销价;
  • 多币种站点,页面显示的是访客当地货币,标记里是另一种货币却没写对priceCurrency;
  • 页面有缓存,价格改了,带着旧标记的缓存页面还在被抓取。

在Google购物这边,商品数据和着陆页价格对不上,Merchant Center会把商品标成价格不匹配,严重的会拒登。所以价格一致性同时影响自然搜索、AI回答和购物广告,值得单独设一道检查。多币种价格的标记方式,站里有多语言多货币的结构化数据避坑可以参考。

一个浏览器里就能跑的检查

在商品页打开浏览器开发者工具,在控制台里粘贴下面这段,可以把页面上所有JSON-LD里的类型、价格和库存列出来,再和页面上显示的对一下:

[...document.querySelectorAll('script[type="application/ld+json"]')]
  .map(s => { try { return JSON.parse(s.textContent) } catch (e) { return 'JSON解析失败' } })
  .forEach(d => console.log(JSON.stringify(d, null, 2)))

要注意两点。这段看的是浏览器里最终的页面,搜索引擎抓到的版本可能不同,必要时用Google的网址检查工具看抓取到的HTML。另外,JSON解析失败本身也是问题,一个多余的逗号就能让整段标记失效,调试方法见JSON-LD校验那篇。

商品多的站,靠手工抽查不现实。比较实际的做法是在模板层面保证价格和库存只来自一个数据源,页面显示和标记输出读同一个字段,然后每月用爬虫抽几百个商品页,自动比对页面价格和标记价格。

五个错误放在一起怎么查?

Pollitt在结尾说,加结构化数据有很多好理由,SEO和GEO都用得上,但别零零散散地只给最显眼的内容贴标签,它应该是整体AI可见度策略的一部分,这样一致性、准确性和长期维护才更容易做到。

按她的五条,可以整理成一张自查表:

错误怎么查怎么改
只套类型,不连实体看文章页的标记里有没有作者和发布者,作者有没有对应的页面用@graph把Article、Person、Organization连起来
以为站内标对了就够搜品牌名和主力型号,看第三方页面上的公司名、型号和价格更新能改的站外资料,用sameAs声明官方主页
组织信息各页不一致抽首页、商品页、文章页,对比Organization节点的name、url、logo、@id由共享模板输出同一个节点、同一个@id
标记了看不见的内容看标记里的评分、评价、FAQ在页面上是否都能看到删掉页面上没有的部分,或者把内容真实展示出来
价格库存过期或冲突对比页面显示和标记里的价格、币种、库存页面和标记读同一个数据源,定期自动比对

前两条属于做得不够,影响的是机器理解你的程度;后三条属于做错了,在Google那里本来就违反政策。排优先级的话,先修后三条,尤其是标记了看不见的评分,这是最可能招来人工处置的一类。实体关系的完整性怎么系统地审,站里关系完整性审计那篇给了更完整的方法。

常见问题解答

结构化数据会影响AI概览的引用吗?

Google没有这样说过。Google的AI功能文档写明,出现在AI概览和AI模式里没有额外的技术要求,关于结构化数据只提了一条:要和页面上可见的文字一致。结构化数据帮机器理解实体关系,是从业者的经验判断。

结构化数据最常见的错误有哪些?

Helen Pollitt列了五个:把标记当打勾清单不连实体;以为站内标对了AI就会信;同一组织在各页写法不同、没用统一的@id;标记了页面上看不到的内容;价格和库存过期或与页面冲突。

@id是什么,一定要是能打开的网址吗?

@id是给实体的唯一标识,别处可以用它引用同一个实体。按Pollitt的说明,它不必是能打开的真实网页,常见写法是在网址后加#organization、#person这样的片段。

只在首页定义Organization,其他页面引用@id就够了吗?

Google没有公开说明是否会跨页解析@id。更稳的做法是让共享模板在每一页都输出完整的Organization节点,并使用同一个@id,这样每页信息完整,改一处模板全站同步。

页面上没显示评价,结构化数据里能写评分吗?

不能。Google的结构化数据指南要求不要标记读者在页面上看不到的内容,也不要标记虚假评价。标记了页面上没有的评分,可能导致人工处置。

结构化数据价格和页面价格不一致有什么后果?

Pollitt认为这会降低页面作为商品信息来源的可靠性,影响用户满意度,还可能招来人工处置。在Google购物里,商品数据和着陆页价格不一致也会被Merchant Center标记。

结构化数据违规会受到什么处罚?

按Google的通用结构化数据指南,页面有结构化数据问题可能被人工处置,失去富媒体结果的展示资格,可以在Search Console的人工处置报告里查看。

怎么批量检查价格标记和页面是否一致?

先在模板层面让页面显示和标记输出读同一个价格字段,再定期用爬虫抽取商品页,自动比对页面显示的价格、币种、库存和JSON-LD里的值。单页可以在浏览器控制台里列出JSON-LD核对。

网上别的网站还挂着旧品牌名怎么办?

能自己改的先改,比如B2B平台店铺、社媒和名录资料;不能改的联系经销商和名录方更新。同时在官网的Organization标记里用sameAs列出官方主页,并保持官网信息清楚一致。

ChatGPT会读网页的结构化数据吗?

OpenAI没有公开说明ChatGPT是否以及如何读取JSON-LD。结构化数据对ChatGPT、Perplexity这类工具的作用目前没有官方依据,比较稳妥的做法是保证页面可见文字和标记都准确一致。

权威参考资料

分享到
标签
版权声明

本文标题:《结构化数据伤AI可见度的五个错误:评分标了页面上没有,价格和页面差20英镑》

本文链接:https://zhangwenbao.com/structured-data-mistakes-ai-visibility-entity-id.html

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

继续阅读
发表评论
支持 Ctrl + Enter 提交